Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 24/04/2005, à 00:47

Ephack

Créer un répertoire chroot pour utiliser une autre version de Ubuntu

MAJ le 10/12/05 pour script do_dchroot plus performant
MAJ le 05/11/05 pour version Breezy

Voilà : à ma connaissance, il n'existe pas de tutoriel en français pour expliquer comment créer un répertoire chroot et y installer des programmes 32bits pour pallier aux manques parfois cruels des versions 64bits. Ou pour installer rapidement un ou deux programmes d'une version instable sans avoir à repartitionner et relancer toute une installation, ni non plus mettre en danger sa version stable. Le chroot pèse chez moi environ 500Mo. Pour ceux qui préfèrent la VO, je me suis largement inspiré de ce sujet du forum Ubuntu en anglais : http://ubuntuforums.org/showthread.php?t=24575

Je demanderai aussi aux vrais connaisseurs de me pardonner si je dis des bêtises dans les commentaires, je ne suis qu'un novice qui essaie de comprendre ce qu'il fait, sans toujours bien y arriver. Si cela arrive, merci de me corriger! smile

Dernière remarque avant de commencer : je 'joue' avec une Breezy 64bits, et mon but et d'installer une Breezy 32bits stable. Si votre cas est différent, il y aura deux ou trois paramètres à modifier au début, quand il s'agit de choisir quelle version vous voulez installer... Je sais que ça marche en 32bits, mais je n'ai pas testé moi-même.

OK, allons-y! cool

Étape 1 : Installation des premiers éléments
- Installer les paquets dchroot et debootstrap à l'aide de synaptic.
- En console :
     sudo mkdir /chroot/
     sudo gedit /etc/dchroot.conf
          Ajouter la ligne suivante à la fin :
          breezy32 /chroot
          Remarque : Je suppose que 'breezy32' n'est qu'un nom que vous pourriez changer, selon vos besoins et vos envies, en 'Breezy', 'Instable', 'test'... Je pense que c'est surtout utile si vous manipulez plusieurs répertoire chroot (oui, oui, c'est possible! Mais est-ce vraiment nécessaire? roll )
     sudo debootstrap --arch i386 breezy /chroot/ http://archive.ubuntu.com/ubuntu
          Remarque : C'est ici qu'il faudra indiquer la version que vous voulez installer. Cette commande va aller chercher tous les paquets nécessaires sur le net et les installer. Vous avez largement le temps d'aller prendre un café smile
     sudo chroot /chroot/
     dpkg-reconfigure locales
         Remarque : J'ai eu pour ma part quelques problèmes ici. J'ai trouvé plus tard la solution : remplacer la ligne ci-dessus par les deux lignes suivantes dans une nouvelle console :
                                               cp /etc/locale.gen /chroot/etc/locale.gen
                                               locale-gen

Étape 2 : Configuration d'apt
- Dans une nouvelle console :
     sudo gedit /chroot/etc/apt/sources.list
          Ajouter les lignes suivantes :
          deb http://archive.ubuntu.com/ubuntu breezy main restricted universe multiverse
          deb http://security.ubuntu.com/ubuntu breezy-security main restricted universe multiverse

          Remarque 1 : Là encore, attention à la version que vous voulez installer...
          Remarque  : Personnellement j'ai du mal à faire fonctionner correctement synaptic qui plante au moment d'installer un nouveau paquet. mais apt-get install en console fonctionne très bien. smile

Étape 3 : Premières actions dans votre environnement 'chrooté'
- Passez dans votre environnement 'chrooté' :
     sudo chroot /chroot
- Aucune différence de visible, mais maintenant, la commande 'cd /' vous emmènera en fait dans '/chroot'. Tout se passe comme si '/chroot' était votre répertoire racine. Mais uniquement dans la console, hein! Pas en dehors!... Les programmes lancés, comme par exemple apt, sont également ceux de l'environnement 'chrooté'.
     apt-get update
     Remarque : Des Warnings (W) peuvent apparaître ici. Ignorez-les impitoyablement.
     apt-get upgrade

