Articles tagués : apt

[Debian] Créer un miroir Debian local

Blabla d’introduction

Dans certains cas, rares mais pénibles, on doit survivre quelques temps sans Internet. Au delà des symptômes de manque que l’on peut ressentir, cela retarde fortement les projets que l’on peut avoir lorsqu’on possède un serveur. Un des moyens pour compenser le manque de connectivité de votre serveur vers l’extérieur est de faire une copie locale d’un ou de plusieurs serveurs de dépôts afin de continuer à pouvoir installer des logiciels sur votre serveur comme s’il était connecté à Internet.

Bien sur, cette utilisation n’est pas la seule qui peut pousser à avoir un serveur de dépôts chez soi, un simple exemple est l’application de patchs à plusieurs ordinateurs sans devoir retélécharger plusieurs fois les mêmes paquets (solution très utilisée en entreprise pour déployer massivement des mises à jour sans encombrer inutilement la bande passante Internet).

Il faut cependant avoir à l’esprit que selon ce que vous voulez « mirrorer », plusieurs Go peuvent être amenés à être copiés localement ce qui veut dire qu’il vous faut de la place sur votre disque dur et une bonne connexion Internet (celle de votre entreprise ?).

Action

Pour commencer , on va installer le paquet apt-mirror qui va s’occuper de 99% du travail à notre place. La commande pour installer n’a rien de très étonnant pour les gens qui connaissant un peu la gestion de paquets sous Debian :

apt-get install apt-mirror

Une fois le paquet installé, créez l’arborescence suivante à l’endroit ou vous voulez rapatrier vos paquets (n’oubliez pas de prévoir une zone ou il a suffisamment de place disponible):

  • un dossier général (nommé par exemple « miroir »)
  • 3 sous dossiers : skel, var et mirror

ce qui donne en ligne de commande :

mkdir miroir
cd miroir
mkdir var skel mirror

On va maintenant creer le fichier de configuration (par exemple dans le dossier miroir précédemment créé afin qu’il soit « solidaire » du mirroir).

NOTE: Si on ne crée pas de fichier de configuration, les données « mirrorées » seront celles des dépôts présents dans le fichier sources.list de votre Debian (/etc/apt/sources.list). Les données seront copiées à l’emplacement /var/spool/apt-mirror/.

Création du fichier de configuration

Créez un nouveau fichier et placez y les lignes suivantes :

set base_path /home/test/miroir
set mirror_path $base_path/mirror
set skel_path $base_path/skel
set var_path $base_path/var
set cleanscript $var_path/clean.sh
set defaultarch i386
set nthreads 4

set _tilde 0

deb http://security.debian.org/ etch/updates main contrib

clean http://security.debian.org/

Une petite explication sur les différentes lignes du fichier :

Les 4 premières lignes servent à régler le path vers les différents dossiers que vous avez crées. En théorie, la seule ligne que vous ayez à toucher est la première qui dépend de l’endroit ou vous voulez stocker les fichiers « mirrorés ».

La cinquième ligne indique quel est et où se situe le fichier servant à faire le ménage après une synchronisation de votre dépôts.

La sixième ligne donne l’architecture que vous souhaitez rapatrier par défaut. Cela peut être i386, amd64, …

La ligne suivante indique le nombre de threads simultanés qui vont télécharger les données. Plus il y en a, plus cela va vite mais plus votre ordinateur va voir sa charge CPU augmenter et plus votre connexion Internet va être sollicitée.

La ligne concernant « tilde » doit certainement servir à quelque chose mais à quoi ?

Enfin la/les ligne(s) commençant par deb indique ce que vous voulez rapatrier. Dans l’exemple donné, on va télécharger tout ce qui concerne les patchs de sécurité pour la distribution Debian etch pour l’architecture i386.

Pour ajouter d’autre dépôts, il suffit de les mettre à la suite. Ainsi, on aurait pu ajouter la ligne

deb http://debian.ens-cachan.fr/ftp/debian. lenny main non-free pour rapatrier en local les archives pour la distribution debian lenny incluant les paquets non libres

