Karlesnine.com

Aller au contenu Aller au menu Aller à la recherche

jeudi, septembre 17 2009

[Debian] Utiliser un système mixte Stable / Oldstable ou Stable / Testing

Vous souhaiter utiliser un système Debian mixte qui combinerais des paquets Stable / Oldstable ou Stable / Testing. ? Personnellement je souhaitais installer une version récente de Fail2ban sur un serveur tournant avec une Debian Etch[1]. Pour des raisons de maintenance pas question de faire une installation depuis les sources. J'ai donc souhaité installer le paquet Fail2ban de Debian Lenny [2] sur cette Debian Etch.

APT::Default-Release

Pour ceci il est nécessaire de configurer Apt pour définir votre version principale de Debian. Ceci passe par l'ajout d'un paramètre dans l'arborescence de configuration de APT.

Créé un fichier 01Default-Release. Préfix en 01 pour qu'il soit charger dans les premiers

vi etc/apt] cd apt.conf.d/01Default-Release

Ajouter l'instruction suivante dans le fichier 01Default-Release pour que la version principale de Debian reste en Oldstable / Etch

APT::Default-Release "oldstable";

Dans la branche /etc/apt/apt.conf.d/ vous avez maintenant les fichiers suivant

[root@dweb2 /etc/apt] cd apt.conf.d/
[root@dweb2 /etc/apt/apt.conf.d] ls -l
total 16
-rw-r--r-- 1 root root  40 2007-04-10 11:45 00trustcdrom
-rw-r--r-- 1 root root  34 2009-09-16 11:25 01Default-Release
-rw-r--r-- 1 root root 182 2009-09-16 11:21 70debconf

Reste à modifier le source.list de apt en ajoutant le dépot main de lenny en plus de celuis de etch.

deb ftp://mir1.ovh.net/debian/ etch main
deb-src ftp://mir1.ovh.net/debian/ etch main
 
deb http://security.debian.org/ etch/updates main
deb-src http://security.debian.org/ etch/updates main
 
deb ftp://mir1.ovh.net/debian/ lenny main contrib non-free

Une mise à jour des paquets disponible s'impose avec un apt-get update.

[root@dweb2 /etc/apt] apt-get update
Atteint ftp://mir1.ovh.net etch Release.gpg
Atteint ftp://mir1.ovh.net lenny Release.gpg
Réception de : 1 ftp://mir1.ovh.net etch Release [67,8kB]
Réception de : 2 http://security.debian.org etch/updates Release.gpg [835B]
Atteint http://security.debian.org etch/updates Release      
Réception de : 3 ftp://mir1.ovh.net lenny Release [73,6kB]
Réception de : 4 ftp://mir1.ovh.net etch/main Packages/DiffIndex       
Ign ftp://mir1.ovh.net etch/main Packages/DiffIndex                        
Ign http://security.debian.org etch/updates/main Packages/DiffIndex        
Réception de : 5 ftp://mir1.ovh.net etch/main Sources/DiffIndex
Ign ftp://mir1.ovh.net etch/main Sources/DiffIndex                        
Atteint ftp://mir1.ovh.net etch/main Packages                             
Atteint ftp://mir1.ovh.net etch/main Sources                
Réception de : 6 ftp://mir1.ovh.net lenny/main Packages/DiffIndex
Ign ftp://mir1.ovh.net lenny/main Packages/DiffIndex
Réception de : 7 ftp://mir1.ovh.net lenny/contrib Packages/DiffIndex
Ign ftp://mir1.ovh.net lenny/contrib Packages/DiffIndex
Réception de : 8 ftp://mir1.ovh.net lenny/non-free Packages/DiffIndex
Ign ftp://mir1.ovh.net lenny/non-free Packages/DiffIndex
Atteint ftp://mir1.ovh.net lenny/main Packages      
Ign http://security.debian.org etch/updates/main Sources/DiffIndex
Atteint ftp://mir1.ovh.net lenny/contrib Packages
Atteint ftp://mir1.ovh.net lenny/non-free Packages
Atteint http://security.debian.org etch/updates/main Packages
Atteint http://security.debian.org etch/updates/main Sources
141ko réceptionnés en 0s (1380ko/s)
Lecture des listes de paquets... Erreur !
E: Dynamic MMap ran out of room
E: Erreur apparue lors du traitement de tcptraceroute (NewVersion2)
E: Problem with MergeList /var/lib/apt/lists/mir1.ovh.net_debian_dists_lenny_main_binary-i386_Packages
E: Les listes de paquets ou le fichier « status » ne peuvent être analysés ou lus.