Étape 4 : On l'on découvre qu'on aimerait bien que tous les paramétrages soient aussi simples que celui d'un chroot...
- Dans une autre console :
     sudo cp /etc/passwd /chroot/etc/
     sudo cp /etc/shadow /chroot/etc/
     sudo cp /etc/group /chroot/etc/
     sudo cp /etc/sudoers /chroot/etc/
     sudo cp /etc/hosts /chroot/etc/
     sudo gedit /etc/fstab
          Ajouter à la fin du fichier :
          /home /chroot/home none bind 0 0
          /tmp /chroot/tmp none bind 0 0
          /proc /chroot/proc proc defaults 0 0
          /media/cdrom0 /chroot/media/cdrom0 none bind 0 0

     Remarque : Vous pouvez aussi monter de la même manière d'autres partitions dont vous aurez besoin (une partition fat32 par exemple), à l'aide de l'option bind.
     mkdir /chroot/media/cdrom0
     Remarque : Pensez à créer tous les répertoires que vous voulez monter...
     sudo mount -a
     sudo gedit /usr/local/bin/do_dchroot
          Recopier les lignes suivantes :

          #!/bin/sh
             xhost + local:
             temp=`echo $0 | sed 's|^.*/||'`
             command=`echo $temp | sed 's/32/ /'`

             for arg; do
             arg=`echo $arg | sed -e 's/ /\\\ /g'`
             args=`echo $args $arg`
             done

             /usr/bin/dchroot -d "$command $args"

          Remarques : Selon la configuration de votre clavier, les ` ne seront peut-être pas évidents à trouver. Mais le copier-coller marche très bien wink Tout ce que je peux vous donner comme explication sur ces belles lignes, c'est qu'elles permettent de faire le lien (à l'aide d'un autre fichier, cf plus loin) entre une commande passée dans votre environnement habituel et le programme situé dans le chroot.
     sudo chmod 755 /usr/local/bin/do_dchroot

Étape 5 : Où vous installez votre premier programme 'chrooté'
- Dans une nouvelle console :
     dchroot -d
     sudo apt-get install synaptic
     exit
          Remarque : J'obtiens parfois des warnings après cette commande, parfois pas. Mais dans tous les cas, ça semble fonctionner...
     sudo ln -s /usr/local/bin/do_dchroot /usr/local/bin/synaptic32
          Remarque : C'est ce lien qui va permettre, avec l'aide du fichier do_dchroot, de lancer les programmes du chroot depuis votre console habituelle.
     sudo synaptic32

Voilà! Si tout va bien, synaptic 'chrooté' vient de se lancer. Félicitations! smile Tout est maintenant plus facile puisque vous pouvez passer par synaptic pour installer vos logiciels. N'oubliez pas de créer les deux liens comme ci-dessus si vous voulez pouvoir les lancer depuis votre environnement normal (sans passer par dchroot -d).

Postez ici vos commentaires et remarques, je mettrai à jour ce post si nécessaire, éventuellement avec des aides pour installer une autre version que la Breezy 32bits.

Quelques remarques sur l'installation de logiciels dans votre breezy32 :
Pour firefox : sélectionner le paquet firefox, puis le paquet libflash-mozplugin pour flash et ça fonctionne.
Pour Skype : J'ai dû utiliser le dernier lien de la page téléchargement et surtout installer le paquet libqt3-mt-dev.

Dernière modification par Ephack (Le 10/12/2005, à 14:13)

Hors ligne

#2 Le 05/08/2005, à 11:18

Vicks

Re : Créer un répertoire chroot pour utiliser une autre version de Ubuntu

nickel, merci bien
An noter un détail au lieu de taper " chroot /chroot" au début de l'étape 3, il faut faire un petit "sudo chroot /chroot" mais cela reste un détail...

Sinon lorsque tu "dpkg-reconfigure locales" as-tu aussi des messages d'erreurs comme quoi ~la gestion des langues que tu as choisi n'est pas supportée? Moi ça me donne un truc du style:

perl: warning: Please check that your locale settings:
        LANGUAGE = "fr_CH.UTF-8",
        LC_ALL = (unset),
        LANG = "fr_CH.UTF-8"
    are supported and installed on your system.
perl: warning: Falling back to the standard locale ("C").
Cleaning up font configuration of pango...
perl: warning: Setting locale failed.
perl: warning: Please check that your locale settings:
        LANGUAGE = "fr_CH.UTF-8",

A noter que cette erreur ne pas empêché de finir le tuto...
Je suis en train de télécharger enemy territory, juste pour essayer mon tout nouveau système chroot:P

Hors ligne

#3 Le 05/08/2005, à 18:56

Ephack

Re : Créer un répertoire chroot pour utiliser une autre version de Ubuntu

Merci du détail, c'est corrigé! smile

Hum... Pour ta question, à vrai dire... Ça fait un moment maintenant que je l'ai fait et honnêtement, je ne me souviens plus tongue Mais je me souviens avoir eu régulièrement des messages du genre, donc c'est fort possible!

Dernière modification par Ephack (Le 05/08/2005, à 19:55)

Hors ligne

#4 Le 06/08/2005, à 12:41

Vicks

Re : Créer un répertoire chroot pour utiliser une autre version de Ubuntu

Si qqn est interessé d'installer Enemy Territory après cette formidable explication d'Ephack...
http://forum.ubuntu-fr.org/viewtopic.ph … 949#p62949

Hors ligne

#5 Le 21/09/2005, à 19:41

ObSVuugj

Re : Créer un répertoire chroot pour utiliser une autre version de Ubuntu

C super mais tu as pas dit comment on va en chroot! C dchroot -d ou sudo chroot /chroot ?


Bonjour je suis un portail et je suis ici pour vendre des fenetres!

(Hello! I am Gates and I am here to sell Windows)

Hors ligne

#6 Le 24/09/2005, à 00:00

Jai_le_leu

Re : Créer un répertoire chroot pour utiliser une autre version de Ubuntu

j'ai ce message d'erreur quand je veux installer synaptic (ou quoique ce soit avec apt-get....)

dpkg: syntax error: unknown group `postdrop' in statusoverride file
E: Sub-process /usr/bin/dpkg returned an error code (2)

