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

From ArchWiki
Jump to: navigation, search
m (add russian i18n link)
m (aggiunto template internazionale)
(31 intermediate revisions by 10 users not shown)
Line 1: Line 1:
 
[[Category:Arch64 (Italiano)]]
 
[[Category:Arch64 (Italiano)]]
[[Category:FAQs (Italiano)]]
+
[[ar:Arch64 FAQ]]
 +
[[cs:Arch64 FAQ]]
 +
[[de:Arch64 FAQ]]
 +
[[el:Arch64 FAQ]]
 +
[[en:Arch64 FAQ]]
 +
[[es:Arch64 FAQ]]
 +
[[ja:Arch64 FAQ]]
 +
[[ru:Arch64 FAQ]]
 +
[[sr:Arch64 FAQ]]
 +
[[uk:Arch64 FAQ]]
 +
[[zh-CN:Arch64 FAQ]]
 +
Di seguito è riportato un elenco di domande frequenti su Arch Linux a 64-bit.
  
{{i18n_links_start}}
+
==Come posso determinare se il mio processore è compatibile con un sistema x86_64?==
{{i18n_entry|English|Arch64 FAQ}}
+
{{i18n_entry|Español|Arch64 FAQ (Español)}}
+
{{i18n_entry|Italiano|Arch64 FAQ (Italiano)}}
+
{{i18n_entry|简体中文|Arch64 问答}}
+
{{i18n_entry|Русский|Arch64 FAQ (Русский)}}
+
{{i18n_links_end}}
+
  
Di seguito è riportato un elenco di domande frequenti su Arch64.  
+
=== Untenti Linux ===
 +
 
 +
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 -q "^flags.*\blm\b" /proc/cpuinfo && echo "x86_64" || echo "not x86_64"
 +
 
 +
=== Untenti Windows ===
 +
 
 +
