[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
Dernière révisionLes deux révisions suivantes
fr:slackware:multilib [2017/01/15 11:55 (UTC)] – [Permettre le multilib sur Slackware64] pierreaversengfr:slackware:multilib [2017/09/22 07:13 (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> 
-<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>
     * L'étape précédente prend du temps. Quand c'est fini, installez les 90 Mo de paquets Slackware 32-bits fraîchement convertis qui viennent d'être créés dans les sous-répertoires de votre //répertoire courant//: <code>     * L'étape précédente prend du temps. Quand c'est fini, installez les 90 Mo de paquets Slackware 32-bits fraîchement convertis qui viennent d'être créés dans les sous-répertoires de votre //répertoire courant//: <code>
 # 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 205: 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:   * Les 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 311: Ligne 314:
  
 <code bash> <code bash>
-The A/ series:+Les ensembles A/ :
  
 aaa_elflibs aaa_elflibs
Ligne 327: Ligne 330:
 xz xz
  
-The AP/ series:+Les ensembles AP/ :
  
 cups cups
Ligne 337: 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 354: Ligne 359:
 esound esound
 expat expat
 +ffmpeg
 fftw fftw
 freetype freetype
 fribidi fribidi
 gamin gamin
 +gc
 gdk-pixbuf2 gdk-pixbuf2
 giflib giflib
Ligne 368: Ligne 375:
 gst-plugins-good gst-plugins-good
 gst-plugins-good0 gst-plugins-good0
 +gst-plugins-libav
 gstreamer gstreamer
 gstreamer0 gstreamer0
Ligne 375: Ligne 383:
 jasper jasper
 json-c json-c
 +lame
 lcms lcms
 lcms2 lcms2
Ligne 380: Ligne 389:
 libart_lgpl libart_lgpl
 libasyncns libasyncns
 +libclc
 +libedit
 libelf libelf
 libexif libexif
Ligne 392: Ligne 403:
 libmpc libmpc
 libnl3 libnl3
 +libnotify
 libogg libogg
 libpcap libpcap
Ligne 400: Ligne 412:
 libtermcap libtermcap
 libtiff libtiff
 +libunistring
 libusb libusb
 libvorbis libvorbis
Ligne 406: Ligne 419:
 lzo lzo
 ncurses ncurses
 +ocl-icd
 openjpeg openjpeg
 orc orc
Ligne 411: Ligne 425:
 popt popt
 pulseaudio pulseaudio
 +python-six
 qt qt
 readline readline
Ligne 422: Ligne 437:
 zlib zlib
  
-The N/ series:+Les ensembles N/ :
  
 curl curl
Ligne 434: Ligne 449:
 openssl openssl
 p11-kit p11-kit
 +samba
  
-The X/ series:+Les ensembles X/ :
  
 fontconfig fontconfig
Ligne 457: Ligne 473:
 libXfixes libXfixes
 libXfont libXfont
 +libXfont2
 libXfontcache libXfontcache
 libXft libXft
Ligne 478: Ligne 495:
 libdrm libdrm
 libepoxy libepoxy
 +libfontenc
 +libinput
 libfontenc libfontenc
 libpciaccess libpciaccess
Ligne 487: Ligne 506:
 mesa mesa
 pixman pixman
 +vulkan-sdk
 xcb-util xcb-util
  
-The XAP/ series:+Les ensembles XAP/ :
  
 sane sane
 fr:slackware:multilib ()