Hors ligne

#7 Le 24/09/2005, à 12:03

Ephack

Re : Créer un répertoire chroot pour utiliser une autre version de Ubuntu

-> ObSVuugj : dchroot -d fonctionne très bien. Je pense qu'il s'agit de deux variantes d'une instruction à peu prs équivalente. Avec dchroot, tu peux aussi indiquer ensuite un nom d'application à exécuter dans l'environnement chroot. Est-ceque quelqu'un en sait plus?

-> Jai_le_leu : Je ne sais pas trop... Est-ce que tu es bien passé en mode chroot (cf. ci-dessus)? Est-ce que tu as bien mis apt-get à jour (deux commandes à exécuter, étape 3)?

Hors ligne

#8 Le 26/09/2005, à 19:43

Jai_le_leu

Re : Créer un répertoire chroot pour utiliser une autre version de Ubuntu

ben il me semble

je refait un test, en live
....

même problème

je vais essayer avec un autre dépot....
putain, j'ai réussi à faire l'erreur, j'ai pas mis "fr." devant "archive" dans ma liste de dépot >_<

j'ai pas de bande passante là, j'essaye ce soir (je suis au brésil, donc pour les gens normaux c'est "cette nuit"), et je vous tiens au courant, mais je pense que ça venait de là

Hors ligne

#9 Le 26/09/2005, à 20:05

Jai_le_leu

Re : Créer un répertoire chroot pour utiliser une autre version de Ubuntu

.....
en fait non, toujours pas

je me demande si ça ne vient pas du fait que je suis déjà sous breezy, et que je lui demande de me faire un hoary...

je vais refaire la procédure avec breezy pour voir
pour défaire le chroot de hoary, un petit rm -R /chroot/* suffit ? wink

Hors ligne

#10 Le 26/09/2005, à 20:57

Ephack

Re : Créer un répertoire chroot pour utiliser une autre version de Ubuntu

Oui peut-être mais c'est bizarre : le chroot existe justement pour pouvoir installer une version de test (ex breezy) sans perturber une version stable (ex hoary) ni partitionner le disque. Évidemment, peut-être que l'opération inverse (installer hoary sous breezy) n'est pas possible, mais ça me semble bizarre...

Pour la désinstallation, pense à désinstaller les logiciels que tu aurais pu installer et à mettre à jour ton fstab...

Hors ligne

#11 Le 26/09/2005, à 21:12

tylhdar

Re : Créer un répertoire chroot pour utiliser une autre version de Ubuntu

c'est quois l'avantage par rapport a bosch ?


un matériel non compatible linux est un matériel défectueux
ubuntu 10.4 sur pc1 ; debian squeeze sur pc2

Hors ligne

#12 Le 26/09/2005, à 21:21

Ephack

Re : Créer un répertoire chroot pour utiliser une autre version de Ubuntu

Aucune idée : je neconnais pas bosch big_smile

Hors ligne

#13 Le 26/09/2005, à 21:41

Jai_le_leu

Re : Créer un répertoire chroot pour utiliser une autre version de Ubuntu

Ephack a écrit :

Pour la désinstallation, pense à désinstaller les logiciels que tu aurais pu installer et à mettre à jour ton fstab...

ah ah, j'ai rien pu installer >_<

Hors ligne

#14 Le 28/09/2005, à 20:49

LR

Re : Créer un répertoire chroot pour utiliser une autre version de Ubuntu

Salut, je n'arrive pas à lire certains dvd avec vlc, totem, gmplayer... Alors j'ai essayé avec le chroot mais je n'arrive pas à ouvrir le dvd :

Playing dvd://1.
libdvdread: Using libdvdcss version 1.2.8 for DVD access
libdvdread: Could not open /dev/hdb with libdvdcss.
libdvdread: Can't open /dev/hdb for reading
Couldn't open DVD device: /dev/hdb

Ce n'est pas la même erreur que lorsque je ne suis pas en chroot...

Quelqu'un aurait une idée ?
Merci d'avance
Lilian

Hors ligne

#15 Le 28/09/2005, à 21:28

Ephack

Re : Créer un répertoire chroot pour utiliser une autre version de Ubuntu

Oui je sais, c'est une proposition stupide mais bon... Est-ce que tu as bien pensé à rajouter une ligne pour ton dvd dans ton fstab? Un truc du genre :
/dev/hdb /chroot/dev/hdb none bind 0 0

D'ailleurs, pourquoi /dev/ et pas /media/? C'est ce que tu utilises dans ton environnement non chrooté?

Hors ligne

#16 Le 28/09/2005, à 21:43

andeim_

Re : Créer un répertoire chroot pour utiliser une autre version de Ubuntu

Merci pour la traduction du tutoriel jusque là j'ai bien reussi me logger en tant que chrootmais maintenant comment fait ton pour jouer à E T??
Déjà il ne reconnait pas la commande #et ce qui est a priori normal. Mais quand j'essaie de l'installer il me met

/home/damien/.setup13229: error while loading shared libraries: libgtk-1.2.so.0: cannot open shared object file: No such file or directory
/home/damien/.setup13229: error while loading shared libraries: libgtk-1.2.so.0: cannot open shared object file: No such file or directory
./setup.sh: line 138: 13260 Segmentation fault

Donc j'ai pensé a telecharger les libgtk avec synaptic32 mais ca ne change rien à ce problème...
Comment faire:/


E8400
P5Q-Pro
GForce 275 GTX
4 Go RAM 800 Mhz

Hors ligne

#17 Le 28/09/2005, à 22:02

Ephack

Re : Créer un répertoire chroot pour utiliser une autre version de Ubuntu

Tu es allé voir sur le sujet proposé par Vicks un peu plus haut? Perso, je n'ai pas installé ET, mais peut-être qu'en postant dans cet autre sujet, tu pourras obtenir de l'aide?...

Hors ligne

#18 Le 28/09/2005, à 23:43

LR

Re : Créer un répertoire chroot pour utiliser une autre version de Ubuntu

Ephack a écrit :

Oui je sais, c'est une proposition stupide mais bon... Est-ce que tu as bien pensé à rajouter une ligne pour ton dvd dans ton fstab? Un truc du genre :
/dev/hdb /chroot/dev/hdb none bind 0 0

D'ailleurs, pourquoi /dev/ et pas /media/? C'est ce que tu utilises dans ton environnement non chrooté?

Non, par contre, lorsque je met le cd, il est monté automatiquement, alors j'ai fait :

sudo umount /dev/hdb
dchroot -d
sudo mount /dev/hdb

Et ça a eu l'air de marcher...

Je crois que le cd est bien monté sur /media/cdrom0, mais je crois que les programmes qui lisent les dvd lisent directement le dvd et pas le point de montage : /dev/hdb et pas /media/cdrom0.

Hors ligne

#19 Le 29/09/2005, à 19:21

Jai_le_leu

Re : Créer un répertoire chroot pour utiliser une autre version de Ubuntu

Ephack a écrit :

Oui peut-être mais c'est bizarre : le chroot existe justement pour pouvoir installer une version de test (ex breezy) sans perturber une version stable (ex hoary) ni partitionner le disque. Évidemment, peut-être que l'opération inverse (installer hoary sous breezy) n'est pas possible, mais ça me semble bizarre...

ça a marché (enfin synaptic32 a bien voulu se lancer smile )

pour créer d'autres raccourcis comme synaptic32 faut faire ça ?

sudo ln -s /usr/local/bin/do_dchroot /usr/local/bin/nom_du_soft_32_qui_existe_pas_sous_amd64

Edit :
dernier post sur ce sujet pour moi je pense :

le nouveau synaptic marche pas (il télécharge les paquets mais n'arrivent pas à les installer), mais avec apt j'ai pu dld wine, que j'ai testé et qui marche
je considère donc la manip comme un succès smile

Dernière modification par Jai_le_leu (Le 29/09/2005, à 20:46)

Hors ligne

#20 Le 02/10/2005, à 15:04

ObSVuugj

Re : Créer un répertoire chroot pour utiliser une autre version de Ubuntu

au fait qqun sait comment on fait marcher les drivers fglrx sur chroot ?


Bonjour je suis un portail et je suis ici pour vendre des fenetres!

(Hello! I am Gates and I am here to sell Windows)

Hors ligne

#21 Le 22/10/2005, à 06:10

ioan123

Re : Créer un répertoire chroot pour utiliser une autre version de Ubuntu

Concernant  la question

dpkg: syntax error: unknown group `postdrop' in statusoverride file
E: Sub-process /usr/bin/dpkg returned an error code (2)

il s'agit d'un probleme d'autorisations. Il suffit de faire un petit

mv /var/lib/dpkg/statoverride /var/lib/dpkg/statoverride.old

et le tour est joue

Ioan

Hors ligne

#22 Le 27/10/2005, à 21:43

LR

Re : Créer un répertoire chroot pour utiliser une autre version de Ubuntu

Salut,

J'utilise cette astuce et c'est vraiment excellent. Grâce à ça je peux avoir skype qui marche nickel.

Par contre, j'essaie d'avoir flash sur firefox et je ne peux pas. Le comportement est exactement le même que dans mon environnement normal : "clickez ici pour télécharger le plugin" puis rien...

Pourtant, quand je fais

dchroot -d
sudo synaptic

flashplayer-mozilla est bien installé.

Lorsque je lance firefox (mozilla-firefox ou firefox), il se lance très bien mais pas de flash.

Ce qui m'étonne beaucoup, c'est que quand je vais dans Aide/A propos de Mozilla Firefox :

Mozilla/5.0 (X11; U; Linux x86_64; fr; rv:1.7.12) Gecko/20050922 Firefox/1.0.4 (Ubuntu package 1.0.7)

Comment se fait-il que je sois en 64 ?????

Merci d'avance
Lilian

Hors ligne

#23 Le 03/11/2005, à 11:10

quechua

Re : Créer un répertoire chroot pour utiliser une autre version de Ubuntu

Bonjour à tous

J'ai bien suivi le tuto. Tout semble s'être bien passé et pourtant.... Lorsque je fais dchroot -d j'obtiens bien "Executing chell in 'breezy" chroot. OK ça va !

Mais lorsque je fais sudo apt-get install synaptic, j'obtiens sudo: unable to lookup ubuntu via gethostbyname()

Il y a comme un problème là. Alors si quelqu'un a une idée de la cause du problème ce serai sympa de m'aider à comprendre ou se situe l'erreur.

Merci

Hors ligne

#24 Le 04/11/2005, à 20:00

Ephack

Re : Créer un répertoire chroot pour utiliser une autre version de Ubuntu

LR a écrit :

Lorsque je lance firefox (mozilla-firefox ou firefox), il se lance très bien mais pas de flash.

Ce qui m'étonne beaucoup, c'est que quand je vais dans Aide/A propos de Mozilla Firefox :

Mozilla/5.0 (X11; U; Linux x86_64; fr; rv:1.7.12) Gecko/20050922 Firefox/1.0.4 (Ubuntu package 1.0.7)

Comment se fait-il que je sois en 64 ?????

Euh... Tu es sûr que tu lances bien le version 32bits et pas la version 64bits?  Si tu as suivi la même méthode que dans le tutoriel, tu devrais plutôt lancer quelques chose comme 'firefox32' pour lancer le navigateur en 32bits...

Par contre quechua, je suis désolé mais je ne vois pas trop le problème. Peut-être au niveau du réseau? Est ce que tu peux pinger un site internet en mode chroot? J'ai moi aussi des problème à réinstaller mon chroot sous breezy, donc... tongue

Hors ligne

#25 Le 05/11/2005, à 19:07

LR

Re : Créer un répertoire chroot pour utiliser une autre version de Ubuntu

Ephack a écrit :

Euh... Tu es sûr que tu lances bien le version 32bits et pas la version 64bits?  Si tu as suivi la même méthode que dans le tutoriel, tu devrais plutôt lancer quelques chose comme 'firefox32' pour lancer le navigateur en 32bits...

J'ai bien suivi le tutoriel mais je ne suis pas sur de quelle version je lance...

Lorsque je fais "firefox32", "(hoary32) firefox32" apparaît dans la console et firefox s'ouvre. Quand je fais Aide/A propos, je vois

Mozilla/5.0 (X11; U; Linux x86_64; fr; rv:1.7.12) Gecko/20050922 Firefox/1.0.4 (Ubuntu package 1.0.7)

Quand je fais "dchroot -d", je vois "Executing shell in 'hoary32' chroot.". Si je fais "firefox", c'est la même chose.

Quand je suis dans mon environnement normal et que je fais "ls -l /usr/local/bin/firefox32", je vois "/usr/local/bin/firefox32 -> /usr/local/bin/do_dchroot".

Tout semble OK non ? Quand j'exécute "synaptic32" et que je recherche "firefox", j'ai "mozilla-firefox" et "firefox" qui sont installés (versions 1.0.7-0ubuntu15). "mozilla-firefox" est décrit comme "dummy transitional package".

Merci pour ton aide
Lilian

Hors ligne