[2024-feb-29] Sad news: Eric Layton aka Nocturnal Slacker aka vtel57 passed away on Feb 26th, shortly after hospitalization. He was one of our Wiki's most prominent admins. He will be missed.

Welcome to the Slackware Documentation Project

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
Prochaine révision
Révision précédente
Prochaine révisionLes deux révisions suivantes
fr:slackware:multilib [2016/10/21 10:28 (UTC)] – [Pour toutes éditions de Slackware] pierreaversengfr:slackware:multilib [2017/09/22 04:36 (UTC)] – [Slackware64 current] pierreaverseng
Ligne 1: Ligne 1:
--- Ajoutez votre texte ci-dessous. Il est vivement recommandé de commencer avec un titre (voir la barre de boutons de l'éditeur). --> +
-Traduction [fr] en cours  --- //[[wiki:user:cedric|Cedric M.]] 2015/09/08 17:55// +
-Vous êtes les bienvenus!+
 ===== Ajouter la Capacité Multilib à Slackware pour l'Architecture x86_64 ===== ===== Ajouter la Capacité Multilib à Slackware pour l'Architecture x86_64 =====
  
Ligne 11: Ligne 9:
 Le [[http://www.pathname.com/fhs/pub/fhs-2.3.html#LIB64 | Filesystem Hierarchy Standard]] indiquant comment séparer clairement les programmes 64-bits et 32-bits sur un même système, avec la Slackware64 nous avons choisi d'adopter ce standard [[wp>x86_64]]. Elle est donc prête pour utiliser les bibliothèques 64-bits dans les répertoires /lib64 et /usr/lib64. C'est pourquoi je la nomme Slackware64 'multilib-ready' (même si les bibliothèques 32-bits se trouvent dans /lib et /usr/lib, Slackware64 ne  contient aucun programme 32-bits).\\  Il y a toutefois une étape supplémentaire à franchir (par vous, l'utilisateur) pour que Slackware64 puisse être dénommée 'multilib-capable'.\\  Le [[http://www.pathname.com/fhs/pub/fhs-2.3.html#LIB64 | Filesystem Hierarchy Standard]] indiquant comment séparer clairement les programmes 64-bits et 32-bits sur un même système, avec la Slackware64 nous avons choisi d'adopter ce standard [[wp>x86_64]]. Elle est donc prête pour utiliser les bibliothèques 64-bits dans les répertoires /lib64 et /usr/lib64. C'est pourquoi je la nomme Slackware64 'multilib-ready' (même si les bibliothèques 32-bits se trouvent dans /lib et /usr/lib, Slackware64 ne  contient aucun programme 32-bits).\\  Il y a toutefois une étape supplémentaire à franchir (par vous, l'utilisateur) pour que Slackware64 puisse être dénommée 'multilib-capable'.\\ 
 On procède de la façon suivante .\\  On procède de la façon suivante .\\ 
-  -Tout d'abord, nous avons besoin de :\\   *glibc (c'est-à-dire : Une glibc capable d'exécuter des binaires 32-bits et 64-bits)\\   *gcc (c'est-à-dire : Un gcc capable de générer des binaires 32-bits et 64-bits)\\  +  -Tout d'abord, nous avons besoin de :\\   *glibc (c'est-à-dire : une glibc capable d'exécuter des binaires 32-bits et 64-bits)\\   *gcc (c'est-à-dire : un gcc capable de générer des binaires 32-bits et 64-bits)\\  
-  -Ensuite, on récupère les bibliothèques de la Slackware 32-bits qu'on installe dans la Slackware 64-bits, ce qui constitue la couche de compatibilité 32-bits.\\  +  -Ensuite, on récupère les bibliothèques de la Slackware 32-bits qu'on installe dans la Slackware64 à côté de leurs versions 64-bits, ce qui constitue la couche de compatibilité 32-bits.\\  
- <note>Slackware pour les architectures x86_64 (ou "//Slackware64//" en abrégé) est un système 64-bits « pur », mais qu'il est facile de faire évoluer en un système multilib. //Telle quelle, Slackware64 ne peut compiler et faire tourner que les binaires 64-bits.//</note>+ 
 Dès sa sortie, Slackware64 avait un avantage par rapport aux 'forks' 64-bits qui existaient par ailleurs. Ces 'forks' ajoutaient une couche de compatibilité 32-bits en recompilant bon nombre de paquets en binaires 32-bits. Slackware64 est une distribution constituée des versions 32-bits et 64-bits développées parallèlement. Ce qui signifie que vous n'avez pas à compiler des paquets 32-bits, vous avez juste à prendre les paquets 32-bits depuis l'arborescence Slackware-32. Voilà pourquoi nous n'avons pas ajouté un système multilib complet, les conditions sont en place mais demandent à l'utilisateur de faire le nécessaire s'il veut le multilib.\\  Dès sa sortie, Slackware64 avait un avantage par rapport aux 'forks' 64-bits qui existaient par ailleurs. Ces 'forks' ajoutaient une couche de compatibilité 32-bits en recompilant bon nombre de paquets en binaires 32-bits. Slackware64 est une distribution constituée des versions 32-bits et 64-bits développées parallèlement. Ce qui signifie que vous n'avez pas à compiler des paquets 32-bits, vous avez juste à prendre les paquets 32-bits depuis l'arborescence Slackware-32. Voilà pourquoi nous n'avons pas ajouté un système multilib complet, les conditions sont en place mais demandent à l'utilisateur de faire le nécessaire s'il veut le multilib.\\ 
 Dans un [[#Instructions détaillées | prochain chapitre]], j'expliquerai comment vous pouvez, à partir d'un paquet Slackware-32 (par exemple le paquet 'mesa') le réempaqueter en un paquet 'mesa-compat32' et l'installer tel quel sur la Slackware64. Dans un [[#Instructions détaillées | prochain chapitre]], j'expliquerai comment vous pouvez, à partir d'un paquet Slackware-32 (par exemple le paquet 'mesa') le réempaqueter en un paquet 'mesa-compat32' et l'installer tel quel sur la Slackware64.
 +
 +<note>Slackware pour les architectures x86_64 (ou "//Slackware64//" en abrégé) est un système 64-bits « pur », mais qu'il est facile de faire évoluer en un système multilib. //Telle quelle, Slackware64 ne peut compiler et faire tourner que les binaires 64-bits.//</note>
  
 ---------- ----------
Ligne 44: Ligne 44:
  
 Automatisation: Automatisation:
-  - Consultez [[#rd_party_support_tools | compat32pkg]] de Sébastien Ballet, qui automatise ces opérationss, comme le fait slackpkg.+  - Consultez [[#rd_party_support_tools | compat32pkg]] de Sébastien Ballet, qui automatise ces opérations, comme le fait slackpkg.
   - Si vous préférez slackpkg pour la gestion des paquets, alors cela vaut la peine de se pencher sur [[http://slakfinder.org/slackpkg+.html|slackpkg+]], une extension à slackpkg qui gère les paquets que vous avez installés depuis des dépôts tiers - y compris multilib. Quand slackpkg+ est correctement configuré, la maintenance de votre multilib se fait tout simplement ainsi: <code>   - Si vous préférez slackpkg pour la gestion des paquets, alors cela vaut la peine de se pencher sur [[http://slakfinder.org/slackpkg+.html|slackpkg+]], une extension à slackpkg qui gère les paquets que vous avez installés depuis des dépôts tiers - y compris multilib. Quand slackpkg+ est correctement configuré, la maintenance de votre multilib se fait tout simplement ainsi: <code>
 # slackpkg update # slackpkg update
Ligne 89: Ligne 89:
 # mkdir slackware64-compat32 ; cd slackware64-compat32 # mkdir slackware64-compat32 ; cd slackware64-compat32
 </code> </code>
-    * Lancez la commande suivante qui crée les paquets de compatibilité 32-bits, en prenant en entrée le répertoire officiel des paquets 32-bits Slackware:+    * Lancez la commande suivante qui crée les paquets de compatibilité 32-bits, en prenant en entrée le répertoire officiel des paquets 32-bits Slackware: <code>
 # massconvert32.sh -i /home/ftp/pub/slackware/slackware-14.2/slackware/ # massconvert32.sh -i /home/ftp/pub/slackware/slackware-14.2/slackware/
 </code> </code>
Ligne 95: Ligne 95:
 # upgradepkg --install-new *-compat32/*.t?z # upgradepkg --install-new *-compat32/*.t?z
 </code> </code>
-    * C'est fait! Maintenant vous pouvez vous lancer dans le téléchargement, l'installation et l'utilisation de programmes 32-bits. Ce n'était pas si dur, n'est-ce pas?+    * C'est fait! Maintenant vous pouvez vous lancer dans le téléchargement, l'installation et l'utilisation de programmes 32-bits. Ce n'était pas si difficile, n'est-ce pas?
  
 <note warning>Si vous utilisez un gestionnaire de paquets comme //slackpkg// vous devrez ajouter tous les noms de paquets concernant''glibc'' et ''gcc'' à sa liste noire de paquets. Si vous ne preniez pas cette précaution, vous risqueriez de voir votre gestionnaire de paquets remplacer par accident vos  versions multilib par les versions d'origine Slackware en 'pur' 64-bits!\\ Si vous utilisez Slackware 13.37 ou plus récente, alors slackpkg interprète bien les expressions régulières dans le fichier de la liste noire. Dans ce cas, une seule ligne suffit dans ''/etc/slackpkg/blacklist'' pour faire exclure tous mes paquets par la liste noire (y compris les paquets multilib gcc et glibc et tous les paquets ''compat32'': <code> <note warning>Si vous utilisez un gestionnaire de paquets comme //slackpkg// vous devrez ajouter tous les noms de paquets concernant''glibc'' et ''gcc'' à sa liste noire de paquets. Si vous ne preniez pas cette précaution, vous risqueriez de voir votre gestionnaire de paquets remplacer par accident vos  versions multilib par les versions d'origine Slackware en 'pur' 64-bits!\\ Si vous utilisez Slackware 13.37 ou plus récente, alors slackpkg interprète bien les expressions régulières dans le fichier de la liste noire. Dans ce cas, une seule ligne suffit dans ''/etc/slackpkg/blacklist'' pour faire exclure tous mes paquets par la liste noire (y compris les paquets multilib gcc et glibc et tous les paquets ''compat32'': <code>
Ligne 204: Ligne 204:
     * gcc-objc-5.3.0_multilib-x86_64-3alien.txz     * gcc-objc-5.3.0_multilib-x86_64-3alien.txz
   * Les bibliothèques GNU libc:   * Les bibliothèques GNU libc:
-    * glibc-2.23_multilib-x86_64-1alien.txz +    * glibc-2.23_multilib-x86_64-2alien.txz 
-    * glibc-i18n-2.23_multilib-x86_64-1alien.txz +    * glibc-i18n-2.23_multilib-x86_64-2alien.txz 
-    * glibc-profile-2.23_multilib-x86_64-1alien.txz +    * glibc-profile-2.23_multilib-x86_64-2alien.txz 
-    * glibc-solibs-2.23_multilib-x86_64-1alien.txz+    * glibc-solibs-2.23_multilib-x86_64-2alien.txz
 ====Slackware64 current==== ====Slackware64 current====
  
-  * Tant que vous ne voyez pas de répertoire distinct nommé "//current//", vous pouvez simplement utiliser les fichiers du répertoire de la version stable la plus récente.+  * Tant que vous ne voyez pas de répertoire distinct nommé "//current//", vous pouvez utiliser les fichiers du répertoire de l'édition de la Slackware stable la plus récente.
  
   * Le trousseau du compilateur gcc:   * Le trousseau du compilateur gcc:
-    * gcc-5.4.0_multilib-x86_64-1alien.txz +    * gcc-7.1.0_multilib-x86_64-2alien.txz 
-    * gcc-g++-5.4.0_multilib-x86_64-1alien.txz +    * gcc-brig-7.1.0_multilib-x86_64-2alien.txz 
-    * gcc-gfortran-5.4.0_multilib-x86_64-1alien.txz +    * gcc-g++-7.1.0_multilib-x86_64-2alien.txz 
-    * gcc-gnat-5.4.0_multilib-x86_64-1alien.txz +    * gcc-gfortran-7.1.0_multilib-x86_64-2alien.txz 
-    * gcc-go-5.4.0_multilib-x86_64-1alien.txz +    * gcc-gnat-7.1.0_multilib-x86_64-2alien.txz 
-    * gcc-java-5.4.0_multilib-x86_64-1alien.txz +    * gcc-go-7.1.0_multilib-x86_64-2alien.txz 
-    * gcc-objc-5.4.0_multilib-x86_64-1alien.txz +    * gcc-objc-7.1.0_multilib-x86_64-2alien.txz 
-  * Les bibliothèques GNU libc: +  * Ensemble des bibliothèques GNU libc: 
-    * glibc-2.24_multilib-x86_64-1alien.txz +    * glibc-2.25_multilib-x86_64-3alien.txz 
-    * glibc-i18n-2.24_multilib-x86_64-1alien.txz +    * glibc-i18n-2.25_multilib-x86_64-3alien.txz 
-    * glibc-profile-2.24_multilib-x86_64-1alien.txz +    * glibc-profile-2.25_multilib-x86_64-3alien.txz 
-    * glibc-solibs-2.24_multilib-x86_64-1alien.txz+    * glibc-solibs-2.25_multilib-x86_64-3alien.txz 
 + 
 +<note>Depuis le passage à gcc 7, il n'y a plus de paquet ''gcc-java'' parce qu'il n'est plus développé.</note> 
 + 
 +<note>Le paquet ''glibc-zoneinfo'' n'est pas un élément de multilib, puisqu'il ne contient pas de code.  Il vous faut installer le paquet ''glibc-zoneinfo'' de la Slackware de base.</note>
  
  
Ligne 231: Ligne 235:
 Il y a un paquet supplémentaire que vous installerez en utilisant le programme "installpkg". Le n° de version précis peut varier suivant l'édition de Slackware, mais on peut trouver le paquet dans le répertoire où se trouvent également les versions multilib de gcc et glibc: Il y a un paquet supplémentaire que vous installerez en utilisant le programme "installpkg". Le n° de version précis peut varier suivant l'édition de Slackware, mais on peut trouver le paquet dans le répertoire où se trouvent également les versions multilib de gcc et glibc:
  
-  * Le "32bit toolkit" (scripts qui facilitent la création de paquets de 32 bits)+  * Le "32bit toolkit" (scripts qui facilitent la création de paquets 32-bits)
     * compat32-tools-3.5-noarch-4alien.tgz     * compat32-tools-3.5-noarch-4alien.tgz
  
Ligne 276: Ligne 280:
 </code></note> </code></note>
  
-<note important>Si vous envisagiez d'utiliser le script ''convertpkg-compat32'' pour convertir un paquet **non-Slackware** en un paquet //-compat32//, je dois fermement vous mettre en garde contre cette idée. Le script est écrit dans le seul but d'obtenir les versions 32-bits des binaires/bibliothèques Slackware64 disponibles dans une configuration multilib. De ce fait, le script va enlever plusieurs éléments qui font partie du paquet 32-bits original - éléments que l'on considère présents car installés par la version 64-bits du paquet. \\ Dans presque tous les cas où, après téléchargement d'un paquet non-Slackware 32-bits dans la Slackware64, le mieux est d'en trouver les sources pour construire une version 64-bits de ce paquet. Une autre solution est d'//installer le paquet original// 32-bits, au lieu d'essayer de "le convertir", puis de l'activer à partir de la ligne de commande pour trouver les bibliothèques manquantes 32-bits qu'il vous faut encore extraire d'un paquet Slacrkware officiel.</note>+<note important>Si vous envisagiez d'utiliser le script ''convertpkg-compat32'' pour convertir un paquet **non-Slackware** en un paquet //-compat32//, je dois fermement vous mettre en garde contre cette idée. Le script est écrit dans le seul but d'obtenir les versions 32-bits des binaires/bibliothèques Slackware64 disponibles dans une configuration multilib. De ce fait, le script va enlever plusieurs éléments qui font partie du paquet 32-bits original - éléments que l'on considère présents car installés par la version 64-bits du paquet. \\ Dans presque tous les cas où, après téléchargement d'un paquet non-Slackware 32-bits dans la Slackware64, le mieux est d'en trouver les sources pour construire une version 64-bits de ce paquet. Une autre solution est d'//installer le paquet original// 32-bits, au lieu d'essayer de "le convertir", puis de l'activer à partir de la ligne de commande pour trouver les bibliothèques manquantes 32-bits qu'il vous faut encore extraire d'un paquet Slackware officiel.</note>
  
  
Ligne 300: Ligne 304:
 ===== Mises en garde ===== ===== Mises en garde =====
  
-  * Quand vous aurez installé les paquets"''-compat32''", vous devrez peut-être réinstaller les pilotes binarires //Nvidia// ou //Ati// pour gérer votre carte vidéo dans X.Org. Ces paquets de pilotes du matériel contiennent à la fois les bibliothèques 64-bits et 32-bits pour être efficaces au maximum sur un OS 64-bits multilib. Si vous avez installé les fichiers des pilotes pour les deux architectures, le paquet "''mesa-compat32''" écrasera plusieurs fichiers de la bibliothèque 32-bits.\\ \\ On the other handif you originally //only// installed the 64bit driver libraries for your Nvidia/Ati cardit is recommended after installation of the //multilib// packagesto re-install the binary driver packageThis timechoose to install the 32bit driver files as well.\\ \\ The graphical 32bit applications that you are going to run on your multilib installation will require these 32bit driver librariesCrashes are likely to occur if you fail to install the correct files.+  * Quand vous aurez installé les paquets"''-compat32''", vous devrez peut-être réinstaller les pilotes binaires //Nvidia// ou //Ati// pour gérer votre carte vidéo dans X.Org. Ces paquets de pilotes du matériel contiennent à la fois les bibliothèques 64-bits et 32-bits pour être efficaces au maximum sur un OS 64-bits multilib. Si vous avez installé les fichiers des pilotes pour les deux architectures, le paquet "''mesa-compat32''" écrasera certains fichiers de la bibliothèque 32-bits.\\ \\ Par contresi au départ vous aviez installé //seulement// les bibliothèques du pilote 64-bits pour votre carte Nvidia/Ati, il est recommandé après l'installation des paquets //multilib//, de réinstaller le paquet du driver binaireCette foischoisissez d'installer aussi les fichiers du pilote 32-bits. \\ \\ Les applications graphiques 32-bits que vous allez faire tourner dans votre installation multilib auront besoin de ces bibliothèques pour pilotes 32-bitsIl y aura sûrement des plantages si vous n'installez pas les bons fichiers.
  
-  * If you want to compile your 64bit kernel yourselfbe sure to compile 32bit emulation capability into it or else multilib will mysteriously failYou will need this piece of kernel configuration: **CONFIG_IA32_EMULATION**+  * Si vous souhaitez compiler votre noyau 64-bits vous-mêmeassurez vous de choisir en option de compilation l'aptitude à l'émulation 32-bits pour lui, sinon multilib échouerait mystérieusementIl vous faudra cet élément de configuration du noyau: **CONFIG_IA32_EMULATION**
  
  
-===== Packages converted by massconvert32.sh =====+===== Paquets convertis par massconvert32.sh =====
  
-This is the list of packages that is converted into "//-compat32//" versions by the ''massconvert32.sh'' scriptNote that some of these packages are not part of Slackware 13.0 or 13.1, they were added in a later Slackware version so they will produce a "//*** FAIL: package 'package_name' was not found!//" message when you run the script on an older releaseThe other way round is true as well some packages have been //removed// in later versions of Slackware and they will also trigger the "//*** FAIL: package 'package_name' was not found!//" messageDon't worry about that.+Voici la liste des paquets convertis en leur version "//-compat32//" par le script ''massconvert32.sh''Notez que plusieurs de ces paquets n'appartiennent pas à Slackware 13.0 ou 13.1, ils ont été ajoutés dans une version ultérieure de Slackware ce qui fait qu'ils provoquent un message d'erreur "//*** FAIL: package 'package_name' was not found!***//" quand vous lancez le script dans une version plus ancienneLa situation complémentaire se manifeste également certains paquets ont été //retirés// des versions plus récentes de Slackware, ce qui déclenche le message "//*** FAIL: package 'package_name' was not found!***//"Ne vous inquiétez pas pour ça.
  
 <code bash> <code bash>
-The A/ series:+Les ensembles A/ :
  
 aaa_elflibs aaa_elflibs
Ligne 326: Ligne 330:
 xz xz
  
-The AP/ series:+Les ensembles AP/ :
  
 cups cups
Ligne 336: Ligne 340:
 sqlite sqlite
  
-The D/ series:+Les ensembles D/ :
  
 libtool libtool
 llvm llvm
 +opencl-headers
  
-The L/ series:+Les ensembles L/ :
  
 +SDL2
 alsa-lib alsa-lib
 alsa-oss alsa-oss
Ligne 353: Ligne 359:
 esound esound
 expat expat
 +ffmpeg
 fftw fftw
 freetype freetype
 fribidi fribidi
 gamin gamin
 +gc
 gdk-pixbuf2 gdk-pixbuf2
 giflib giflib
Ligne 367: Ligne 375:
 gst-plugins-good gst-plugins-good
 gst-plugins-good0 gst-plugins-good0
 +gst-plugins-libav
 gstreamer gstreamer
 gstreamer0 gstreamer0
Ligne 374: Ligne 383:
 jasper jasper
 json-c json-c
 +lame
 lcms lcms
 lcms2 lcms2
Ligne 379: Ligne 389:
 libart_lgpl libart_lgpl
 libasyncns libasyncns
 +libclc
 +libedit
 libelf libelf
 libexif libexif
Ligne 391: Ligne 403:
 libmpc libmpc
 libnl3 libnl3
 +libnotify
 libogg libogg
 libpcap libpcap
Ligne 399: Ligne 412:
 libtermcap libtermcap
 libtiff libtiff
 +libunistring
 libusb libusb
 libvorbis libvorbis
Ligne 405: Ligne 419:
 lzo lzo
 ncurses ncurses
 +ocl-icd
 openjpeg openjpeg
 orc orc
Ligne 410: Ligne 425:
 popt popt
 pulseaudio pulseaudio
 +python-six
 qt qt
 readline readline
Ligne 421: Ligne 437:
 zlib zlib
  
-The N/ series:+Les ensembles N/ :
  
 curl curl
Ligne 433: Ligne 449:
 openssl openssl
 p11-kit p11-kit
 +samba
  
-The X/ series:+Les ensembles X/ :
  
 fontconfig fontconfig
Ligne 456: Ligne 473:
 libXfixes libXfixes
 libXfont libXfont
 +libXfont2
 libXfontcache libXfontcache
 libXft libXft
Ligne 477: Ligne 495:
 libdrm libdrm
 libepoxy libepoxy
 +libfontenc
 +libinput
 libfontenc libfontenc
 libpciaccess libpciaccess
Ligne 486: Ligne 506:
 mesa mesa
 pixman pixman
 +vulkan-sdk
 xcb-util xcb-util
  
-The XAP/ series:+Les ensembles XAP/ :
  
 sane sane
 fr:slackware:multilib ()