Difference between revisions of "64-bit FAQ (Українська)"

From ArchWiki
Jump to: navigation, search
(Fix style.)
Line 1: Line 1:
 
[[Category:Arch64 (Українська)]]
 
[[Category:Arch64 (Українська)]]
[[Category:FAQs (Українська)]]
 
 
[[cs:Arch64 FAQ]]
 
[[cs:Arch64 FAQ]]
 
[[el:Arch64 FAQ]]
 
[[el:Arch64 FAQ]]

Revision as of 08:28, 29 December 2012

Нижче наведений список запитання що часто задаються про Arch Linux на x86_64 сумісних процесорах.

Як мені визначити чи мій процесор сумісний з x86_64?

Користувачі GNU/Linux

Виконати наступну команду:

$ less /proc/cpuinfo

Шукати значення flags. Якщо присутній lm - значить твій процесор x86_64-сумісний.

Або можна просто виконати цю команду:

$ grep -q "^flags.*\blm\b" /proc/cpuinfo && echo "x86_64" || echo "not x86_64"

Користувачі Windows

Використавши безкоштовну програму CPU-Z можна визначити чи твій процесор x86_64 сумісний. Центральні процесори AMD з позначкою "AMD64" або процесори Intel з "EM64T" повинні бути сумісними з x86_64 випусками і бінарними пакетами.

Яку версію Arch мені слід використовувати, 32 чи 64?

Якщо твій процесор x86_64-сумісний, слід використовувати Arch64.

Як я можу встановити Arch64?

Просто використай наші офіційні інсталяційні образи дисків.

Наскільки повноцінний порт?

Порт готовий для щоденного використання на домашніх або серверних комп'ютерах.

Чи будуть доступними всі пакети до яких я звик з мого 32-бітного Arch'у?

Репозиторії повністю портовані і все повинно працювати як очікується.

Рідко зустрічаються старі пакунки з AUR які описані тільки як 'i686', але зазвичай вони працюють і для 64-бітних систем також. Просто спробуй додати 'x86_64'.

Чому 64-bit?

У більшості випадків він швидший і по суті безпечніший завдяки природі Address space layout randomization (ASLR) в комбінації з Position-independent code (PIC) і NX Bit які не є доступними в ядрі i686 через відключене PAE. Якщо твій комп'ютер має 4 ГБ або більше оперативної пам'яті, рекомендується використовувати 64-бітний випуск оскільки 32-бітні операційні системи не можуть розпізнати будь-яку додаткову оперативну пам'ять. Більше деталей можна дізнатись у наших звітах відмінностей. Це список в якому наведено порівняння версій 32-/64-бітних пакетів.

Як я можу повідомити про баги?

Просто використовуй Flyspray але вибирай x86_64 в полі "Architecture" якщо ти думає що ця проблема має відношення до портування.

Які репозиторії повинен використовувати pacman?

Всі репозиторії підтримуються портом.

Як змінити існуючі PKGBUILDи для використанні в Arch64?

Додати наступну змінну до всіх портованих пакетів:

arch=('i686' 'x86_64') 

Внести зміни прямо у секції що відповідають за вихідний код і md5-суми і використати інший вихідний код:

[ "$CARCH" = "x86_64" ] && source=(${source[@]} 'other source')
[ "$CARCH" = "x86_64" ] && md5sums=(${md5sums[@]} 'other md5sum')

Для невеликих змін внеси в секцію build:

[ "$CARCH" = "x86_64" ] && (patch -Np0 -i ../foo_x86_64.patch)

Або коли потрібно більше змін:

if [ "$CARCH" = "x86_64" ]; then
    configure/patch/sed      # for x86_64
  else configure/patch/sed   # for i686
fi

Чого мені не вистачатиме у Arch64?

Нічого, справді. Практично всі програми зараз підтримують 64-bit або перебувають у стадії розробки сумісності з 64-bit.

