UNPKG

arch-wiki-md-repo

Version:

All arch-wiki articles in markdown format, updated every two days.

278 lines (178 loc) 13.6 kB
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").