Difference between revisions of "64-bit FAQ (Italiano)"

From ArchWiki
Jump to: navigation, search
(not fully translated)
(tradotta e aggiornata pagina)
Line 2: Line 2:
 
[[Category:FAQs (Italiano)]]
 
[[Category:FAQs (Italiano)]]
 
{{i18n|Arch64 FAQ}}
 
{{i18n|Arch64 FAQ}}
{{translateme}}
 
  
Di seguito è riportato un elenco di domande frequenti su Arch64.  
+
Di seguito è riportato un elenco di domande frequenti su Arch Linux a 64bit. Nel caso di problemi utilizzare la versione "dual" è una scelta consigliata.
 +
 
 +
==Come posso determinare se il mio processore è compatibile con un sistema x86_64?==
 +
 
 +
Lanciare il seguente comando:
 +
 +
$ less /proc/cpuinfo
 +
 
 +
Controllare la voce {{ic|flags}}. Se tra le varie voci è presente {{ic|lm}}, allora il vostro processore è x86_64 compatibile.
 +
 
 +
In alternativa potete eseguire questo comando:
 +
 
 +
$ grep "^flags.*\blm\b" /proc/cpuinfo
 +
 
 +
==Devo utilizzare una versione a 32 o a 64 bit di Arch Linux?==
 +
 
 +