Найбільшою проблемою є або пакети з закритим вихідним кодом або які мають x86-специфічну структуру, яка надто громіздка для портування на 64-bit (типово для емуляторів).

Ці програми раніше були проблематичними, проте зараз доступні в AUR і чудово працюють:

  • Acrobat Reader не має 64-бітної версії, але можна запустити 32-бітну в режимі сумісності. Також існує багато альтернативних програм з відкритим вихідним кодом для перегляду pdf-файлів.

Все інше повинно працювати цілком нормально. Якщо бракує якогось Arch32-пакету в нашому порті і тобі відомо що він компілюється на x86_64 (наприклад ти знайшов цей пакет у іншому 64-bit дистрибутиві), просто зв'яжись з розробниками або зроби запит про новий пакет на форумах.

Чи зможу я запустити 32-бітні програми на Arch64?

Так!

  • Можна встановити lib32-* бібліотеки з [multilib] репозиторію. Щоб використовувати цей репозиторій, потрібно додати наступні рядки до /etc/pacman.conf:
[multilib]
SigLevel = PackageRequired
Include = /etc/pacman.d/mirrorlist

Зараз (Грудень 2011), [multilib] включає Wine і Skype. Крім того, там знаходиться мультибібліотечний компілятор gcc-multilib.

Завантажитись в Arch64, запустити Xorg(команда startx), відкрити термінал.

$ xhost +local:
$ su
# mount /dev/sda1 /mnt/arch32
# mount --bind /proc /mnt/arch32/proc
# chroot /mnt/arch32
# su ім'я_32_бітного_користувача
$ /usr/bin/command-you want # or eg: /opt/mozilla/bin/firefox

Деякі 32-бітні програми (наприклад OpenOffice) можуть вимагати додаткових звязків. Наступні рядки потрібно додати в /etc/rc.local щоб забезпечити все що потрібно 32-бітним програмам (припускається що /mnt/arch32 монтується в /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
#закоментувати наступний рядок якщо не використовується спільний домашній каталог
mount --bind /home /mnt/arch32/home

Потім можна набрати в терміналі:

$ xhost +localhost
$ sudo chroot /mnt/arch32 su ім'я_32_бітного_користувача /opt/openoffice/program/soffice

Чи можна зібрати 32-бітні пакети для i686 в Arch64?

Так. Можна використати:

  • multilib-верісії відповідних пакунків з репозиторію [multilib] або
  • i686 chroot.

Репозиторій multilib - Multilib_Project

Щоб використовувати [multilib] репозиторій, потрібно внести зміни в /etc/pacman.conf і розкоментувати наступні рядки:

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

оновити систему pacman -Syu і встановити пакет gcc-multilib.

Note: Якщо система має встановлену групу пакунків base-devel, користувачі повинні замінити версії з [extra] на версії [mutlilib] як показано нижче.
Note: gcc-multilib може збирати 64-бітний і 32-бітний вихідний код. Можна безпечно встановити multilib-devel щоб замінити пакети показані нижче, проте base-devel потрібен через ініші пакети які в нього включені. Дивись https://bbs.archlinux.org/viewtopic.php?id=102828 для більш детальної інформації.
# 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]

Компіляція пакетів на x86_64 для i686 вимагає лише заміни наступних значень у файлі (наприклад ~/.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}"

і виклику makepkg наступною командою:

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

Чи можу я оновити/змінити мою систему з i686 на x86_64 без перевстановлення?

Так. Існує стаття на форумі в якій покроково описується процес необхідний для успішної міграції встановленої 32-бітної системи на 64-бітну без втрати конфігураційних файлів/налаштувань/інформації. Зауважте: Великий зовнішній жорсткий диск був використаний для перенесення.

Однак, можна запустити Arch64 з інсталяційного диску, змонтувати диск, зберегти все що необхідно і не є 32-бітним бінарним пакетом (наприклад: /home & /etc), і встановити систему.

Також може знадобитись Migrating Between Architectures Without Reinstalling.