deb-amd64 http://debian.ens-cachan.fr/ftp/debian. lenny main non-free pour rapatrier en local les archives pour la distribution debian lenny incluant les paquets non libres pour l’architecture amd64 (et non i386)

Note: Ubuntu étant basé sur Debian, on peut creer des miroirs des dépôts Ubuntu de la même manière.

La dernière ligne sert à exécuter des scripts de nettoyage post-téléchargement présents sur les serveurs que l’on « pille ». Ceux-ci permettent de libérer de la place en supprimant fichiers et dossiers qui n’ont plus de raisons d’exister. On peut également placer la directive « skip-clean » mais je suis infichu de dire précisément à quoi elle sert.

Une fois ce fichier sauvegarder, on peut lancer la séquence de rapatriement de fichiers. Pour ce faire, tapez dans un terminal :

apt-mirror /path/vers/votre/fichier/de/conf

et voila ! L’ordinateur va explorer tout seul les dépôts et télécharger ce que vous lui avez demandez.

Attention : Il n’y a aucune barre de progression indiquant ou ça en est ce qui peut être déroutant. Un des moyens pour savoir si votre système est bien en train de travailler est d’utiliser la commande « top » et de contrôler que vous avez bien des processus « wget » en cours d’exécution.

Et après ?

Une fois que la synchronisation est faite (bravo, vous êtes patient !), vous êtes à la tête de quelques dizaines de Gigaoctets que vous aimeriez bien utiliser sur d’autres postes. Pour ce faire, il faut modifier le fichier sources.list de chaque ordinateur qui doivent utiliser votre dépôts local.

2 choix sont à présent possibles :

  1. l’accès aux fichiers peut se faire de manière local auquel cas les lignes dans le sources.list ressembleront à : « deb /mes/données/en/local main contrib »
  2. l’accès aux fichier se fait à travers votre réseau local auquel cas les lignes dans le sources.list ressembleront à : « deb http://adresse.local.de.lordinateur/local/ main contrib » ou à « deb http://adresse.local.de.lordinateur/local/ main contrib ». Il va sans dire qu’il est nécessaire d’avoir au préalable installer et configurer un serveur HTTP et/ou FTP qui puisse « servir » les données (ça ne sera pas détaillé ici car ce n’est pas l’objet de cet article).