Se il vostro processore è [[wikipedia:it:X86-64|x86_64]] compatibile, è necessario utilizzare Arch64 a meno che non si prevede di utilizzare software [[#Cosa mi mancherà in Arch64?|non supportato]]. Si noti che la versione Arch32 non supporta più di 3GB di ram fisica senza l'utilizzo di un kernel personalizzato che includa {{ic|PAE-enabled}}. Si consiglia di utilizzare Arch64 se il sistema ha più memoria.
  
 
==Come faccio a installare Arch64?==
 
==Come faccio a installare Arch64?==
 +
 
Basta utilizzare il nostro [http://www.archlinux.org/download/ CD di installazione ufficiale].
 
Basta utilizzare il nostro [http://www.archlinux.org/download/ CD di installazione ufficiale].
  
==A che punto è il port? Avrò tutti i pacchetti del mio ambiente Arch32?==
+
==A che punto è il trasferimento del software?==
I repository Core+Extra sono pronti e quasi tutto è aggiornato, solo poche ore o giorni al massimo dietro Arch Linux i686. I nostri TU stanno provando ad eseguire il port in Community proprio adesso.
+
  
Il port è pronto per l'uso quotidiano in un ambiente desktop o server.
+
Arch64 è pronto per l'uso quotidiano in un ambiente desktop o server.
  
==64 bit significa un grande aumento di velocità?==
+
==Avrò tutti i pacchetti della mia versione 32-bit di Arch che sono abituato ad utilizzare?==
Per le applicazioni che utilizzano una CPU con registri a 64-bit (grandi database e simili), questo è vero nella maggior parte dei casi. Alcune applicazioni multimediali gireranno anche notevolmente più veloce. Se conosci un'applicazione che è notoriamente molto più veloce quando si utilizzano le estensioni SSE3 è possibile ricostruire il pacchetto da sé. Noi ''soltanto''compiliamo con il supporto SSE2 (da marzo=x86_64)e ottimizzazioni -O2.
+
Per saperne di più leggi http://forums.gentoo.org/viewtopic.php?t=221045 oppure http://www.thejemreport.com/mambo/content/view/74/74/.
+
  
For the rest of the system: It doesn't make any difference if the keyboard waits.  
+
I repository sono tutti stati migrati e quasi tutto è stato aggiornato. Potrebbe capitare che la versione x86_64 sia indietro di qualche ora rispetto alla versione i686.
  
For further details watch our [[Arch64_ToDoS]]. There you will find a list comparing arch32/arch64 package versions.
+
Occasionalmente potrebbe imbattersi in pacchetti su [[AUR (Italiano)|AUR]] che contengono solo l'architettura {{ic|'i686'}}, ma spesso sono in grado di compilare anche sui sistemi a 64-bit, basta aggiungere {{ic|'x86_64'}}.
  
For certain boot problems try these special kernel boot flags: http://www.x86-64.org/lists/discuss/msg03747.html (dead link)
+
==Perché 64 bit?==
  
I have three 64-bit Archies running now, and they perform noticeably better under heavy load. It just seems to deliver more punch.
+
Di solito è più veloce (specialmente per encoding audio/video, applicazioni scientifiche, ecc) e come un ulteriore bonus anche intrinsecamente un po 'più sicuro a causa della natura di Address Space Layout Randomization e codice indipendente dalla posizione.
 +
Limitarsi a 32bit e gli svantaggi che vengono con esso ha poco senso di questi tempi a meno che non fatto per una ragione molto buona. Anche i programmatori tendono sempre più a prendersi cura dei sistemi 64bit, in quanto quasi tutte le CPU tradizionali X86 che sono venuti fuori stanno facendo uso del prolungamento a 64 bit.
  
==Attenzione quando aggiorni glibc da una versione inferiore alla 2.4!==
+
Per ulteriori dettagli si può consultare la nostra [[Arch64_ToDoS]]. Dove potrete trovare una lista di comparazione della versione dei pacchetti 32/64bit..
E' importante se aggiorni glibc da una versione inferiore alla 2.4 che tu lo faccia a parte. Quindi dai prima pacman -Sy glibc e, se non ci sono problemi, dai pacman -Su. Altrimenti l'aggiornamento della libreria potrebbe fallire e sarai costretto ad usare pacman.static per correggere l'errore.
+
  
 
==Come faccio a segnalare un bug?==
 
==Come faccio a segnalare un bug?==
Usate il solito sistema di segnalazione, ma fate riferimento con una dicitura tipo "x86_64" se pensate che sia un bug relativo all'architettura del programma!
 
  
==C'è una mailing-list?==
+
Semplicemente utilizzando Arch's [http://bugs.archlinux.org/ flyspray], ma selezionate {{ic|x86_64}} nel campo dell'architettura se pensate che sia un problema relativo al port del programma.
Si, c'è una [http://archlinux.org/mailman/listinfo/arch-ports mailing list] generica riguardante i ports di arch.
+
  
 
==Quali repository dovrei utilizzare per pacman?==
 
==Quali repository dovrei utilizzare per pacman?==
Tutti i repository sono suppoartati per la versione 64 bit.
+
Tutti i repository sono supportati per la versione 64 bit.
 
+
==Come posso reperire i PKGBUILD di Arch64?==
+
C'è ""ABS"" come per arch 32-bit. La directory raccomandata per metterli è "/var/abs". "ABS" recupera tutti i pacchetti CVS da archlinux.org taggati con CURRENT-64
+
 
+
==Come posso fare un pacchetto per Arch64 usando un PKGBUILD esistente per la 32-bit?==
+
Abbiamo i PKGBUILD in comune con Arch32. Puoi prendere quelli non ancora "portati" da CVS: http://www.archlinux.org/cvs/
+
  
 
==Come posso modificare i PKGBUILD per usarli con Arch64?==
 
==Come posso modificare i PKGBUILD per usarli con Arch64?==
 
Di solito è necessario aggiungere ad ogni pacchetto la variabile:
 
Di solito è necessario aggiungere ad ogni pacchetto la variabile:
 +
 
  arch=('i686' ''''x86_64'''')  
 
  arch=('i686' ''''x86_64'''')  
 +
 
Aggiungete piccole patch direttamente ai sorgenti e all'area md5 ma usate sorgenti completamente differenti rispetto a quelle per i686:
 
Aggiungete piccole patch direttamente ai sorgenti e all'area md5 ma usate sorgenti completamente differenti rispetto a quelle per i686:
  
 
  [ "$CARCH" = "x86_64" ] && source=(${source[@]} 'other source')
 
  [ "$CARCH" = "x86_64" ] && source=(${source[@]} 'other source')
 
  [ "$CARCH" = "x86_64" ] && md5sums=(${md5sums[@]} 'other md5sum')
 
  [ "$CARCH" = "x86_64" ] && md5sums=(${md5sums[@]} 'other md5sum')
 +
 
Per qualsiasi piccolo fix, usate questo nella sezione 'build':
 
Per qualsiasi piccolo fix, usate questo nella sezione 'build':
  [ "$CARCH" = "x86_64" ] && (patch -Np0 -i ../foo_x86_64.patch || return 1)
+
 
 +
  [ "$CARCH" = "x86_64" ] && (patch -Np0 -i ../foo_x86_64.patch)
 +
 
 
O quando avete bisogno di più cambiamenti:
 
O quando avete bisogno di più cambiamenti:
 +
 
  if [ "$CARCH" = "x86_64" ]; then
 
  if [ "$CARCH" = "x86_64" ]; then
 
     configure/patch/sed      # for x86_64
 
     configure/patch/sed      # for x86_64
 
   else configure/patch/sed  # for i686
 
   else configure/patch/sed  # for i686
 
  fi
 
  fi
Per gli sviluppatori:
 
cvs commit -m "x86_64 updated/fixed or whatever"
 
cvs tag -cFR CURRENT-64 foo-package-directory (even for extra, community, unstable and testing)
 
  
 
==Cosa mi mancherà in Arch64?==
 
==Cosa mi mancherà in Arch64?==
Le seguenti applicazioni non sono ancora compatibili con i 64-bit:
 
  
* Applicazioni closed source come Skype, Teamspeak, alcuni giochi
+
Niente. Quasi tutte le applicazioni supportano 64-bit per ora o sono nella fase di transizione per diventare a 64-bit compatibile.
* Pacchetti che usano codice assembler per x86 32-bit (alcuni emulatori come zsnes e syslinux, anche se zsnes è disponibile come pacchetto 32bit binario per Arch64 in [[AUR]])
+
* Wine (è in fase di realizzazione un port per i 64bit)
+
  
Più o meno tutto il resto dovrebbe essere utilizzabile. Se ti manca un qualsiasi pacchetto per Arch32 nel nostro port, e sai può essere compilato in x86_64 (per esempio perchè l'hai compilato in un altra distro a 64bit senza usare librerie per il 32), semplicemente contatta gli sviluppatori.
+
Il problema più grande sono i pacchetti che sono '''closed source''' o contiene x86 specifico assembly che è ingombrante per essere trasposto a 64-bit (tipico per gli emulatori).
  
==Can I build 32-bit packages for i686 inside Arch64?==
+
Alcune applicazioni erano problematiche, ma sono ora disponibili su [[AUR (Italiano)|AUR]] e funzionano bene:
  
Yes. You need a working i686 chroot (installation with i686 iso "quickinstall" is recommended for the quick way to install it inside Arch64). Install "linux32" wrapper pkg from current to make the chroot behave like a real i686 system. Then use this script to login into the chroot environment as root:
+
* Acrobat Reader non è disponibile in 64-bit, ma è possibile eseguire la versione a 32 bit in modalità compatibile. Ci sono anche molte altre alternative open source che si possono utilizzare per leggere i file PDF.
  
#!/bin/bash
+
Tutto il resto dovrebbe funzionare perfettamente bene. Se vi dovesse mancare un pacchetto Arch32 nel nostro repository e si sa che si può compilare su x86_64 (forse l'avete trovato come pacchetti nativi in un altra distribuzione a 64-bit), basta contattare gli sviluppatori o richiedere un nuovo pacchetto nel forum.
mount --bind /dev /path-to-your-chroot/dev
+
mount --bind /dev/pts /path-to-your-chroot/dev/pts
+
mount --bind /dev/shm /path-to-your-chroot/dev/shm
+
mount -t proc none /path-to-your-chroot/proc
+
mount -t sysfs none /path-to-your-chroot/sys
+
linux32 chroot /path-to-your-chroot
+
  
If you keep the sources on the x86_64 host system you can add
+
==Posso eseguire applicazioni 32-bit all'interno di Arch64?==
"mount --bind /path-to-your-stored-sources /path-to-your-chroot/path-to-your-stored-sources"
+
to share sources from host to chroot system for pkg building used in /etc/makepkg.conf.
+
  
==Can I run 32-bit apps inside Arch64?==
+
Certamente.
Yes!
+
  
'''BUT: Our goal is to be the most bleeding-edge distribution around! 32-bit is old-fashioned. We want Arch64 to be modern and pure 64-bit. So we don't have a Multilib system. We won't take any package into the repos improving 32-bit compatibility. Maybe we will place them into the AUR or community repo.'''
+
* Potete installare le librerie {{ic|1= lib32-*}} dal repsository {{ic|multilib}}. Per poter usare questo repositorio aggiungere le seguenti lineee al proprio {{ic|/etc/pacman.conf}}.
'''''Don't expect any support from the devs getting 32-bit apps running on Arch64!'''''
+
  
Boot into Arch64, startx, open a term.
+
[multilib]
  xhost +local:
+
Include = /etc/pacman.d/mirrorlist
  su
+
 
  mount /dev/sda1 /mnt/arch32
+
Attualmente (dicembre 2011) contiene wine e skype. Inoltre è disponibile un compilatore in multilib.
  mount --bind /proc /mnt/arch32/proc
+
 
  chroot /mnt/arch32
+
* In alternativa potete creare un sistema a 32-bit con chroot (si veda [[Arch64 Install bundled 32bit system]]):
  su your32bitusername
+
 
  /usr/bin/command-you want # or eg: /opt/mozilla/bin/firefox
+
Avviare il sistema Arch64, aprire un terminale e digitare:
 +
 
 +
  $ xhost +local:
 +
  $ su
 +
  # mount /dev/sda1 /mnt/arch32
 +
  # mount --bind /proc /mnt/arch32/proc
 +
  # chroot /mnt/arch32
 +
  # su il-proprio-32bit-nomeutente
 +
  $ /usr/bin/comando che volete # ad esempio: /opt/mozilla/bin/firefox
 +
 
 +
Alcune applicazioni a 32-bit (come OpenOffice) possono richiedere ulteriori binding.  Le righe seguenti può essere posizionato in rc.local per essere sicuri di ottenere tutto il necessario per le applicazioni a 32-bit (si presuppone che {{ic|/mnt/arch32}} sia montato in fstab):
  
Some 32-bit apps (like OpenOffice) may require additional bindings. The following lines can be placed in rc.local to ensure you get all you need for the 32-bit apps (assuming /mnt/arch32 is mounted in fstab):
 
 
  mount --bind /dev /mnt/arch32/dev
 
  mount --bind /dev /mnt/arch32/dev
 
  mount --bind /dev/pts /mnt/arch32/dev/pts
 
  mount --bind /dev/pts /mnt/arch32/dev/pts
Line 110: Line 114:
 
  mount --bind /sys /mnt/arch32/sys
 
  mount --bind /sys /mnt/arch32/sys
 
  mount --bind /tmp /mnt/arch32/tmp
 
  mount --bind /tmp /mnt/arch32/tmp
  #comment the following line if you do not use the same home folder
+
  #commentare la linea successiva se non si vuole utilizzare la cartella home
 
  mount --bind /home /mnt/arch32/home
 
  mount --bind /home /mnt/arch32/home
You can then type in a term:
 
xhost +localhost
 
sudo chroot /mnt/arch32 su your32bitusername /opt/openoffice/program/soffice
 
  
==Posso upgradare il mio sistema da i686 a x86_64 senza reinstallare?==
+
Ora è possibile digitare in un terminale:
No. Comunque, puoi far partire il sistema con il cd di installazione di Arch64, montare il disco, salvare tutto quello che vuoi tenere che non sia un binario per 32-bit (esempio /home & /etc) e installare
+
 
 +
$ xhost +localhost
 +
$ sudo chroot /mnt/arch32 su il-proprio-32bit-nomeutente /opt/openoffice/program/soffice
 +
 
 +
==Posso compilare un pacchetto 32-bit per architettura i686 all'interno di Arch64?==
 +
 
 +
Certamente, è possibile utilizzare:
 +
* le versioni multilib dei pacchetti interessati dal repository multilib
 +
* una sessione chroot i686
 +
 
 +
=== Multilib Repository - [[Multilib_Project]] ===
 +
 
 +
Per utilizzare il repository multilib, editare il proprio {{ic|/etc/pacman.conf}} e aggiungere quanto segue:
 +
 
 +
[multilib]
 +
Include = /etc/pacman.d/mirrorlist
 +
 
 +
Aggiornare i database
 +
 
 +
# pacman -Sy
 +
 
 +
E installare {{pkg|gcc-multilib}} e le sue dipendenze
 +
 
 +
# pacman -S gcc-multilib gcc-libs-multilib binutils-multilib libtool-multilib lib32-glibc
 +
 
 +
{{nota|Se nel sistema è installato il pacchetto {{ic|base-devel}}, gli utenti devono sostituire le versioni [extra] con le versioni presenti in [multilib], come mostrato in seguito.}}
 +
 
 +
{{nota|1= {{pkg|gcc-multilib}} è in grado di costruire codice a 32bit e 64bit. Si può tranquillamente installare {{ic|multilib-devel}} e rimuovere la {{ic|base-devel}} su x86_64. Vedere https://bbs.archlinux.org/viewtopic.php?id=102828 per ulteriori informazioni.}}
 +
 
 +
{{bc|<nowiki>
 +
# pacman -S gcc-multilib gcc-libs-multilib binutils-multilib libtool-multilib lib32-glibc
 +
resolving dependencies...
 +
warning: dependency cycle detected:
 +
warning: lib32-gcc-libs will be installed before its gcc-libs-multilib dependency
 +
looking for inter-conflicts...
 +
:: gcc-libs-multilib and gcc-libs are in conflict. Remove gcc-libs? [y/N] y
 +
:: binutils-multilib and binutils are in conflict. Remove binutils? [y/N] y
 +
:: gcc-multilib and gcc are in conflict. Remove gcc? [y/N] y
 +
:: libtool-multilib and libtool are in conflict. Remove libtool? [y/N] y
 +
 
 +
Remove (4): gcc-libs-4.6.1-1  binutils-2.21.1-1  gcc-4.6.1-1  libtool-2.4-4
 +
 
 +
Total Removed Size:  87.65 MB
 +
 
 +
Targets (7): lib32-glibc-2.14-4  lib32-gcc-libs-4.6.1-1  gcc-libs-multilib-4.6.1-1  binutils-multilib-2.21.1-1
 +
            gcc-multilib-4.6.1-1  lib32-libtool-2.4-2  libtool-multilib-2.4-2
 +
 
 +
Total Download Size:    25.04 MB
 +
Total Installed Size:  108.27 MB
 +
 
 +
Proceed with installation? [Y/n]
 +
</nowiki>}}
 +
 
 +
Compilare un pacchetto su x86_64 per architettura i686 risulta semplice aggiungendo le seguenti linee al file {{ic|~/.makepkg.conf}}.
 +
 
 +
CARCH="i686"
 +
CHOST="i686-pc-linux-gnu"
 +
CFLAGS="-march=i686 -O2 -pipe -m32"
 +
CXXFLAGS="${CFLAGS}"
 +
 
 +
E successivamente invocare {{ic|makepkg}} come segue:
 +
 
 +
$ linux32 makepkg -src
 +
 
 +
Si ricordi di rimuovere o modificare il file {{ic|~/.makepkg.conf}} quando la compilazione del pacchetto i686 è terminata!
 +
 
 +
===Chroot===
 +
 
 +
Per utilizzare un chroot i686 (Un modo veloce e raccomandato è quello di effettuare una installazione con una iso i686 "QuickInstall" all'interno Arch64 o vedere [[Arch64 Install bundled 32bit system]]), installare il corrente pacchetto "linux32" per il wrapper per fare il chroot e si comporterà come un vero e proprio sistema i686. Quindi utilizzare questo script per il login nell'ambiente chroot come root:
 +
 
 +
#!/bin/bash
 +
mount --bind /dev /path-to-your-chroot/dev
 +
mount --bind /dev/pts /path-to-your-chroot/dev/pts
 +
mount --bind /dev/shm /path-to-your-chroot/dev/shm
 +
mount -t proc none /path-to-your-chroot/proc
 +
mount -t sysfs none /path-to-your-chroot/sys
 +
linux32 chroot /path-to-your-chroot
 +
 
 +
Se si mantengono i sorgenti sul sistema host x86_64 si può aggiungere
 +
 +
mount --bind /percorso-dei-sorgenti-d'origine /percorso-del-chroot/percorso-dei-sorgenti-di-destinazione
 +
 
 +
per poter condividere i sorgenti dal sistema host al sistema chroot per poter compilare i pacchetti utilizzando {{ic|/etc/makepkg.conf}}.
 +
 
 +
==Posso aggiornare/migrare il mio sistema da i686 a x86_64 senza reinstallare?==
 +
 
 +
. Sul forum è stata creata una [http://bbs.archlinux.org/viewtopic.php?id=64485 discussione] che delinea misure adottate per migrare con successo un'installazione 32-64 bit, senza perdere alcun file di configurazione/impostazioni/dati. Nota: un grande disco esterno è stato utilizzato per il trasferimento.
 +
 
 +
Tuttavia, è anche possibile avviare il sistema con l'installazione Arch64 CD, montare il disco, è consigliato effettuare un backup di qualsiasi cosa che non sia un binario a 32 bit (ad esempio: {{ic|/home}} e {{ic|/etc}}), e installare.
 +
 
 +
Si consiglia inoltre di leggere [[Migrating Between Architectures Without Reinstalling |Migrazione tra architetture senza dover reinstallare]].

Revision as of 16:55, 30 November 2011

This template has only maintenance purposes. For linking to local translations please use interlanguage links, see Help:i18n#Interlanguage links.


Local languages: Català – Dansk – English – Español – Esperanto – Hrvatski – Indonesia – Italiano – Lietuviškai – Magyar – Nederlands – Norsk Bokmål – Polski – Português – Slovenský – Česky – Ελληνικά – Български – Русский – Српски – Українська – עברית – العربية – ไทย – 日本語 – 正體中文 – 简体中文 – 한국어


External languages (all articles in these languages should be moved to the external wiki): Deutsch – Français – Română – Suomi – Svenska – Tiếng Việt – Türkçe – فارسی

Di seguito è riportato un elenco di domande frequenti su Arch Linux a 64bit. Nel caso di problemi utilizzare la versione "dual" è una scelta consigliata.

Come posso determinare se il mio processore è compatibile con un sistema x86_64?

Lanciare il seguente comando:

$ less /proc/cpuinfo

Controllare la voce flags. Se tra le varie voci è presente lm, allora il vostro processore è x86_64 compatibile.

In alternativa potete eseguire questo comando:

$ grep "^flags.*\blm\b" /proc/cpuinfo

Devo utilizzare una versione a 32 o a 64 bit di Arch Linux?

Se il vostro processore è x86_64 compatibile, è necessario utilizzare Arch64 a meno che non si prevede di utilizzare software non supportato. Si noti che la versione Arch32 non supporta più di 3GB di ram fisica senza l'utilizzo di un kernel personalizzato che includa PAE-enabled. Si consiglia di utilizzare Arch64 se il sistema ha più memoria.

Come faccio a installare Arch64?

Basta utilizzare il nostro CD di installazione ufficiale.

A che punto è il trasferimento del software?

Arch64 è pronto per l'uso quotidiano in un ambiente desktop o server.

Avrò tutti i pacchetti della mia versione 32-bit di Arch che sono abituato ad utilizzare?

I repository sono tutti stati migrati e quasi tutto è stato aggiornato. Potrebbe capitare che la versione x86_64 sia indietro di qualche ora rispetto alla versione i686.

Occasionalmente potrebbe imbattersi in pacchetti su AUR che contengono solo l'architettura 'i686', ma spesso sono in grado di compilare anche sui sistemi a 64-bit, basta aggiungere 'x86_64'.

Perché 64 bit?

Di solito è più veloce (specialmente per encoding audio/video, applicazioni scientifiche, ecc) e come un ulteriore bonus anche intrinsecamente un po 'più sicuro a causa della natura di Address Space Layout Randomization e codice indipendente dalla posizione. Limitarsi a 32bit e gli svantaggi che vengono con esso ha poco senso di questi tempi a meno che non fatto per una ragione molto buona. Anche i programmatori tendono sempre più a prendersi cura dei sistemi 64bit, in quanto quasi tutte le CPU tradizionali X86 che sono venuti fuori stanno facendo uso del prolungamento a 64 bit.

Per ulteriori dettagli si può consultare la nostra Arch64_ToDoS. Dove potrete trovare una lista di comparazione della versione dei pacchetti 32/64bit..

Come faccio a segnalare un bug?

Semplicemente utilizzando Arch's flyspray, ma selezionate x86_64 nel campo dell'architettura se pensate che sia un problema relativo al port del programma.

Quali repository dovrei utilizzare per pacman?

Tutti i repository sono supportati per la versione 64 bit.

Come posso modificare i PKGBUILD per usarli con Arch64?

Di solito è necessario aggiungere ad ogni pacchetto la variabile:

arch=('i686' 'x86_64') 

Aggiungete piccole patch direttamente ai sorgenti e all'area md5 ma usate sorgenti completamente differenti rispetto a quelle per i686:

[ "$CARCH" = "x86_64" ] && source=(${source[@]} 'other source')
[ "$CARCH" = "x86_64" ] && md5sums=(${md5sums[@]} 'other md5sum')

Per qualsiasi piccolo fix, usate questo nella sezione 'build':

[ "$CARCH" = "x86_64" ] && (patch -Np0 -i ../foo_x86_64.patch)

O quando avete bisogno di più cambiamenti:

if [ "$CARCH" = "x86_64" ]; then
    configure/patch/sed      # for x86_64
  else configure/patch/sed   # for i686
fi

Cosa mi mancherà in Arch64?

Niente. Quasi tutte le applicazioni supportano 64-bit per ora o sono nella fase di transizione per diventare a 64-bit compatibile.

Il problema più grande sono i pacchetti che sono closed source o contiene x86 specifico assembly che è ingombrante per essere trasposto a 64-bit (tipico per gli emulatori).

Alcune applicazioni erano problematiche, ma sono ora disponibili su AUR e funzionano bene:

  • Acrobat Reader non è disponibile in 64-bit, ma è possibile eseguire la versione a 32 bit in modalità compatibile. Ci sono anche molte altre alternative open source che si possono utilizzare per leggere i file PDF.

Tutto il resto dovrebbe funzionare perfettamente bene. Se vi dovesse mancare un pacchetto Arch32 nel nostro repository e si sa che si può compilare su x86_64 (forse l'avete trovato come pacchetti nativi in un altra distribuzione a 64-bit), basta contattare gli sviluppatori o richiedere un nuovo pacchetto nel forum.

Posso eseguire applicazioni 32-bit all'interno di Arch64?

Certamente.

  • Potete installare le librerie lib32-* dal repsository multilib. Per poter usare questo repositorio aggiungere le seguenti lineee al proprio /etc/pacman.conf.
[multilib]
Include = /etc/pacman.d/mirrorlist

Attualmente (dicembre 2011) contiene wine e skype. Inoltre è disponibile un compilatore in multilib.

Avviare il sistema Arch64, aprire un terminale e digitare:

$ xhost +local:
$ su
# mount /dev/sda1 /mnt/arch32
# mount --bind /proc /mnt/arch32/proc
# chroot /mnt/arch32
# su il-proprio-32bit-nomeutente
$ /usr/bin/comando che volete # ad esempio: /opt/mozilla/bin/firefox

Alcune applicazioni a 32-bit (come OpenOffice) possono richiedere ulteriori binding. Le righe seguenti può essere posizionato in rc.local per essere sicuri di ottenere tutto il necessario per le applicazioni a 32-bit (si presuppone che /mnt/arch32 sia montato in fstab):

mount --bind /dev /mnt/arch32/dev
mount --bind /dev/pts /mnt/arch32/dev/pts
mount --bind /dev/shm /mnt/arch32/dev/shm
mount --bind /proc /mnt/arch32/proc
mount --bind /proc/bus/usb /mnt/arch32/proc/bus/usb
mount --bind /sys /mnt/arch32/sys
mount --bind /tmp /mnt/arch32/tmp
#commentare la linea successiva se non si vuole utilizzare la cartella home
mount --bind /home /mnt/arch32/home

Ora è possibile digitare in un terminale:

$ xhost +localhost
$ sudo chroot /mnt/arch32 su il-proprio-32bit-nomeutente /opt/openoffice/program/soffice

Posso compilare un pacchetto 32-bit per architettura i686 all'interno di Arch64?

Certamente, è possibile utilizzare:

  • le versioni multilib dei pacchetti interessati dal repository multilib
  • una sessione chroot i686

Multilib Repository - Multilib_Project

Per utilizzare il repository multilib, editare il proprio /etc/pacman.conf e aggiungere quanto segue:

[multilib]
Include = /etc/pacman.d/mirrorlist

Aggiornare i database

# pacman -Sy

E installare gcc-multilib e le sue dipendenze

# pacman -S gcc-multilib gcc-libs-multilib binutils-multilib libtool-multilib lib32-glibc
Nota: Se nel sistema è installato il pacchetto base-devel, gli utenti devono sostituire le versioni [extra] con le versioni presenti in [multilib], come mostrato in seguito.
Nota: gcc-multilib è in grado di costruire codice a 32bit e 64bit. Si può tranquillamente installare multilib-devel e rimuovere la base-devel su x86_64. Vedere https://bbs.archlinux.org/viewtopic.php?id=102828 per ulteriori informazioni.
# pacman -S gcc-multilib gcc-libs-multilib binutils-multilib libtool-multilib lib32-glibc
resolving dependencies...
warning: dependency cycle detected:
warning: lib32-gcc-libs will be installed before its gcc-libs-multilib dependency
looking for inter-conflicts...
:: gcc-libs-multilib and gcc-libs are in conflict. Remove gcc-libs? [y/N] y
:: binutils-multilib and binutils are in conflict. Remove binutils? [y/N] y
:: gcc-multilib and gcc are in conflict. Remove gcc? [y/N] y
:: libtool-multilib and libtool are in conflict. Remove libtool? [y/N] y

Remove (4): gcc-libs-4.6.1-1  binutils-2.21.1-1  gcc-4.6.1-1  libtool-2.4-4

Total Removed Size:   87.65 MB

Targets (7): lib32-glibc-2.14-4  lib32-gcc-libs-4.6.1-1  gcc-libs-multilib-4.6.1-1  binutils-multilib-2.21.1-1
             gcc-multilib-4.6.1-1  lib32-libtool-2.4-2  libtool-multilib-2.4-2

Total Download Size:    25.04 MB
Total Installed Size:   108.27 MB

Proceed with installation? [Y/n]

Compilare un pacchetto su x86_64 per architettura i686 risulta semplice aggiungendo le seguenti linee al file ~/.makepkg.conf.

CARCH="i686"
CHOST="i686-pc-linux-gnu"
CFLAGS="-march=i686 -O2 -pipe -m32"
CXXFLAGS="${CFLAGS}"

E successivamente invocare makepkg come segue:

$ linux32 makepkg -src

Si ricordi di rimuovere o modificare il file ~/.makepkg.conf quando la compilazione del pacchetto i686 è terminata!

Chroot

Per utilizzare un chroot i686 (Un modo veloce e raccomandato è quello di effettuare una installazione con una iso i686 "QuickInstall" all'interno Arch64 o vedere Arch64 Install bundled 32bit system), installare il corrente pacchetto "linux32" per il wrapper per fare il chroot e si comporterà come un vero e proprio sistema i686. Quindi utilizzare questo script per il login nell'ambiente chroot come root:

#!/bin/bash
mount --bind /dev /path-to-your-chroot/dev
mount --bind /dev/pts /path-to-your-chroot/dev/pts
mount --bind /dev/shm /path-to-your-chroot/dev/shm
mount -t proc none /path-to-your-chroot/proc
mount -t sysfs none /path-to-your-chroot/sys
linux32 chroot /path-to-your-chroot

Se si mantengono i sorgenti sul sistema host x86_64 si può aggiungere

mount --bind /percorso-dei-sorgenti-d'origine /percorso-del-chroot/percorso-dei-sorgenti-di-destinazione

per poter condividere i sorgenti dal sistema host al sistema chroot per poter compilare i pacchetti utilizzando /etc/makepkg.conf.

Posso aggiornare/migrare il mio sistema da i686 a x86_64 senza reinstallare?

Sì. Sul forum è stata creata una discussione che delinea misure adottate per migrare con successo un'installazione 32-64 bit, senza perdere alcun file di configurazione/impostazioni/dati. Nota: un grande disco esterno è stato utilizzato per il trasferimento.

Tuttavia, è anche possibile avviare il sistema con l'installazione Arch64 CD, montare il disco, è consigliato effettuare un backup di qualsiasi cosa che non sia un binario a 32 bit (ad esempio: /home e /etc), e installare.

Si consiglia inoltre di leggere Migrazione tra architetture senza dover reinstallare.