Utilizzando il programma gratuito [http://www.cpuid.com/cpuz.php CPU-Z] è possibile determinare se il vostra CPU sia un processore 64-bit compatibile.
 +
I processori AMD con set di istruzioni "AMD64" o le soluzioni Intel "EM64T" risultano compatibili con la versione x86_64 e i relativi pacchetti binari.
 +
 
 +
==Devo utilizzare una versione a 32-bit o a 64-bit di Arch Linux?==
 +
 
 +
Se il vostro processore è [[wikipedia:it:X86-64|x86_64]] compatibile è necessario considerare l'utilizzo di Arch64.
  
 
==Come faccio a installare Arch64?==
 
==Come faccio a installare Arch64?==
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?==
+
Basta utilizzare il nostro [https://www.archlinux.org/download/ CD di installazione ufficiale].
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.
+
==A che punto è il trasferimento del software?==
  
==64 bit significa un grande aumento di velocità?==
+
Arch64 è pronto per l'uso quotidiano in un ambiente desktop o server.
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.
+
==Avrò tutti i pacchetti della mia versione 32-bit di Arch che sono abituato ad utilizzare?==
  
For further details watch our [[Arch64_ToDoS]]. There you will find a list comparing arch32/arch64 package versions.
+
I repository sono tutti stati migrati e praticamente tutto dovrebbe funzionare come previsto.
  
For certain boot problems try these special kernel boot flags: http://www.x86-64.org/lists/discuss/msg03747.html (dead link)
+
Raramente un vecchio pacchetto presente in [[AUR (Italiano)|AUR]] potrebbe contenere solo l'architettura {{ic|'i686'}}, ma spesso è in grado di essere compilato sui sistemi a 64-bit, basta aggiungere {{ic|'x86_64'}}.
  
I have three 64-bit Archies running now, and they perform noticeably better under heavy load. It just seems to deliver more punch.
+
==Perché 64-bit?==
  
==Attenzione quando aggiorni glibc da una versione inferiore alla 2.4!==
+
È solitamente più veloce nella maggior parte delle ciscostanze ed inoltre è leggermente più sicuro a causa della natura dell'[[wikipedia:it:ASLR|Address space layout randomization (ASLR)]] in combinazione con [[wikipedia:Position-independent code| Position-independent code (PIC)]] e [[wikipedia:it:NX Bit | NX Bit]] che non è disponibile nel kernel i686 a causa di disabilità PAE. Se nel vostro computer sono presenti 4GB di RAM o più utilizzabile, dovreste seriamente considerare l'utilizzo della versione a 64-bit, poichè il quantitativo di RAM superiore ai 3GB non verrà utilizzato da un sistema operativo a 32-bit.
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.
+
  
==How can I file bugs?==
+
Anche i programmatori tendono sempre meno ad interessarsi all'architettura 32-bit ("legacy"), così come le "nuove" CPU x86 di solito supportano le estensioni a 64-bit.
Simply use Arch's flyspray but note x86_64 in the topic if you think it's a port-related problem!
+
  
==C'è una mailing-list?==
+
Ci sono molti altri motivi che potremmo elencare qui per dirvi di evitare 32-bit, ma tra kernel, ambiente userspace e programmi individuali, risulta impraticabile elencare ogni cosa che un sistema a 64-bit fa molto meglio.
Si, c'è una [http://archlinux.org/mailman/listinfo/arch-ports mailing list] generica riguardante i ports di arch.
+
  
==Quali repository dovrei utilizzare per pacman?==
+
Per ulteriori dettagli si può consultare il nostro [https://www.archlinux.org/packages/differences/ report delle differenze]. Dove potrete trovare una lista di comparazione della versione dei pacchetti 32/64-bit.  
Tutti i repository sono suppoartati per la versione 64 bit.
+
  
==Come posso reperire i PKGBUILD di Arch64?==
+
==Come faccio a segnalare un bug?==
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?==
+
Semplicemente utilizzando Arch's [https://bugs.archlinux.org/ Flyspray], ma selezionate {{ic|x86_64}} nel campo dell'architettura se pensate che sia un problema relativo al port del programma.
Abbiamo i PKGBUILD in comune con Arch32. Puoi prendere quelli non ancora "portati" da CVS: http://www.archlinux.org/cvs/
+
 
 +
==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?==
 
==Come posso modificare i PKGBUILD per usarli con Arch64?==
Noi aggiungiamo ad ogni pacchetto la variabile:
+
Aggiungere ad ogni pacchetto la variabile:
  arch=('i686' 'x86_64')  
+
 
Add small patches directly to the sources and md5sums area but use for complete different sources:
+
  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" ] && source=(${source[@]} 'other source')
 
  [ "$CARCH" = "x86_64" ] && md5sums=(${md5sums[@]} 'other md5sum')
 
  [ "$CARCH" = "x86_64" ] && md5sums=(${md5sums[@]} 'other md5sum')
For any small fix use this in the build area:
+
 
  [ "$CARCH" = "x86_64" ] && (patch -Np0 -i ../foo_x86_64.patch || return 1)
+
Per qualsiasi piccolo fix, usate questo nella sezione 'build':
Or when you need more changes:
+
 
 +
  [ "$CARCH" = "x86_64" ] && (patch -Np0 -i ../foo_x86_64.patch)
 +
 
 +
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
For the devs:
 
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:
 
  
* La Sun non rilascia il java plugin; Konqueror di KDE ha il suo JavaPlugin integrato! E' la migliore soluzione per utilizzare le applicazioni java oggigiorno. C'è anche il gcj-web-plugin (chiamato gcjplugin in AUR) per usare le applicazioni java nei browser Gecko.
+
Niente. Quasi tutte le applicazioni supportano 64-bit per ora o sono nella fase di transizione per diventare a 64-bit compatibile.
* In realtà Flash supporta solo in parte x86_64 con i prodotti GPL gnash o swfdec che si trovano nei reporitory "extra"
+
* Macromedia/Adobe non rilascia un Flashplugin nativo, però è possibile utilizzare il plugin a 32-bit installando le lib32. Vedi la guida [[Install Flash on Arch64]]
+
* Applicazione closed source come skype, opera, necessitano di librerie a 32-bit
+
** '''Note:''' per l'ultima beta di opera (la 9.50), c'è un port per x86_64. Quindi ci sarà un porting nativo per la prossima release.
+
* I codec win32 (...che in realtà non servono a nessuno)
+
* Pacchetti che usano codice assembler per x86 32-bit (alcuni emulatori come zsnes e syslinux)
+
  
 +
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).
  
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.
+
Alcune applicazioni erano problematiche, ma sono ora disponibili su [[AUR (Italiano)|AUR]] e funzionano bene:
  
==Can I build 32-bit packages for i686 inside Arch64?==
+
* 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.
  
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:
+
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.
  
#!/bin/bash
+
==Posso eseguire applicazioni 32-bit all'interno di Arch64?==
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
+
Certamente.
"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?==
+
* Potete installare le librerie {{ic|1= lib32-*}} dal repsository {{ic|[multilib]}}. Per poter usare questo repositorio de-commentare le seguenti linee al proprio {{ic|/etc/pacman.conf}}.
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.'''
+
[multilib]
'''''Don't expect any support from the devs getting 32-bit apps running on Arch64!'''''
+
SigLevel = PackageRequired
 +
Include = /etc/pacman.d/mirrorlist
  
Boot into Arch64, startx, open a term.
+
Attualmente (dicembre 2011) [multilib] contiene wine e Skype. Inoltre è disponibile un compilatore in multilib.
  xhost +local:
+
 
  su
+
* In alternativa potete creare un sistema a 32-bit con chroot (si veda [[Arch64 Install bundled 32bit system]]):
  mount /dev/sda1 /mnt/arch32
+
 
  mount --bind /proc /mnt/arch32/proc
+
Avviare il sistema Arch64, aprire un terminale e digitare:
  chroot /mnt/arch32
+
 
  su your32bitusername
+
  $ xhost +local:
  /usr/bin/command-you want # or eg: /opt/mozilla/bin/firefox
+
  $ 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 {{ic|/etc/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 {{ic|/etc/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 120: Line 133:
 
  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
 +
 
 +
=== Deposito [[Multilib]] ===
 +
 
 +
Per utilizzare il repository [multilib], editare il proprio {{ic|/etc/pacman.conf}} e decommentare quanto segue:
 +
 
 +
[multilib]
 +
SigLevel = PackageRequired
 +
Include = /etc/pacman.d/mirrorlist
 +
 
 +
Aggiornare il sistema con {{ic| pacman -Syu}} e installare il pacchetto {{pkg|gcc-multilib}}.
 +
 
 +
{{nota|
 +
* Se nel sistema è installato il gruppo {{ic|base-devel}}, gli utenti devono sostituire le versioni [extra] con le versioni presenti in [multilib], come mostrato in seguito.
 +
* {{pkg|gcc-multilib}} è in grado di costruire codice a 32-bit e 64-bit. Si può installare {{ic|multilib-devel}} e sostituire i pacchetti indicati qui di seguito, ma {{ic | base-devel}} è ancora necessario  per gli altri pacchetti che include. Vedere <nowiki>https://bbs.archlinux.org/viewtopic.php?id=102828</nowiki> per ulteriori informazioni.}}
 +
 
 +
{{hc|# pacman -S gcc-multilib|2=
 +
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 in un file di configurazione alternativo, ad esempio {{ic|~/.makepkg.i686.conf}}.
 +
 
 +
CARCH="i686"
 +
CHOST="i686-pc-linux-gnu"
 +
CFLAGS="-m32 -march=i686 -mtune=generic -O2 -pipe -fstack-protector --param=ssp-buffer-size=4 -D_FORTIFY_SOURCE=2"
 +
CXXFLAGS="${CFLAGS}"
 +
 
 +
E successivamente invocare {{ic|makepkg}} come segue:
 +
 
 +
$ linux32 makepkg -src --config ~/.makepkg.i686.conf
 +
 
 +
===Chroot===
 +
{{out of date|In questa sezione è menzionato il pacchetto "linux32" che non esiste più.}}
 +
 
 +
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?==
 +
 
 +
No. In senso stretto alcun tipo di migrazione implica che tutti i pacchetti o quasi tutti i pacchetti devono essere reinstallati per l'architettura più recente. Tuttavia, è possibile spostare il sistema senza eseguire una nuova installazione, anche all'interno dell'installazione corrente . Una [https://bbs.archlinux.org/viewtopic.php?id=64485 discussione] sul forum è stata creata e 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 10:43, 28 July 2013

Di seguito è riportato un elenco di domande frequenti su Arch Linux a 64-bit.

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

Untenti Linux

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 -q "^flags.*\blm\b" /proc/cpuinfo && echo "x86_64" || echo "not x86_64"

Untenti Windows

Utilizzando il programma gratuito CPU-Z è possibile determinare se il vostra CPU sia un processore 64-bit compatibile. I processori AMD con set di istruzioni "AMD64" o le soluzioni Intel "EM64T" risultano compatibili con la versione x86_64 e i relativi pacchetti binari.

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

Se il vostro processore è x86_64 compatibile è necessario considerare l'utilizzo di Arch64.

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 praticamente tutto dovrebbe funzionare come previsto.

Raramente un vecchio pacchetto presente in AUR potrebbe contenere solo l'architettura 'i686', ma spesso è in grado di essere compilato sui sistemi a 64-bit, basta aggiungere 'x86_64'.

Perché 64-bit?

È solitamente più veloce nella maggior parte delle ciscostanze ed inoltre è leggermente più sicuro a causa della natura dell'Address space layout randomization (ASLR) in combinazione con Position-independent code (PIC) e NX Bit che non è disponibile nel kernel i686 a causa di disabilità PAE. Se nel vostro computer sono presenti 4GB di RAM o più utilizzabile, dovreste seriamente considerare l'utilizzo della versione a 64-bit, poichè il quantitativo di RAM superiore ai 3GB non verrà utilizzato da un sistema operativo a 32-bit.

Anche i programmatori tendono sempre meno ad interessarsi all'architettura 32-bit ("legacy"), così come le "nuove" CPU x86 di solito supportano le estensioni a 64-bit.

Ci sono molti altri motivi che potremmo elencare qui per dirvi di evitare 32-bit, ma tra kernel, ambiente userspace e programmi individuali, risulta impraticabile elencare ogni cosa che un sistema a 64-bit fa molto meglio.

Per ulteriori dettagli si può consultare il nostro report delle differenze. Dove potrete trovare una lista di comparazione della versione dei pacchetti 32/64-bit.

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?

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 de-commentare le seguenti linee al proprio /etc/pacman.conf.
[multilib]
SigLevel = PackageRequired
Include = /etc/pacman.d/mirrorlist

Attualmente (dicembre 2011) [multilib] 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 /etc/rc.local per essere sicuri di ottenere tutto il necessario per le applicazioni a 32-bit (si presuppone che /mnt/arch32 sia montato in /etc/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

Deposito Multilib

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

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

Aggiornare il sistema con pacman -Syu e installare il pacchetto gcc-multilib.

Nota:
  • Se nel sistema è installato il gruppo base-devel, gli utenti devono sostituire le versioni [extra] con le versioni presenti in [multilib], come mostrato in seguito.
  • gcc-multilib è in grado di costruire codice a 32-bit e 64-bit. Si può installare multilib-devel e sostituire i pacchetti indicati qui di seguito, ma base-devel è ancora necessario per gli altri pacchetti che include. Vedere https://bbs.archlinux.org/viewtopic.php?id=102828 per ulteriori informazioni.
# pacman -S gcc-multilib
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 in un file di configurazione alternativo, ad esempio ~/.makepkg.i686.conf.

CARCH="i686"
CHOST="i686-pc-linux-gnu"
CFLAGS="-m32 -march=i686 -mtune=generic -O2 -pipe -fstack-protector --param=ssp-buffer-size=4 -D_FORTIFY_SOURCE=2"
CXXFLAGS="${CFLAGS}"

E successivamente invocare makepkg come segue:

$ linux32 makepkg -src --config ~/.makepkg.i686.conf

Chroot

Tango-view-refresh-red.pngThis article or section is out of date.Tango-view-refresh-red.png

Reason: In questa sezione è menzionato il pacchetto "linux32" che non esiste più. (Discuss in Talk:64-bit FAQ (Italiano)#)

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?

No. In senso stretto alcun tipo di migrazione implica che tutti i pacchetti o quasi tutti i pacchetti devono essere reinstallati per l'architettura più recente. Tuttavia, è possibile spostare il sistema senza eseguire una nuova installazione, anche all'interno dell'installazione corrente . Una discussione sul forum è stata creata e 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.