Repository 32bit  Forum
Repository 64bit  Wiki

Multilib Slackware per x86 64

Da Slacky.eu.
Versione delle 13:26, 16 mag 2010, autore: Danix (Discussione | contributi)

(diff) ← Versione meno recente | Versione attuale (diff) | Versione più recente → (diff)


Indice

Premesse

Quest'articolo contiene le istruzioni su come creare una Slackware64 multilib vera e propria. Un sistema linux multilib a 64bit è capace di far girare software a 32 come a 64 bit. il Filesystem Hierarchy Standard definisce il modo migliore per ottenere una separazione pulita tra software a 32bit e a 64bit su un unico sistema. Con Slackware64 abbiamo scelto di adottare questo standard, il sistema quindi è stato preparato per cercare le librerie a 64bit in /lib64 e /usr/lib64, di conseguenza la chiamiamo Slackware64 "multilib-ready" (pronta per il multilib ndt.). Nonostante le librerie a 32bit saranno cercate in /lib e /usr/lib, Slackware64 non viene distribuita con software a 32bit. C'è un passaggio supplementare da seguire prima di poterla chiamare Slackware64 "multilib-enabled" (abilitata per il multilib ndt.).

Per ottenere ciò:

  • Prima di tutto dobbiamo passare ad una versione multilib di
  1. glibc ( cioè un glibc che supporti l\'esecuzione di binari sia a 32bit che a 64bit)
  2. gcc (cioè la possibilità di compilare sia binari a 32bit che a 64bit)
  • Poi dobbiamo prendere le librerie di sistema dalla Slackware a 32bit e installarle nel sistema Slackware a 64bit per completare la creazione di uno strato software a 32bit.


Slackware per l'architettura x86_64 (abbreviato "Slackware64") è un Sistema Operativo puro a 64-bit, ma è facilmente aggiornabile al multilib.
Appena installata, Slackware64 offre la possibilità di compilare ed eseguire solo binari a 64bit.

Slackware64 ha un vantaggio rispetto ai fork a "64bit" che esistono la fuori. Questi fork aggiungono lo strato di compatibilità ai 32bit ricompilando molti dei loro pacchetti come binari a 32bit. Slackware invece, è una distribuzione che consiste di una versione a 32bit e una a 64bit che vengono sviluppate in parallelo. Questo significa che non si devono ricompilare dei pacchetti a 32bit da zero per aggiungere la capacità multilib ad un sistema a 64bit. Basta semplicemente prenderli dal ramo a 32bit di Slackware. Questa è una delle ragioni per cui non distribuiamo i pacchetti multilib con Slackware64, ci siamo limitati a creare i prerequisiti lasciando all'utente la possibilità nel caso in cui necessiti il multilib. Più in basso spiegherò come prendere un pacchetto Slackware a 32bit (ad esempio il pacchetto "mesa") e ripacchettizzare il suo contenuto in un pacchetto "mesa-compat32" che si possa installare direttamente in un sistema Slackware64.

Vantaggi di un Sistema multilib

Ecco alcuni esempi di programmi che richiedono il supporto multilib su un sistema Slackware a 64bit perchè altrimenti non sarà possibile avviarli o compilarli su una Slackware64 senza lo strato di compatibilità a 32bit:

La maggior parte dei programmi per Windows sono ancora a 32bit, quindi per usarli su Linux con Wine sarà necessario avere una versione a 32bit di Wine.
Il famoso software di virtualizzazione. Nonostante sia (parzialmente) open source, necessita ancora di librerie di compatibilità a 32bit su una Slackware a 64bit.
Questi programmi sono proprietari e a sorgente chiuso. Dobbiamo aspettare che gli sviluppatori distribuiscano una versione a 64bit. Fin ora questo non è successo per i programmi elencati.

Fortunatamente il supporto ai 64bit sta diventando sempre più comune. L'anno scorso Adobe ha rilasciato il suo famoso plugin Flash per i browser web in versione 64bit, e Sun ha rivelato la versione a 64bit del suo plugin Java per i browser. Questa è stata una delle motivazioni per iniziare a lavorare a Slackware64.

Ottenere i pacchetti multilib

Si può scaricare un set di pacchetti e script abilitati al multilib dal sito web di AlienBob: http://slackware.com/~alien/multilib/ .

Questi pacchetti sono accompagnati dai sorgenti e dagli script SlackBuild, oltre a vari README (questa pagina wiki è basata su uno di questi README). Tutto ciò che è necessario scaricare si trova nelle directory <slackware_numero_di_release> all'interno della directory principale. Il resto è reso disponibile per scopi educazionali.

Abilitare il supporto multilib in Slackware64

Per farla breve

Questa sezione contiene le istruzioni essenziali per aggiungere le piene capacità multilib al vostro sistema Slackware. Se volete capire il procedimento con maggiori dettagli, o vi servono informazioni su come compilare software a 32bit su Slackware64, continuate a leggere la sezione seguente.

  • Dopo aver scaricato i pacchetti dal sito web di AlienBob (l'URL è presente nella sezione precedente), si procede aggiornando i pacchetti a 64bit gcc e glibc con la corrispondente versione multilib.
    Si lanci il comando:

upgradepkg --reinstall --install-new *.t?z nella directory dove sono stati scaricati.
Questo comando installerà inoltre un pacchetto addizionale chiamato "compat32-tools".

  • E' necessario avere un albero delle directory Slackware a 32bit disponibile. Tutti coloro che hanno aquistato il DVD ufficiale di Slackware 13.0 possono usare quello; si tratta di un DVD dual-side e Slackware si trova su uno dei 2 lati. Per questo esempio supporrò che abbiate l'intero albero delle directory nella cartella "/home/ftp/pub/slackware/slackware-13.0/slackware/".
    Subito all'interno ci dovrebbero essere le directory 'a', 'ap', 'd', 'l', 'n', 'x'. (Se avete montato un DVD Slackware, la directory probabilmente sarà "/media/SlackDVD/slackware/" ma non la userò nei comandi di quest'esempio).
  • Create una nuova directory (che chiameremo 'compat32') e entrateci dentro:

mkdir compat32 ; cd compat32

  • Lanciate il seguente comando per creare un set di pacchetti compatibili 32bit, usando la directory dei pacchetti ufficiali Slackware a 32 bit come input:

massconvert32.sh -i /home/ftp/pub/slackware/slackware-13.0/slackware/

  • Il passaggio precedente richiede un po' di tempo, appena finito, potrete procedere all'installazione dei 60MB di pacchetti Slackware appena convertiti che sono stati creati nelle subdirectory all'interno della directory corrente:

installpkg *-compat32/*.t?z

  • Fatto! Adesso potete iniziare a scaricare, installare e avviare programmi a 32bit. Non è stato difficile, no?
Strumenti personali
Namespace

Varianti