APT::Cache-Limit

ZUT !
le message d'erreur final indique un manque d'espace de cache. Nous allons donc configuré apt et luis augmenter son espace de travail. Pour cela on autre comme précédemment un fichier dans l'arborescence de configuration de APT.

vi etc/apt] cd apt.conf.d/02Cache-Limit

On ajoute le paramètre Cache-Limit sur l'exemple suivant

APT::Cache-Limit 20000000;";

La mise à jour des paquets disponible s'impose toujours avec un apt-get update.

[root@dweb2 ~] apt-get update
Atteint ftp://mir1.ovh.net etch Release.gpg
Atteint ftp://mir1.ovh.net lenny Release.gpg
Réception de : 1 ftp://mir1.ovh.net etch Release [67,8kB]
Réception de : 2 ftp://mir1.ovh.net lenny Release [73,6kB]              
Réception de : 3 ftp://mir1.ovh.net etch/main Packages/DiffIndex                     
Ign ftp://mir1.ovh.net etch/main Packages/DiffIndex  
Réception de : 4 ftp://mir1.ovh.net etch/main Sources/DiffIndex
Ign ftp://mir1.ovh.net etch/main Sources/DiffIndex  
Réception de : 5 ftp://mir1.ovh.net lenny/main Packages/DiffIndex
Ign ftp://mir1.ovh.net lenny/main Packages/DiffIndex 
Réception de : 6 ftp://mir1.ovh.net lenny/contrib Packages/DiffIndex
Ign ftp://mir1.ovh.net lenny/contrib Packages/DiffIndex
Réception de : 7 ftp://mir1.ovh.net lenny/non-free Packages/DiffIndex
Ign ftp://mir1.ovh.net lenny/non-free Packages/DiffIndex
Atteint ftp://mir1.ovh.net etch/main Packages        
Atteint ftp://mir1.ovh.net etch/main Sources
Atteint ftp://mir1.ovh.net lenny/main Packages
Atteint ftp://mir1.ovh.net lenny/contrib Packages
Atteint ftp://mir1.ovh.net lenny/non-free Packages
Réception de : 8 http://security.debian.org etch/updates Release.gpg [835B]
Atteint http://security.debian.org etch/updates Release
Ign http://security.debian.org etch/updates/main Packages/DiffIndex
Ign http://security.debian.org etch/updates/main Sources/DiffIndex
Atteint http://security.debian.org etch/updates/main Packages
Atteint http://security.debian.org etch/updates/main Sources
141ko réceptionnés en 0s (546ko/s)
Lecture des listes de paquets... Fait
[root@dweb2 ~]

apt-get install -t stable

Par de soucis cette fois
Dans la foulé on installe la version de fail2ban provenant du déport Debian stable avec la commande suivante qui précise par le -t la version à utiliser.

apt-get install -t stable fail2ban

En vrais cela donne

[root@dweb2 /tmp] apt-get install -t stable fail2ban
Lecture des listes de paquets... Fait
Construction de l'arbre des dépendances... Fait
Les paquets supplémentaires suivants seront installés : 
  python-central
Paquets suggérés :
  python-gamin
Les paquets suivants seront mis à jour :
  fail2ban python-central
2 mis à jour, 0 nouvellement installés, 0 à enlever et 307 non mis à jour.
Il est nécessaire de prendre 127ko dans les archives.
Après dépaquetage, 188ko d'espace disque supplémentaires seront utilisés.
Souhaitez-vous continuer [O/n] ? o
Réception de : 1 ftp://mir1.ovh.net lenny/main python-central 0.6.8 [40,4kB]
Réception de : 2 ftp://mir1.ovh.net lenny/main fail2ban 0.8.3-2sid1 [86,2kB]
127ko réceptionnés en 0s (486ko/s)
(Lecture de la base de données... 32770 fichiers et répertoires déjà installés.)
Préparation du remplacement de python-central 0.5.12 (en utilisant .../python-central_0.6.8_all.deb) ...
Dépaquetage de la mise à jour de python-central ...
Préparation du remplacement de fail2ban 0.7.5-2etch1 (en utilisant .../fail2ban_0.8.3-2sid1_all.deb) ...
Dépaquetage de la mise à jour de fail2ban ...
Paramétrage de python-central (0.6.8) ...
 
Paramétrage de fail2ban (0.8.3-2sid1) ...

