Arch64 Install bundled 32bit system (română)

From ArchWiki

Jump to: navigation, search
Article summary
Descrierea unei metode de a rula aplicaţii 32-bit pe un sistem Arch64
Disponibil în limbile
English
Română
Pe aceeaşi temă
Install Flash on Arch64
Using 32-bit-applications on Arch64
Note
  • acest script nu încearcă să instaleze nimic în afara directorului rezervat sistemului pe 32-bit.
  • acest HOWTO este pentru aceia care au nevoie într'adevăr să ruleze aplicaţii pe 32-bit şi care au nevoie să-l instaleze uşor. Arch64 încearcă să fie o distribuţie pură 64-bit, iar dezvoltatorii nu oferă biblioteci pentru compatibilitate. Acest sistem pare să fie cel mai curat sistem 64-bit.


Contents

Instalarea sistemului de bază 32-bit

Depozitul de pachete pentru 32-bit

Se crează depozitul în care vor fi descărcate pachetele 32-bit.

# mkdir /opt/arch32 

Se modifică fişierul /etc/pacman.d/core astfel încât el să ducă la pachetele pentru platforma i686, în loc de x86_64.

De exemplu, folosind vim(1):

# vim /etc/pacman.d/core


Atenţie!
Nu uitaţi să reveniţi la configuraţia iniţială, altfel sistemul dumneavoastră Arch64 va fi dat peste cap.


În plus, este o idee bună să creaţi un fişier /var/log/pacman.log pentru mediul 32-bit, separat de cel folosit normal de Arch64. Raţiunea acestei sugestii este păstrarea separată a schimbărilor produse de pacman(8) şi de pachete în mediul „rădăcină-32” (32-root). Astfel nu se amestecă aceste schimbări cu înregistrarea operaţiunilor curente produse în mod normal de către pacman(8) pe sistemul Arch64. Din nou:


Atenţie!
Nu uitaţi să reveniţi la configuraţia iniţială, altfel sistemul dumneavoastră Arch64 va fi dat peste cap.


Se modifică fişierul de configurare folosit implicit de pacman(8) pentru descărcarea pachetelor: /etc/pacman.conf, schimbând declaraţia LogFile potrivit cu preferinţele alese (denumirea fişierului jurnal pentru mediul 32-root).

# vim /etc/pacman.conf

Sincronizaţi lista de pachete folosită de pacman(8), forţând calea directorului destinaţie (acesta trebuie să fie în concordanţă cu calea directorului unde vor fi depozitate pachetele pentru 32 de bit: /opt/arch32).

# pacman --root /opt/arch32 -Sy

Se instalează pachetele 32-bit ale sistemului de bază, păstrând aceeaşi opţiune pentru forţarea căii directorului destinaţie:

# pacman --root /opt/arch32 -S \
         autoconf \
         automake \
         bash \
         bin86 \
         binutils \
         bison \
         bzip2 \
         coreutils \
         cpio \
         cracklib \
         db \
         dcron \
         dhcpcd \
         dialog \
         diffutils \
         e2fsprogs \
         ed \
         file \
         filesystem \
         findutils \
         flex \
         gawk \
         gcc \
         gdbm \
         gen-init-cpio \
         gettext \
         glibc \
         grep \
         groff \
         grub \
         gzip \
         initscripts \
         iputils \
         jfsutils \
         kbd \
         kernel-headers \
         klibc \
         klibc-extras \
         klibc-udev \
         less \
         libpcap \
         libtool \
         libusb \
         licenses \
         lilo \
         logrotate \
         lshwd \
         m4 \
         mailx \
         make \
         man \
         man-pages \
         mdadm \
         mkinitcpio \
         mktemp \
         module-init-tools \
         nano \
         ncurses \
         net-tools \
         openssl \
         pacman \
         pam \
         patch \
         pciutils \
         pcmciautils \
         pcre \
         perl \
         popt \
         procinfo \
         procps \
         psmisc \
         readline \
         reiserfsprogs \
         rp-pppoe \
         sed \
         shadow \
         slocate \
         sysfsutils \
         syslog-ng \
         sysvinit \
         tar \
         tcp_wrappers \
         udev \
         usbutils \
         util-linux \
         vim \
         wget \
         which \
         wireless_tools \
         xfsprogs \
         zlib

