arch-wiki-md-repo
Version:
All arch-wiki articles in markdown format, updated every two days.
278 lines (178 loc) • 13.6 kB
Markdown
Di seguito è riportato un elenco di domande frequenti su Arch Linux a 64-bit.
## Contents
* [1 Come posso determinare se il mio processore è compatibile con un sistema x86_64?](#Come_posso_determinare_se_il_mio_processore_.C3.A8_compatibile_con_un_sistema_x86_64.3F)
* [1.1 Untenti Linux](#Untenti_Linux)
* [1.2 Untenti Windows](#Untenti_Windows)
* [2 Devo utilizzare una versione a 32-bit o a 64-bit di Arch Linux?](#Devo_utilizzare_una_versione_a_32-bit_o_a_64-bit_di_Arch_Linux.3F)
* [3 Come faccio a installare Arch64?](#Come_faccio_a_installare_Arch64.3F)
* [4 A che punto è il trasferimento del software?](#A_che_punto_.C3.A8_il_trasferimento_del_software.3F)
* [5 Avrò tutti i pacchetti della mia versione 32-bit di Arch che sono abituato ad utilizzare?](#Avr.C3.B2_tutti_i_pacchetti_della_mia_versione_32-bit_di_Arch_che_sono_abituato_ad_utilizzare.3F)
* [6 Perché 64-bit?](#Perch.C3.A9_64-bit.3F)
* [7 Come faccio a segnalare un bug?](#Come_faccio_a_segnalare_un_bug.3F)
* [8 Quali repository dovrei utilizzare per pacman?](#Quali_repository_dovrei_utilizzare_per_pacman.3F)
* [9 Come posso modificare i PKGBUILD per usarli con Arch64?](#Come_posso_modificare_i_PKGBUILD_per_usarli_con_Arch64.3F)
* [10 Cosa mi mancherà in Arch64?](#Cosa_mi_mancher.C3.A0_in_Arch64.3F)
* [11 Posso eseguire applicazioni 32-bit all'interno di Arch64?](#Posso_eseguire_applicazioni_32-bit_all.27interno_di_Arch64.3F)
* [12 Posso compilare un pacchetto 32-bit per architettura i686 all'interno di Arch64?](#Posso_compilare_un_pacchetto_32-bit_per_architettura_i686_all.27interno_di_Arch64.3F)
* [12.1 Deposito Multilib](#Deposito_Multilib)
* [12.2 Chroot](#Chroot)
* [13 Posso aggiornare/migrare il mio sistema da i686 a x86_64 senza reinstallare?](#Posso_aggiornare.2Fmigrare_il_mio_sistema_da_i686_a_x86_64_senza_reinstallare.3F)
## 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](http://www.cpuid.com/cpuz.php) è 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](https://en.wikipedia.org/wiki/it:X86-64 "wikipedia:it:X86-64") compatibile è necessario considerare l'utilizzo di Arch64.
## Come faccio a installare Arch64?
Basta utilizzare il nostro [CD di installazione ufficiale](https://www.archlinux.org/download/).
## 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](/index.php/AUR_(Italiano) "AUR (Italiano)") 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)](https://en.wikipedia.org/wiki/it:ASLR "wikipedia:it:ASLR") in combinazione con [Position-independent code (PIC)](https://en.wikipedia.org/wiki/Position-independent_code "wikipedia:Position-independent code") e [NX Bit](https://en.wikipedia.org/wiki/it:NX_Bit "wikipedia:it: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](https://www.archlinux.org/packages/differences/). 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](https://bugs.archlinux.org/), 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](/index.php/AUR_(Italiano) "AUR (Italiano)") 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.
* In alternativa potete creare un sistema a 32-bit con chroot (si veda [Arch64 Install bundled 32bit system](/index.php/Arch64_Install_bundled_32bit_system "Arch64 Install bundled 32bit system")):
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](/index.php/Multilib "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](https://www.archlinux.org/packages/?name=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](https://www.archlinux.org/packages/?name=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
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](/index.php/Arch64_Install_bundled_32bit_system "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](https://bbs.archlinux.org/viewtopic.php?id=64485) 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](/index.php/Migrating_Between_Architectures_Without_Reinstalling "Migrating Between Architectures Without Reinstalling").