Notes complémentaires :

  1. Pour mettre le dépôts local à jour, il suffit de réexécuter la même ligne de commande que celle qui permet de le synchroniser une première fois (apt-mirror fichier-de-conf).
  2. Si le serveur est mis à jour trop souvent, il se peut que les serveur le blacklit votre IP pour cause de flooding.
  3. Certains serveurs déconseillent la synchronisation des dépôts locaux à certaines heures car les serveur eux mêmes se mettent à jour. Ne pas suivre ces recommandations vous exposent à l’obtention d’un dépôt local inconsistent.
  4. Quand vous installez le paquet apt-mirror, une tâche cron est automatiquement créée dans /etc/cron.d/apt-mirror pour gerer la synchronisaiton quotidienne automatique de votre dépôt. A vous de l’activer si vous voulez utiliser cette tâche cron (désactivez par défaut et de la configurer pour qu’elle aille chercher le fichier de configuartion qui vous interesse.

Comment installer/mettre à jour un programme sous Linux (ubuntu/debian/knoppix/…) en ligne de commande

Blabla d’introduction

Linux, c’est dur ! Où est ma corbeille ? Quel antivirus je dois mettre ? Je peux jouer ? et mon Microsoft Money, comment vais-je faire sans lui ?

Alalalalala, que de questions lorsqu’une courageuse personne quitte (même en partie) le monde de Windows pour essayer Linux ! Je ne vais pas ici tout expliquer (certains sites sont très bien faits et donnent toutes les réponses qu’une personne peut attendre => http://forum.ubuntu-fr.org/ pour ne citer que lui). Cela dit, on peut reprocher à ces sites de ne pas être assez accessibles pour les gens qui ne sont pas les rois de la recherche google ou qui ne veulent pas lire les 25 pages d’un forum pour espérer trouver la réponse convoitée !

Je vais simplement ici vous apprendre rappeler les quelques commandes nécessaires pour installer un logiciel sous Linux en ligne de commande. Je précise d’ores et déjà que je n’aborderai ici que les architectures basées sur le gestionnaire de paquets apt-get (non non, ne vous en allez pas, c’est juste pour que les gens qui connaissent déjà un peu tout ceci sachent ce qu’ils vont trouver ici), c’est-à-dire les distributions de type Debian, (K|X|eee)Ubuntu, Knoppix et consorts.

Un peu de théorie

Et oui, un peu de théorie car c’est toujours plus sympa de comprendre ce qu’on fait. Pour ceux que ça n’intéresse pas, sautez directement au paragraphe « Action ! » un peu plus bas dans l’article).

Windows est basé sur une architecture assez monolithique du point de vue de l’utilisateur, c’est-à-dire que lorsqu’on installe (ou qu’on utilise) Windows, c’est un « tout » figé que l’on a face à soi. Pas de possibilité de désinstaller une partie de Windows (Internet Explorer ou le lecteur Windows Media Payer par exemple) ou alors il faut pas mal bidouiller, pas de possibilité non plus de changer le gestionnaire graphique ou de réseau si on n’est pas satisfait de la manière dont celui-ci agit. Bref, c’est figé mais on ne peut rien y faire alors on s’habitue. D’un autre coté, il faut reconnaitre que des tas de gens ont développé des milliers de programmes, gratuits ou non, qui nous facilitent sacrément la vie quotidienne sur cet OS (et puis il faut avouer que Windows n’est pas si mal pour le premier venu notamment Windows XP (je garderai pour moi mon avis sur ce « formidable » OS truc qu’est Windows Vista)).

Linux, quant à lui, est complètement modulaire, il n’y a pas de système figé. c’est d’ailleurs un des grands troubles des gens qui souhaitent essayer « Linux », « Linux » n’existe pas en tant que tel. Il y a des dizaines de « Linux différents » voire des centaines si on considère que n’importe qui peut changer n’importe quoi dans le code source et refaire un nouveau « Linux ». Cela dit, une fois cette nébuleuse étape du choix de la distribution Linux qu’on souhaite voir installer sur son ordinateur passée, l’installation des logiciels est magique grandement facilitée.

Là où l’utilisateur sous Windows doit aller chercher son logiciel sur Internet (en gros cela consiste à télécharger un « .exe ») et l’installer (et répondre à un lot de questions qu’il ne comprend souvent même pas), l’utilisateur de Linux n’a qu’à dire à sa distribution (correctement configurée) le logiciel qu’il veut et celle ci ira télécharger toute seule le programme sur Internet et l’installera (correctement) sans besoin d’intervention humaine.

Comment cela est-ce possible ? C’est très simple, Linux connaît un certain nombre de serveurs Internet (appelés « dépôts ») sur lequels il va piocher les logiciels que l’utilisateur lui demande. C’est sur ces mêmes dépôts que le système va piocher l’ensemble de ses mises à jour.

Enfin, un dernier point utile à aborder concerne les mises à jour. Les logiciels présents sur Windows requièrent d’être mis (plus ou moins) manuellement à jour un à un ce qui est très pénible (en fait personne ne le fait seuls les fous le font) tandis que sur Linux, toutes les mises à jour tant coté système d’exploitation que logiciels installés se mettront à jour simplement en une seule étape (et qui ne requiert pas le redémarrage systématique de l’ordinateur).

Note: On m’a déjà posé cette question : « est-ce qu’un système d’exploitation s’installe ? ». La réponse est oui. Le système d’exploitation est un programme et, comme tout programme, il nécessite une installation. Cependant, il est néanmoins particulier dans le fait qu’il n’a pas besoin d’un autre programme pour fonctionner, il est autonome.

Action !

Comme je suis un adepte de la ligne de commande, je vais commencer par là.

Voyons tout d’abord comment mettre à jour les logiciels (on appelle ça des paquets) de son Linux. Il faut tout d’abord lancer une console (le truc noir tout moche et pas drôle dans lequel on tape des lignes incompréhensibles et qui nous répond en nous insultant avec des trucs pas cool du type « command not found »). Bref pour lancer un terminal (ou « shell »), cela dépend de l’OS utilisé (ça commence bien pour un truc soi-disant simple) : sous Xandros (EEEPC), il faut taper sur Ctrl+Alt+t (c’est-à-dire appuyer en même temps sur la touche « Control », la touche « Alt » et la touche ‘t’), sous Ubuntu, on peut appuyer sur « Alt »+F2 puis taper « xterm » et appuyer sur « Entrée ». Même chose sur Kubuntu mais en remplaçant « xterm » par « konsole ».

Note : En fait cela dépend de votre interface graphique : sous Gnome il faut faire comme expliqué pour Ubuntu, sous KDE, il faut faire comme expliqué pour Kubuntu.

Une fois votre shell lancé (exemple de shell vierge ci dessus), il faut taper les commandes suivantes :

sudo apt-get update

Cette commande va servir à ce que l’ordinateur regarde les versions des paquets présents sur les dépôts afin de pouvoir les comparer avec les versions des paquets présents sur l’ordinateur (et ainsi déduire les mises à jour qu’il a à faire). Il y aura besoin que vous tapiez votre mot de passe pour pouvoir exécuter cette commande.

Note: la commande « sudo » sert à taper une commande en tant qu’administrateur (= root sous Linux). Il se peut qu’il n’y ait pas besoin de la mettre et donc de devoir taper uniquement apt-get update). En ce cas, votre mot de passe ne vous sera pas demandé. Enfin, il se peut également que lmalgré la présence du mot « sudo » , on ne vous demande pas de mot de passe; ce n’est pas grave, l’essentiel est que la commande soit exécutée.