Sau puteţi încerca o listă mai restrânsă de pachete, doar cele esenţiale. În lista de mai jos au fost lăsate de-o parte pachetele de care cu siguranţă nu veţi avea nevoie, precum şi pachetele specifice pentru anumite sisteme de fişiere (d.e. jfsutils). Oricum dacă veţi avea nevoie de ele mai târziu le puteţi adăuga pe fiecare în parte sau vor fi adăugate automat de pacman(8) prin caracteristica sa de a instala automat dependinţele (pachetele respective vor fi instalate automat fiind condiţie necesară pentru instalarea altor pachete).

# pacman --root /opt/arch32 -S \
         autoconf \
         automake \
         bash \
         bin86 \
         binutils \
         bison \
         bzip2 \
         coreutils \
         cpio \
         cracklib \
         db \
         dcron \
         dialog \
         diffutils \
         e2fsprogs \
         ed \
         file \
         filesystem \
         findutils \
         flex \
         gawk \
         gcc \
         gdbm \
         gettext \
         glibc \
         grep \
         groff \
         gzip \
         initscripts \
         iputils \
         kbd \
         kernel-headers \
         klibc \
         klibc-extras \
         klibc-udev \
         less \
         libpcap \
         libtool \
         libusb \
         logrotate \
         lshwd \
         m4 \
         mailx \
         make \
         man \
         man-pages \
         mktemp \
         module-init-tools \
         nano \
         ncurses \
         net-tools \
         openssl \
         pacman \
         pam \
         patch \
         pciutils \
         pcmciautils \
         pcre \
         perl \
         popt \
         procinfo \
         procps \
         psmisc \
         readline \
         sed \
         shadow \
         slocate \
         sysfsutils \
         sysvinit \
         tar \
         tcp_wrappers \
         udev \
         usbutils \
         util-linux \
         vim \
         wget \
         which \
         wireless_tools \
         zlib

Iată o listă cu pachetele din categoria de bază (base) care au fost lăsate afară din lista de mai sus, pentru a avea o idee: dhcpcd, gen-init-cpio, grub, jfsutils, licenses (pardon pentru diversele licenţe Open Source, dar acest pachet este deja instalat în sistemul principal Arch64), lilo, mkinitcpio, mkinitrd, ppp, raidtools, rp-pppoe, reiserfsprogs, syslog-ng, xfsprogs

Acum este momentul să reveniţi la fişierele /etc/pacman.d/core şi /etc/pacman.conf. Schimbaţi fişierele înapoi la cum erau în momentul de dinaintea instalării sistemului 32-bit:

  • modificaţi depozitele ţintă să ducă la pachetele pentru x86_64, pentru /etc/pacman.d/core
  • modificaţi declaraţia LogFile din fişierul /etc/pacman.conf

Scriptul /etc/rc.d/arch32

Pentru a iniţializa mediul 32-bit la pornirea calculatorului creaţi un scriptul /etc/rc.d/arch32 cu următorul conţiunt:

 #!/bin/bash

 . /etc/rc.conf
 . /etc/rc.d/functions

 case $1 in
     start)
         stat_busy "Starting Arch32 chroot"
         mount --bind /proc /opt/arch32/proc
         mount --bind /proc/bus/usb /opt/arch32/proc/bus/usb
         mount --bind /dev /opt/arch32/dev
         mount --bind /dev/pts /opt/arch32/dev/pts
         mount --bind /dev/shm /opt/arch32/dev/shm
         mount --bind /sys /opt/arch32/sys
         mount --bind /tmp /opt/arch32/tmp
         mount --bind /home /opt/arch32/home
         add_daemon arch32
         stat_done
         ;;
     stop)
         stat_busy "Stopping Arch32 chroot"
         umount /opt/arch32/proc/bus/usb
         umount /opt/arch32/proc
         umount /opt/arch32/dev/pts
         umount /opt/arch32/dev/shm
         umount /opt/arch32/dev
         umount /opt/arch32/sys
         umount /opt/arch32/tmp
         umount /opt/arch32/home
         rm_daemon arch32
         stat_done
         ;;
     restart)
         $0 stop
         sleep 1
         $0 start
         ;;
     *)
         echo "usage: $0 {start|stop|restart}"
 esac
 exit 0

