Arch64 FAQ (Русский)
Ниже приведён список часто задаваемых вопросов о Arch64.
Как узнать, является ли мой процессор x86_64 совместимым?
Запустите в терминале:
less /proc/cpuinfo
и проглядите значение "flags" на наличие флага "lm". Если он присутствует - ваш процессор является x86_64 совместимым.
Или попробуйте это:
grep "^flags.*\blm\b" /proc/cpuinfo
Какую версию Arch мне использовать - 32-битную или 64-битную?
Если ваш процессор поддерживает x86_64, Вам следует использовать Arch_64, если вы не планируете работать с этими программами . Помните, что Arch32 не поддерживает больше 3 Гб оперативной памяти по умолчанию: вам следует использовать Arch64 если у вас стоит больше.
Как установить Arch64?
Просто используйте наш официальный образ установочного CD.
Насколько полноценным является порт? Будут ли доступны все пакеты из моего окружения Arch32?
Репозитории Core и Extra портированы и абсолютно все пакеты вовремя обновляются, отставание по времени от Arch Linux i686 от нескольких часов до нескольких дней. Наши доверенные ползователи (TU) сейчас работают над портированием репозитория Community.
Порт уже готов для повседневного использования в качестве рабочего стола или сервера.
Означает ли 64-битность большой прирост производительности?
Для приложений использующих 64-битные регистры процессора (большие базы данных и т.п.) это в большинстве случаев соответствует действительности. Некоторые мультимедиа-приложения также будут выполняться заметно быстрее. Если вам известны приложения которые показывают большой прирост скорости при использовании расширений SSE3, вы можете пересобрать пакет самостоятельно. Мы компилируем с поддержкой только SSE2 (из march=x86_64) и с оптимизациями -O2. Для дальнейшей информации читайте http://forums.gentoo.org/viewtopic.php?t=221045 или http://www.thejemreport.com/mambo/content/view/74/74/ .
При интенсивных нагрузках 64-битные системы показывают себя значительно лучше, чем 32-битные, однако в большинстве случаев производительность будет такой же или даже еще ниже.
Внимание: при обновлении с версии glibc < 2.4!
Если вы обновлятесь с glibc версии ниже 2.4 важно выполнить это отдельным шагом. Выполните сначала
pacman -Sy glibc
и, если эта операция завершилась успешно,
pacman -Su
В противном случае обновление библиотек может дать сбой и вам придётся использовать pacman.static чтобы всё починить.
Как сообщить об ошибке?
Просто используйте багтрекер Arch, но в поле Architecture выберите x86_64 если вы думаете что проблема отностися именно к порту Arch64.
У вас есть список рассылки?
Да, существует общий список рассылки посвященный портам arch.
Какие репозитории я могу использовать в pacman?
Для этого порта поддерживаются все репозитории.
Как получить PKGBUILD'ы Arch64?
Мы используем ABS для 32-битного Arch. Рекомендуемое место для хранения - /var/abs. abs скачивает все файлы из CVS помеченные тегом CURRENT-64.
Как собрать новые пакеты для Arch64 используя существующие 32-битные PKGBUILD'ы?
У нас общие PKGBUILD'ы с Arch32. Вы можете получить ещё не портированные PKGBUILD'ы из CVS: https://www.archlinux.org/cvs/
Как модифицировать PKGBUILD'ы для использования в Arch64?
Для всех портированных пакетов мы добавляем следующую переменную:
arch=('i686' 'x86_64')
Небольшие изменения вносите непосредственно в исходники и раздел md5sums, а для совсем отдельных исходников используйте
[ "$CARCH" = "x86_64" ] && source=(${source[@]} 'other source')
[ "$CARCH" = "x86_64" ] && md5sums=(${md5sums[@]} 'other md5sum')
Для маленьких исправлений в сборочном разделе:
[ "$CARCH" = "x86_64" ] && (patch -Np0 -i ../foo_x86_64.patch || return 1)
Или, если вам нужно больше изменений:
if [ "$CARCH" = "x86_64" ]; then
configure/patch/sed # for x86_64
else configure/patch/sed # for i686
fi
Для разработчиков:
cvs commit -m "x86_64 updated/fixed or whatever" cvs tag -cFR CURRENT-64 foo-package-directory (even for extra, community, unstable and testing)
Что я потеряю в Arch64?
Почти ничего. Все (или практически все) приложения уже поддерживают x64. Самой большой проблемой являются проприетарные программы и программы, содержащие x86-специфичный ассемблерный код (например, эмуляторы). Ранее эти приложения не поддерживали x64, но уже доступны в AUR и прекрасно работают:
- Zsnes - это bin32-zsne
- Плагин Acrobat Reader не доступен в x64, но вы можете запустить 32-битную версию в режиме совместимости. Также имеется достаточно свободных альтернатив для чтения pdf-файлов.
Всё остальное должно быть переносимым. Если вам не хватает какого-то пакета из Arch32 в нашем порте и вы знаете что он собирается под x86_64 (например вы нашли его в другом 64-битном дистрибутиве, без использования lib32), просто свяжитесь с разработчиками.
Могу ли я собирать 32-битные пакеты для i686 используя Arch64?
Да. Вы можете использовать
- версии библиотек из репозитория [multilib] или
- chroot-окружение i686.
Мультиверсионный Репозиторий - Multilib_Project
Чтобы использовать репозиторий [multilib] добавьте в ваш pacman.conf следующее:
[multilib] Include = /etc/pacman.d/mirrorlist
Обновите базу:
pacman -Sy
и установите компилятор gcc-multilib с зависимостями:
pacman -S gcc-multilib gcc-libs-multilib binutils-multilib libtool-multilib lib32-glibc
Chroot
Вам необходимо создать работающее chroot-окружение i686 (рекомендуется инсталляция "quickinstall" с образа i686 для быстрой установки внутри Arch64 или смотрите Arch64 Install bundled 32bit system). Установите пакет с обертками (врапперами) "linux32" из current чтобы заставить chroot вести себя как реальная система i686. Далее используйте следующий скрипт для входа в chroot-окружение в качестве пользователя 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
Если исходники хранятся на вашей x86_64 хост-системе вы можете добавить
mount --bind /path-to-your-stored-sources /path-to-your-chroot/path-to-your-stored-sources
чтобы сделать их доступными в chroot-системе для сборки пакета согласно /etc/makepkg.conf.
Могу я запускать 32-битные приложения внутри Arch64?
Да!
- вы можете установить lib32-* библиотеки из репозитория [multilib]. Чтобы его задействовать добавьте следующее в ваш pacman.conf:
[multilib] Include = /etc/pacman.d/mirrorlist
На данный момент (август 2010) он содержит wine, skype и flashplugin. Также доступен multilib компилятор.
- вы можете создать chroot-окружение с 32-битной системой
Для создания 32-битного chroot-окружения:
Загрузитесь в Arch64, startx, откройте терминал.
xhost +local: su mount /dev/sda1 /mnt/arch32 mount --bind /proc /mnt/arch32/proc chroot /mnt/arch32 su your32bitusername /usr/bin/command-you want # or eg: /opt/mozilla/bin/firefox
Некоторые 32-битные приложения могут требовать дополнительных связей. Можно поместить следующие строки в rc.local чтобы убедиться что вы получите всё что нужно для 32-битных приложений (предполагается что /mnt/arch32 монтируется в 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 #comment the following line if you do not use the same home folder mount --bind /home /mnt/arch32/home
Теперь вы можете набрать в терминале:
xhost +localhost sudo chroot /mnt/arch32 su your32bitusername /opt/openoffice/program/soffice
Могу я обновить/переключить мою систему с i686 на x86_64 без переустановки?
Да. Об этом повествует топик, в котором описаны базовые шаги, позволяющие успешно обновить 32-битную систему до 64-битной без потери данных. Имейте в виду, что для этого нужен носитель большого объема.
Впрочем, вы также можете загрузиться с установочного диска Arch64, примонтировать разделы, сделать резервные копии всего, что не является 32-битными исполняемыми файлами (например /home и /etc) и выполнить установку.