Par la suite, on va pouvoir lancer les mises à jour grâce à la commande :

sudo apt-get upgrade

Cette commande va demander à l’ordinateur de calculer les mises à jour à faire et de les faire (il vous demandera sûrement la confirmation avant de commencer effectivement à faire les mises à jour).

Et voila un beau système à jour.

Bon, c’est sympathique tout ça, mais pour installer un logiciel alors ?

Et bien, pour installer un logiciel, il suffit de faire

sudo apt-get install nom_du_paquet_a_installer

Un exemple : on souhaite installer le logiciel tellico (qui est un gestionnaire de collections (livres, DVD, …)). Il suffit de faire sudo apt-get install tellico pour que le logiciel s’installe tout seul.

TODO mettre un image de l’exécution de la commande sudo apt-get install tellico

et voilà, le logiciel tellico est installé. Pour le lancer, il suffit de taper tellico dans la console pour qu’il se lance.

Oui, mais si le logiciel que je veux ne semble pas être dans les dépôts ?

Il se peut que malgré votre super commande tapée, le système apt vous réponde par un message peu joyeux du type : « Couldn’t find package nimportequoi »

TODO mettre un image de l’exécution de la commande sudo apt-get install nimportequoi

2 causes peuvent être possibles : soit le logiciel ne porte pas exactement le nom que vous pensez, soit le logiciel n’est pas présent dans les dépôts.

Le logiciel ne porte pas exactement le nom que vous pensez

Dans ce cas, il faut trouver le nom exact du logiciel. pour ce faire il suffit de taper la commande :

sudo apt-cache search nimportequoi

Cette commande va vous donner le nom des différents pasquets que le système connaît et qui contient le nom nimportequoi. Il y a fort à parier que vous trouverez le votre. Il suffit après de taper la commande sudo apt-get install nomPrecisDuPaquetQueVousSouhaitezInstaller et cela devrait fonctionner.

Le logiciel n’est pas présent dans les dépôts

