« Chroot-i386-dev » : différence entre les versions

De Le Wiki du Forum-Debian.fr
Aller à la navigation Aller à la recherche
m (→‎La mise en place de l'environnement de compilation : chg "dossier" par "répertoire")
Aucun résumé des modifications
Ligne 1 : Ligne 1 :
Cet article a pour but de vous aider à mettre en place un environnement de compilation i386 sur une Debian amd64.
Cet article a pour but de vous aider à mettre en place un environnement de compilation i386 sur une Debian amd64.


== Pourquoi ? ==
== Pourquoi ? ==


Il ne semble pas possible de compiler directement des paquets pour une architecture i386 sur un système en amd64 sans devoir d'abord désinstaller tous vos outils de compilations habituels à cause d'une incompatibilité entre les versions i386 et amd64 de certains d'entre eux (gcc le premier).
Il ne semble pas possible de compiler directement des paquets pour une architecture i386 sur un système en amd64 sans devoir d’abord désinstaller tous vos outils de compilations habituels à cause d’une incompatibilité entre les versions i386 et amd64 de certains d’entre eux (gcc le premier).


Une méthode simple pour éviter cette désinstallation/réinstallation à chaque compilation d'architecture différente est de mettre en place un chroot i386 réservé à cet usage sur votre système amd64.
Une méthode simple pour éviter cette désinstallation/réinstallation à chaque compilation pour une architecture différente est de mettre en place un chroot i386 réservé à cet usage sur votre système amd64.


== Les outils ==
== Les outils ==


Cet article a été réalisé avec la version 1.0.44 de [[Debootstrap|debootstrap]], ainsi que le programme [[Chroot|chroot]] inclus dans la version 8.20-3 de coreutils.
Cet article a été réalisé avec la version 1.0.60 de [[Debootstrap|debootstrap]], ainsi que le programme [[Chroot|chroot]] inclus dans la version 8.21-1.2 de coreutils.


J'utilise aussi [[Apt-p2p|apt-p2p]] en version 0.1.6+nmu1, qui n'est pas nécessaire à la mise en place de cet environnement de compilation.
== La mise en place de l’environnement de compilation ==
 
== La mise en place de l'environnement de compilation ==


Toutes les commandes proposées par la suite sont à exécuter en root.
Toutes les commandes proposées par la suite sont à exécuter en root.


J'ai choisi de nommer mon chroot "chroot-i386" et de le placer dans /root/.
J’ai choisi de nommer mon chroot "chroot-sid-i386" et de le placer dans /root/.
 
Il faut tout d'abord créer un répertoire vide prêt à l'accueillir :
 
mkdir chroot-i386


Puis on installe un système minimal + les outils de nécessaires aux compilations qui y prendront place :
deboostrap va créer le répertoire du chroot et y installer un système minimal ainsi que les outils de nécessaires aux compilations qui y prendront place :


version de la commande avec apt-p2p :
debootstrap --verbose --arch=i386 --include=apt-utils,locales,whiptail --variant=buildd sid ./chroot-sid-i386/ http://ftp.fr.debian.org/debian/


debootstrap --verbose --arch=i386 --include=apt-p2p,apt-utils,locales,whiptail,build-essential --variant=minbase sid ./chroot-i386/
Le téléchargement s’effectue et on se retrouve (plus ou moins) rapidement avec un système minimal auquel il ne manque que quelques retouches.
http://127.0.0.1:9977/ftp.fr.debian.org/debian/


version de la commande sans apt-p2p :
Il faut tout d’abord y placer un sources.list adéquat, dans mon cas je me contente de copier celui de mon système actuel puis d’y effectuer quelques modifications (essentiellement y supprimer des dépôts inutiles pour cet environnement) :


  debootstrap --verbose --arch=i386 --include=apt-utils,locales,whiptail,build-essential --variant=minbase sid ./chroot-i386/
  cp /etc/apt/sources.list ./chroot-sid-i386/etc/apt/sources.list
http://ftp.fr.debian.org/debian/
nano ./chroot-sid-i386/etc/apt/sources.list


Le téléchargement s'effectue et on se retrouve (plus ou moins) rapidement avec un système minimal auquel il ne manque que quelques retouches.
Pour l’exemple, voici le sources.list que j’utilise dans mon environnement de compilation :
 
Il faut tout d'abord y placer un sources.list adéquat, dans mon cas je me contente de copier celui de mon système actuel puis d'y effectuer quelques modifications (essentiellement y supprimer des dépôts inutiles pour cet environnement) :
 
cp /etc/apt/sources.list ./chroot-i386/etc/apt/sources.list
nano ./chroot-i386/etc/apt/sources.list
 
Pour l'exemple, voici le sources.list que j'utilise dans mon environnement de compilation :


  # Debian
  # Debian
  deb http://localhost:9977/ftp.fr.debian.org/debian/ stable main
  deb http://ftp.fr.debian.org/debian/ stable main  
  deb http://localhost:9977/ftp.fr.debian.org/debian/ stable-updates main
  deb http://ftp.fr.debian.org/debian/ stable-updates main  
  deb http://localhost:9977/security.debian.org/ stable/updates main
  deb http://security.debian.org/ stable/updates main  
   
   
  deb http://localhost:9977/ftp.fr.debian.org/debian/ testing main
  deb http://ftp.fr.debian.org/debian/ testing main  
  deb http://localhost:9977/security.debian.org/ testing/updates main
  deb http://security.debian.org/ testing/updates main  
   
   
  deb http://localhost:9977/ftp.fr.debian.org/debian/ unstable main
  deb http://ftp.fr.debian.org/debian/ unstable main  
   
   
  deb http://localhost:9977/ftp.fr.debian.org/debian/ experimental main
  deb http://ftp.fr.debian.org/debian/ experimental main  
   
   
  # Debian - sources
  # Debian - sources
  deb-src http://localhost:9977/ftp.fr.debian.org/debian/ stable main
  deb-src http://ftp.fr.debian.org/debian/ stable main
  deb-src http://localhost:9977/ftp.fr.debian.org/debian/ stable-updates main
  deb-src http://ftp.fr.debian.org/debian/ stable-updates main
  deb-src http://localhost:9977/security.debian.org/ stable/updates main
  deb-src http://security.debian.org/ stable/updates main
   
   
  deb-src http://localhost:9977/ftp.fr.debian.org/debian/ testing main
  deb-src http://ftp.fr.debian.org/debian/ testing main
  deb-src http://localhost:9977/security.debian.org/ testing/updates main
  deb-src http://security.debian.org/ testing/updates main
   
   
  deb-src http://localhost:9977/ftp.fr.debian.org/debian/ unstable main
  deb-src http://ftp.fr.debian.org/debian/ unstable main
   
   
  deb-src http://localhost:9977/ftp.fr.debian.org/debian/ experimental main
  deb-src http://ftp.fr.debian.org/debian/ experimental main


J'y copie ensuite mon fichier apt.conf pour conserver les réglages d'APT de mon système habituel :
J’y copie ensuite mon fichier apt.conf pour conserver la configuration d’APT de mon système habituel :


  cp /etc/apt/apt.conf ./chroot-i386/etc/apt/apt.conf
  cp /etc/apt/apt.conf ./chroot-sid-i386/etc/apt/apt.conf


== Premiers pas dans ce nouvel environnement ==
== Premiers pas dans ce nouvel environnement ==


Pour finaliser les derniers réglages, je vais devoir entrer dans ce chroot :
Pour finaliser les derniers réglages, je vais devoir entrer dans ce chroot :


  chroot ./chroot-i386/
  chroot ./chroot-sid-i386/


J'en profite pour vérifier que je suis bien sur une architecture i386 avec la commande suivante :
J’en profite pour vérifier que je suis bien sur une architecture i386 avec la commande suivante :


  dpkg --print-architecture
  dpkg --print-architecture


Aucune locale n'est définie par défaut dans cet environnement, ce qui va vite poser problème vu que son utilisation implique une utilisation massive de la ligne de commande. J'en définis donc une avec la commande suivante :
Aucune locale n’est définie par défaut dans cet environnement, ce qui va vite poser problème vu que les compilations impliquent une utilisation massive de la ligne de commande. J’en définis donc une avec la commande suivante :


  dpkg-reconfigure locales
  dpkg-reconfigure locales


Enfin, je n'ai plus qu'à mettre à jour les listes de paquets d'APT pour que ce chroot soit prêt à compiler :
Enfin, je n’ai plus qu’à mettre à jour les listes de paquets d’APT pour que ce chroot soit prêt à compiler :


  apt-get update
  apt-get update


Et voilà !
Et voilà !
 
Pour utiliser cet environnement de compilation, il me suffit d'entrer la commande "chroot /root/chroot-i386", et pour le quitter d'entrer la commande "exit".


Pour utiliser cet environnement de compilation, il me suffit d’entrer la commande "chroot /root/chroot-sid-i386", et pour le quitter d’entrer la commande "exit".


----
création :
[[Utilisateur:Vv222|Vv222]] ([[Discussion utilisateur:Vv222|discussion]]) 15 décembre 2012 à 13:13 (CET)
[[Utilisateur:Vv222|Vv222]] ([[Discussion utilisateur:Vv222|discussion]]) 15 décembre 2012 à 13:13 (CET)


source : [https://www.debian-fr.org/installation-chroot-32-bits-transparent-t14673.html Installation chroot 32 bits transparent (par fran.b)]
dernière mise-à-jour :
[[Utilisateur:Vv222|Vv222]] ([[Discussion utilisateur:Vv222|discussion]]) 22 août 2014 à 03:23 (CEST)
----
source : [https://www.debian-fr.org/installation-chroot-32-bits-transparent-t14673.html Installation chroot 32 bits transparent (par fran.b)]

Version du 22 août 2014 à 01:23

Cet article a pour but de vous aider à mettre en place un environnement de compilation i386 sur une Debian amd64.

Pourquoi ?

Il ne semble pas possible de compiler directement des paquets pour une architecture i386 sur un système en amd64 sans devoir d’abord désinstaller tous vos outils de compilations habituels à cause d’une incompatibilité entre les versions i386 et amd64 de certains d’entre eux (gcc le premier).

Une méthode simple pour éviter cette désinstallation/réinstallation à chaque compilation pour une architecture différente est de mettre en place un chroot i386 réservé à cet usage sur votre système amd64.

Les outils

Cet article a été réalisé avec la version 1.0.60 de debootstrap, ainsi que le programme chroot inclus dans la version 8.21-1.2 de coreutils.

La mise en place de l’environnement de compilation

Toutes les commandes proposées par la suite sont à exécuter en root.

J’ai choisi de nommer mon chroot "chroot-sid-i386" et de le placer dans /root/.

deboostrap va créer le répertoire du chroot et y installer un système minimal ainsi que les outils de nécessaires aux compilations qui y prendront place :

debootstrap --verbose --arch=i386 --include=apt-utils,locales,whiptail --variant=buildd sid ./chroot-sid-i386/ http://ftp.fr.debian.org/debian/

Le téléchargement s’effectue et on se retrouve (plus ou moins) rapidement avec un système minimal auquel il ne manque que quelques retouches.

Il faut tout d’abord y placer un sources.list adéquat, dans mon cas je me contente de copier celui de mon système actuel puis d’y effectuer quelques modifications (essentiellement y supprimer des dépôts inutiles pour cet environnement) :

cp /etc/apt/sources.list ./chroot-sid-i386/etc/apt/sources.list
nano ./chroot-sid-i386/etc/apt/sources.list

Pour l’exemple, voici le sources.list que j’utilise dans mon environnement de compilation :

# Debian
deb http://ftp.fr.debian.org/debian/ stable main 
deb http://ftp.fr.debian.org/debian/ stable-updates main 
deb http://security.debian.org/ stable/updates main 

deb http://ftp.fr.debian.org/debian/ testing main 
deb http://security.debian.org/ testing/updates main 

deb http://ftp.fr.debian.org/debian/ unstable main 

deb http://ftp.fr.debian.org/debian/ experimental main 

# Debian - sources
deb-src http://ftp.fr.debian.org/debian/ stable main
deb-src http://ftp.fr.debian.org/debian/ stable-updates main
deb-src http://security.debian.org/ stable/updates main

deb-src http://ftp.fr.debian.org/debian/ testing main
deb-src http://security.debian.org/ testing/updates main

deb-src http://ftp.fr.debian.org/debian/ unstable main

deb-src http://ftp.fr.debian.org/debian/ experimental main

J’y copie ensuite mon fichier apt.conf pour conserver la configuration d’APT de mon système habituel :

cp /etc/apt/apt.conf ./chroot-sid-i386/etc/apt/apt.conf

Premiers pas dans ce nouvel environnement

Pour finaliser les derniers réglages, je vais devoir entrer dans ce chroot :

chroot ./chroot-sid-i386/

J’en profite pour vérifier que je suis bien sur une architecture i386 avec la commande suivante :

dpkg --print-architecture

Aucune locale n’est définie par défaut dans cet environnement, ce qui va vite poser problème vu que les compilations impliquent une utilisation massive de la ligne de commande. J’en définis donc une avec la commande suivante :

dpkg-reconfigure locales

Enfin, je n’ai plus qu’à mettre à jour les listes de paquets d’APT pour que ce chroot soit prêt à compiler :

apt-get update

Et voilà !

Pour utiliser cet environnement de compilation, il me suffit d’entrer la commande "chroot /root/chroot-sid-i386", et pour le quitter d’entrer la commande "exit".


création : Vv222 (discussion) 15 décembre 2012 à 13:13 (CET)

dernière mise-à-jour : Vv222 (discussion) 22 août 2014 à 03:23 (CEST)


source : Installation chroot 32 bits transparent (par fran.b)