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

From ArchWiki
Jump to: navigation, search
(C'è una mailing-list?)
m (Posso aggiornare/migrare il mio sistema da i686 a x86_64 senza reinstallare?: cambiata la risposta)
(34 intermediate revisions by 11 users not shown)
Line 1: Line 1:
 
[[Category:Arch64 (Italiano)]]
 
[[Category:Arch64 (Italiano)]]
[[Category:FAQs (Italiano)]]
+
[[cs:Arch64 FAQ]]
 +
[[de:Arch64 FAQ]]
 +
[[el:Arch64 FAQ]]
 +
[[en:Arch64 FAQ]]
 +
[[uk:Arch64 FAQ]]
 +
[[es:Arch64 FAQ]]
 +
[[ru:Arch64 FAQ]]
 +
[[sr: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_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.
+
  
==What repos should I set up for pacman to use?==
+
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.  
All repos are supported for the port.
+
  
==How can I get the Arch64 PKGBUILDs?==
+
==Come faccio a segnalare un bug?==
We have '''''ABS''''' as Arch 32-bit. Recommended place to store is ''/var/abs''. ''abs'' fetches all CVS entries from archlinux.org tagged with CURRENT-64.
+
  
==How can I build new Arch64 packages using existing 32-bit PKGBUILDs?==
+
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.
We have common PKGBUILDs with Arch32. You can get not-yet-ported 32-bit PKGBUILDs from 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?==
 +
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:
  
==How can I patch existing PKGBUILDs for use with Arch64?==
 
We add to all ported packages this variable:
 
arch=('i686' 'x86_64')
 
Add small patches directly to the sources and md5sums area but use for complete different sources:
 
 
  [ "$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)
 
  
==What will I miss in Arch64?==
+
==Cosa mi mancherà in Arch64?==
The following applications are known not to be 64-bit compatible:
+
  
* no Java plugin shipped by Sun; KDE's Konqueror has its own native running 64-bit JavaPlugin built in! Best solution to browse JavaApplets these days. There is also a gcj-web-plugin (called gcjplugin in AUR) to use Java-Applets in Gecko browsers.
+
Niente. Quasi tutte le applicazioni supportano 64-bit per ora o sono nella fase di transizione per diventare a 64-bit compatibile.
* true x86_64 Flash support only in parts with GPL gnash or swfdec package from extra repo
+
* no native Flash plugin shipped by Macromedia/Adobe - nspluginwrapper package from community allows use of 32-bit plugins but forces installation of lib32 packages - follow this guide on how to [[Install Flash on Arch64]]
+
* Closed-source apps like Skype, Opera - where they don't provide 100% statically built binaries so 32-bit libs are still needed
+
** '''Note:''' for the last opera 9.50 beta 1, there is a x86_64 port. So for the next release of opera, a native port to x86_64 is expected.
+
* additional win32 codecs (... that nobody really needs)
+
* packages that use x86 32-bit assembler code (some emulators like zsnes and 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).
  
Almost everything else should be portable. If you miss any Arch32 package in our port and you know that it will compile on x86_64 (e.g. you have found it in another 64-bit distribution without using multilibs), just contact the devs.
+
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 119: Line 131:
 
  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
 
  
==Can I upgrade/switch my system from i686 to x86_64 without reinstalling?==
+
Ora è possibile digitare in un terminale:
No. However, you can start the system with the Arch64 install CD, mount the disk, delete anything you may want to keep that isn't a 32-bit binary (e.g: /home & /etc), and install.
+
 
 +
$ 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.}}
 +
 
 +
{{nota|1= {{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 https://bbs.archlinux.org/viewtopic.php?id=102828 per ulteriori informazioni.}}
 +
 
 +
{{bc|<nowiki>
 +
# 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]
 +
</nowiki>}}
 +
 
 +
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. Tuttavia sul forum è stata creata una [https://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 10:43, 16 January 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.
Nota: 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. Tuttavia 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.