A ce moment là, il faut ajouter un dépôt supplémentaire dans le système. En soit, cela n’est pas très dur mais un peu plus compliqué quand même. Il y a un fichier dans votre système qui a la liste des serveurs sur lesquels votre système va chercher ses informations. Celui-ci est « /etc/apt/sources.list ». il va falloir l’éditer puis ajouter le dépôt qui vous intéresse.

La première étape est maintenant de trouver le dépôt à ajouter. Afin de faire simple, je vais ici vous donner les dépôts qui règleront 99% des problèmes. Notez que ca ne sert à rien d’ajouter ces dépôts si vous n’en avez pas besoin.

Nous allons ajouter quelques lignes à votre fichier /etc/apt/sources.list

Pour ce faire tapez la commande suivante :

sudo cat >> /etc/apt/sources.list

et tapez les lignes suivantes :

deb http://ftp.fr.debian.org/debian/ lenny main
deb-src http://ftp.fr.debian.org/debian/ lenny main
# non free
deb http://ftp.fr.debian.org/debian/ testing main contrib non-free
deb-src http://ftp.fr.debian.org/debian/ testing main contrib non-free

puis appuyez sur Control+C (ce qui devrait vous remettre une ligne qui vous indique que le système est prêt à ce que vous entriez une nouvelle commande.

Une fois cette étape faite, vous pouvez ressayez les étapes pour standard d’installation (sudo apt-get update puis sudo apt-get install nomDuPaquet)

TODO expliquer comment trouver de nouveaux serveurs de dépôts sur Internet

Oui mais si la version du logiciel est trop vieille (les dépôts ne sont pas à jour je veux la toute dernière version !)

Dans ce cas là, il vous reste deux solutions : la première consiste à trouver sur Internet un paquet prêt à être installé sur votre système, la seconde solution consiste à compiler vous-même les sources du logiciel sur votre machine.

Attention : Utiliser l’une ou l’autre des méthodes vous condamnera à devoir par la suite mettre le paquet à jour manuellement ce qui est un peu galère si vous débutez

trouver un paquets deb

Alors là, pas de solution miracle ! Il vous faut chercher ! Ce que je peux vous dire, c’est que le fichier a une extension « .deb ».

En considérant que vous avez réussi à trouver ce fameux paquet tant convoité, il vous faut entrer la commande suivante :

sudo dpkg -i nomDuPaquetDeb.deb

et il devrait être installé.

installez à partir des sources du logiciel

Ce qu’on appelle les sources d’un logiciel, c’est le code (en langage de programmation) qui, une fois compilé, genère ce que vous avez l’habitude de voir quand vous utilisez le logiciel. Souvent, vous récupérez une archive en « zip » ou en « tar.gz » qui contient des tas de dossiers aux noms étranges, des fichiers aux noms encore plus étranges et un fichier souvent intitulé « README » ou « INSTALL ». C’est ce fichier que vous avez besoin de lire (et souvent de comprendre). L’objet de cet article n’est pas d’apprendre à compiler un programme donc je vais faire vite :

Avant tout, pour compiler il vous faut un compilateur. Le compilateur classique s’appelle gcc. Vous avez également besoin des librairies de compilation libc6-dev et enfin du système de makefile make ce qui donne la ligne de commande suivante :

sudo apt-get install gcc-4.1 libc6-dev make

Une fois tout ça installé, classiquement, il faut faire les étapes suivantes (je dis « classiquement » car seul le fichier « README » ou le fichier « INSTALL » peut vous donner la procédure exacte pour compiler le logiciel spécifique) :

décompressez l’archive téléchargée (en mode graphique ou par ligne de commande)

Allez dans le dossier que vous avez décompressé avec votre terminal (commande cd)

lancez la commande ./configure

puis lancez make puis make install

Si tout va bien, votre logiciel est installé (j’avoue, l’explication était succinte mais un jour peut-être je ferai un article un peu plus complet sur le sujet).

Thèmes WordPress - WordPress tuto