Apoi asiguraţi-vă că scriptul are permisiunile corespunzătore executării lui:

# chmod +x /etc/rc.d/arch32

Şi adăugaţi-l în /etc/rc.conf la declaraţia DAEMONS.

DAEMONS=(syslog-ng network netfs crond arch32 gdm)

Configurarea sistemului nou instalat

Întâi câteva din fişierele de configurare ale sistemului Arch64 în sistemul 32-bit:

 # cd /opt/arch32/etc

 # cp -iv /etc/passwd*             .
 # cp -iv /etc/shadow*             .
 # cp -iv /etc/group*              .

 # cp -iv /etc/rc.conf             .
 # cp -iv /etc/resolv.conf         .

 # cp -aiv /etc/localtime          .
 # cp -iv /etc/locale.gen          .
 # cp -iv /etc/profile.d/locale.sh profile.d

 # cp -iv /etc/vimrc               .
 # cp -iv /etc/mtab                .

Acum executaţi comanda chroot(1) în noul sistem

# /etc/rc.d/arch32 start
# xhost +
# chroot /opt/arch32

Puneţi la punct unele chestiuni legate de localizarea noului sistem:

# /usr/sbin/locale-gen
# pacman -Sy ttf-bitstream-vera ttf-ms-fonts

Remarcaţi faptul ca puteţi instala orice font nou. Aveţi nevoie de cel puţin unul, altfel aplicaţiile nu vor afişa nici un fel de text.

De asemenea, nu uitaţi ca acum este implicit fişierul /etc/pacman.conf din mediul 32-bit. Nu uitaţi să revizuiţi depozitele folosite de pacman(8)!

Acum puteţi instala orice aplicaţie aveţi nevoie.

Notă
Pentru Firefox instalat cu plugin flash proprietar veţi avea nevoie de asemenea şi de libxmu. Aparent, această dependenţă a fost omisă (vezi şi Flyspray).
# pacman -S acroread opera
# pacman -S mozilla-firefox
# pacman -S libxmu flashplugin
# pacman -S mplayer-plugin

Puteţi apoi să faceţi curăţenie pentru a recâştiga ceva spaţiu. Iată câteva sugestii (aplicabile din mediul 32root):

# rmdir /home/ftp
# pacman -Rd mkinitcpio

Luaţi în considerare de asemenea curăţarea spaţiului cache al utilitarului pacman(8) (studiaţi-i pagina de manual, şi căutaţi după cuvântul cheie „clean”). Această comandă nu este una pe care să o executaţi doar o singură dată fiindcă pe măsură ce instalaţi pachete acestea se acumulează, trebuie să repetaţi această comandă după fiecare instalare, altfel spaţiul ocupat cache creşte.

# pacman -Scc

Execuţia aplicaţiilor 32-bit din mediul 64-bit

Descărcaţi şi instalaţi pachetul dchroot

pacman -S dchroot

Configurare

Editaţi fişierul de configuraţie /etc/dchroot.conf şi adăugaţi această linie:

arch32 /opt/arch32

Executarea aplicaţiilor 32-bit

Finalmente, pentru a executa aplicaţii 32-bit procedaţi ca în exemplele de mai jos:

# dchroot -d "opera -notrayicon"
# dchroot -d acroread

Prima comandă va lansa navigatorul Opera, fără icon în systray, din mediul 32-bit. A doua comandă va lansa Adobe Acrobat Reader, fără să fie folosite ghilimele (fără "") pentru că nu avem de dat opţiuni în linia de comandă.

Folosirea sunetului

Poate ce mai folosită aplicaţie 32-bit este Flash, de exemplu pentru paginile YouTube.

Pentru a face sunetul să meargă în flash player din Firefox, se deschide un terminal şi se execută chroot(1) înlăuntrul unui sistem 32-bit:

# chroot /opt/arch32

Apoi se instalează pachetul alsa-oss:

# pacman -S alsa-oss

Se exportă variabila de mediu FIREFOX_DSP:

# export FIREFOX_DSP="aoss"

Sau mai comod, se poate adăuga comanda de mai sus într'un script shell numit firefox care porneşte comanda automat.

Se lansează Firefox.

Personal tools