Voila tout baigne, fail2ban est installé depuis le depot lenny.

A lire également chez d'autre

Notes

[1] Version Oldstable depuis le 14 février 2009

[2] la version stable courante depuis le 14 février 2009

jeudi, février 14 2008

Erreur Perl avec APT : warning : Setting locale failed.

Suite a l'annonce d'un Important bug de sécurité sur noyau 2.6.17 à 2.6.24 sur linuxfr.org je colle le nez sur mes serveurs pour faire un brin de ménage.

Ménage avec apt-get remove

J'en profite pour virer de vieux paquet et la, sur un serveur de test et bibouille, c'est le drame !!

apt-get remove --purge linux-image-2.6-686
Reading package lists... Done
Building dependency tree... Done
The following packages will be REMOVED:
linux-image-2.6-686*
0 upgraded, 0 newly installed, 1 to remove and 45 not upgraded.
Need to get 0B of archives.
After unpacking 8192B disk space will be freed.
Do you want to continue [Y/n]? y
perl: warning: Setting locale failed.
perl: warning: Please check that your locale settings:
LANGUAGE = (unset),
LC_ALL = (unset),
LANG = "fr_FR.UTF-8"
are supported and installed on your system.
perl: warning: Falling back to the standard locale ("C").
locale: Cannot set LC_CTYPE to default locale: No such file or directory
locale: Cannot set LC_MESSAGES to default locale: No such file or directory
locale: Cannot set LC_ALL to default locale: No such file or directory
(Reading database ... 43097 files and directories currently installed.)
Removing linux-image-2.6-686 ...

dpkg-reconfigure locales

J'ai du testé et bibouiller un peu trop sur ce serveur et maintenant plus moyen de le maintenant à jour. C'est pas la première fois que j'ai ce message et d'habitude le solutionne la chose avec un bonne reconfiguration des LOCALES

dpkg-reconfigure locales
//
 
Malheureusement l'utilisation de __dpkg-reconfigure locales__ débouche sur le même message d'erreur. __Perl__ ne comprend pas ma langue et ne trouve pas les variables nécessaire pour cela.
 
Pas grave on va revenir a la langue universel, au fondamentaux de perl
 
///[bash]
export LC_ALL=C

Parfait, je retente la configuration des locales

dpkg-reconfigure locales
/usr/sbin/dpkg-reconfigure: locales is not installed

Et la j'ai l'air con :D

J'installe les locales, je les reconfigure, en sifflant d'un air dégagé et je reprend mes activités.

vendredi, novembre 5 2004

Restaurer votre base apt / dpkg

Houlala bad Karma

Quand je fais un apt-get update apt me reponds :

Reading Package Lists... Error !
Unable to parse package file /var/lib/dpkg/status (1)
The package lists or status file could not be parsed or opened.

Malheureusement, le message est clair non ? Le fichier status n'est plus lisible, j'ai plus de base dkpg et j'ai donc perdu la liste des paquets installés et leur version.

Bon je fais tout de meme les verifications d'usage : df -h. Histoire de voir si un fs est a 100 %, rien tout est normal.

status-old

Il y a normalement un fichier /var/lib/dpkg/status-old qui contient l'etat de ton systeme avant la derniere mise a jour. Je fonce dessus et j'en fais immédiatement une copie dans un coin avant de me lancer dans le bricolage.

Si vraiment le fichier status a degagé, il est possible de faire une copie de status-old en status puis reinstaller les paquets que tu avais installes en dernier pour mettre la base plus ou moins à jour. C'est pas garanti a 100 % mais ca devrait tout de meme faire l'affaire. Y'a aussi plein de fichier status.yesterday.0,1.gz,2.gz,etc.... ils correspondent aux fichiers status-old des jours précédent. La encore il est possible de les utiliser sachant qu'a chaque fois on perd plusieur jour de d'upgrade.

De toute facons, j'ai pas le choix, c'est ca ou une reinstallation from scratch.

Hack

Bon si c'est vraimment impossible de retrouver un version valable de /var/lib/dpkg/status il est toujours possible de retrouver la liste des paquets installés et de les installer de nouveau

# ls /usr/share/doc | \ grep -v [A-Z] | \ grep -v '^texmf$' | \ grep -v '^debian$' | \ awk 'print $1 " install"' | \ dpkg --set-selections

A la suite de cela lancer la ré-installation avec dselect : # dselect --expert

Choisir l'option d'installation. Attention chez moi sur mom portable cela représente plus de 1G0 de paquet à télécharger.