... Repository, пользовательский репозитарий
. Место где ... времени —
Rollback Machine, где ...
Хотелось собрать ответы на некоторые вопросы и кое-какие арчеспецифичные советы для новоиспеченных пользователей ArchLinux в одном месте, дабы давать им эту ссылку сразу после того как они бегло просмотрели арчевики (и почему они её не читают?).
В итоге получился такой небольшой
ArchTips с элементами FAQ, с преферансом и поэтессами. Надеюсь что для себя здесь найдет что-то полезное не только новичок в арче...
Естественно, что бы не повторятся я старался не касался вопросов из Arch FAQ c арчевики, но постарался сдобрить свои графоманские замашки ссылками на арчевики, зачастую специально не договаривая дабы дать лишний повод её почитать. Поверьте, оно того стоит...
Маленький Arch Tips
Что такое AUR?
AUR — Arch User Repository, пользовательский репозитарий Arch. Место где хранится уйма пользовательских
PKGBUILD'ов — файлов описания для сборки пакета из исходников с помощью программы
makepkg являющуюся частью
pacman.
Естественно что для установки из исходников понадобится компилятор и прочие вещи для разработчиков, в ArchLinux базовая их часть находится в группе пакетов
base-devel. Группы пакетов устанавливаются так же как и один пакет
pacman -S base-devel
Не буду расписываться о подробностях, коих вполне навалом тут (бывшим гентушникам настоятельно рекомендую обратить внимание на строки и ссылки про
makepkg.conf)
Установка из AUR
1. Скачать PKGBUILD и другие требуемые файлы (install файл, патчи, etc). Все они содержатся в архиве, доступном по соответствующей ссылке «Архив» («Tarball» в англоязычной версии AUR’а);
2. Перейти в директорию, содержащую PKGBUILD и выполнить makepkg (команда «makepkg -s» установит и зависимости, если они не в AUR);
3. Установить получившийся пакет с помощью pacman:
pacman -U /path/to/pkg.tar.gz
Или воспользуемся какой-нибудь утилитой для упрощения сего дела. Правда такие утилиты никогда не попадут в официальный репозитарий арча по уйме причин, но их можно всегда найти в AUR. Ниже немного об одной из самых популярных утилит такого плана.
Установка yaourt
Многие арчеводы просто не представляют себе жизни без
yaourt — консольной оболочке для пакетного менеджера
pacman и пользовательского репозитария AUR.
Помимо того что он есть в AUR (PKGBUILD), его можно поставить из французского репозитария всего лишь добавив в
/etc/pacman.conf строки
[archlinuxfr]
Server = http://repo.archlinux.fr/i686
и обновив список пакетов (
pacman -Sy) установить как
pacman -S yaourt
Работает
yaourt аналогично пакману за исключением того что ищет и может устанавливать пакеты не только из репозитория но и из AUR, ну и имеет дополнительные возможности узнать о которых можно в мане или в какой-нить статье в сети с его описанием...
Есть схожие по функционалу проекты —
clyde, paktahn, packer (о последнем я писал packer — облегчаем установку пакетов, да и на paktahn обращал свой взор)
Дополнительный репозитарии
В сети уйма дополнительных репозитариев, не забываем что после того как вы добавили какой-нибудь из них в
pacman.conf необходимо обновить список пакетов в нем с помощью
pacman -Sy
Учтите что не все из них живые или в них рабочий софт, хотя это относится не только к арчу...
Репозитарии testing и unstable
Как следует из названия в нем расположены тестовые пакеты которые по тем или иным причинам ещё не удостоились звания «стабильный» (пользователи debian stable могут тут поехидничать).
Если у вас есть желание поставить что-либо из тестинга, но нет желания полностью его использовать, то можно добавить его в самый конец
pacman.conf. Благодаря тому что приоритеты репозитарии имеют тупо по очереди, то все обновления будут идти из core/extra/community, а из testing можно будет поставить отдельный пакет с помощью
pacman -S testing/имя_пакета
Так же существуют
gnome-unstable и
kde-unstable,
ArchLinux x86_64 и multilib
Не секрет,
что друзья не растут в огороде что некоторых приложений под x86_64 просто-напросто не существует. Но есть возможность устанавливать 32-х битные приложения в окружении x86_64. В ArchLinux для этого существует репозитарий
multilib с годными
skype,
flashplugin,
wine и прочим...
Так что не забываем разкомментировать этот репозиторий в
/etc/pacman.conf
У multilib так же есть свой тестинг
multilib-testing.
Пропуск обновления пакетов
Тынц. Кстати, там же в pacman.conf есть опция
CleanMethod = KeepCurrent позволяющая отчищать в кэше устаревшие пакеты дабы этот самый кэш постоянно не рос после обновления, и опция
XferCommand позволяющая сменить загрузчик пакетов из сети....
Собственный репозиторий
В арчевики есть статья Custom Local Repository, в которой все достаточно хорошо описано. От себя добавлю — если у вас уйма старых и новых версий пакетов в одном каталоге (к примеру, из кэша
/var/cache/pacman/pkg/), то удалить старье можно с помощью утилиты
repo-clean (В AUR'е пакет repo-clean-xz)
После обновление всё сломалось — что делать?
Если у вас всё сломалось то с вероятностью в 90% вы
ССЗБ ибо не читаете арченовости и арчевики, используете тестинг, накосячили в настроках или ещё где... В остальных же случаях спасают обновление/пересборка/downgrading нужного пакета. Бывает что-то отваливается по причине того что сама программа теперь работает абсолютно по другому и разработчики это не учли, но такие случаи редки, хотя в своем большинстве вы этого просто не заметите...
Downgrading пакетов
Тут уж либо пересборкой из ABS или иным способом, либо использовать старые репозитарий (статус многих зеркал можно посмотреть тут). Но есть у ArchLinux и машина времени — Arch Rollback Machine, где можно найти старые пакеты.
И не забываем что те пакеты которые у вас уже устанавливались из репозитариев остаются лежат в
/var/cache/pacman/pkg/, и повторно их можно установить как
pacman -U /var/cache/pacman/pkg/имя_файла
.
Так же в AUR имеются програмки для отката версии пакета, к примеру, downgrader и downgrade
Обновление конфигов при обновлении пакетов
В Arch довольно-таки простой пакетный менеджер который не сравнивает текущий и новый конфиг в пакете, а просто при необходимости создает конфиг с припиской .pacsave или .pacnew, который пользователю предстоит сравнить
руками визуально и при необходимости внести соответствующие изменения. Для упрощения сего дела существует утилита
dotpac показывающая в интерактивном режиме разницу между созданными при обновлении конфигов с текущими и предложит внести изменения. Есть и
pacdiff работающий схоже и входящий в состав
pacman-contrib
Ускоряем менеджер пакетов
Кончено те кто пришли из дистрибутивов с пакетами основанными на deb/rpm могут считать пакман быстрым, однако когда-то давно он был ещё быстрее. Есть несколько методов ускорить его, причем использовать их можно совмесно.
- Загрузка пакетов в несколько потоков — для этого используется просто другой менеджер загрузок, к примеру aria2c, но что бы загружать сразу несколько пакетов а не по очереди все же лучше использовать враппер над pacman. К примеру, powerpill, который использует помянутый выше bauerbill.
- Сортировка зеркал с помощью rankmirrors (там же написано о утилите reflector, позволяющей сортировать зеркала по статусу)
- Экономия трафика в виде использования delta обновлений которые поддерживает ArchLinux, но лично я нашел только одно зеркало его использующее
Было ещё пару методов, но с выходом
pacman 3.5 они устарели ибо теперь это делает сам pacman — к примеру он изменил формат базы данных, и замедления из-за большого количества мелких файлов и фрагментации практически сошло на нет, хотя pacman-cage всё ещё в некоторых моментах ускоряет — к примеру, список установленных пакетов всё ещё горой файлов и каталогов), да и вообще пакман хорош =)
Информация о железе
pacman -S hwdetect
(в AUR имеется гуй
qhwdetect)
Это специфичная для ArchLinux консольная утилита с огромным количеством опций — начиная от просмотра модулей ядра для устройств и заканчивая возможностью автоматического изменения
rc.conf и
mkinitcpio.conf
Ну и так же как в других дистрибутивах
lshw/hwinfo/lspci/lsusb/etc
Железные мелочи
Для отключение спикера в /etc/rc.conf добавить с восклицательным знаком модули спикера в строку, должно получится что-то вроде
MODULES=(... !snd_pcsp !pcspkr ...)
Данный способ обещали изменить на строки вида
blacklist module в
/etc/modprobe.d/filename.conf. Подробности о отключении модулей ядра как всегда описано в archwiki
Включаем numlock при старте системы
Лог загрузки
По-умолчанию при выводе login с экрана стирается вся предыдущая информация и всё что было при загрузке на tty1 теряется. Избавится от этого при желании можно поправив файл
/etc/issue удалив в нем первую строку — она там есть, и если вы её не видите то ваш редактор просто не осиливает escape-последовательности и должен быть предан анафеме (мой joe показывает их как ^[[H^[[2J). Ну и о существовании
dmesg не забываем...
Особенности управление сетью
ArchLinux имеет в своем арсенале весьма интересную утилиту для управления сетевыми подключениями с использованием профилей. Имя сему чуду
netcfg.
Всеобъемлющие её описание займет не один экран букв, посему отсылаю в уже написанное. От себя скажу — в некоторых случаях netcfg использовать удобнее чем nm или wicd.
Some yaourt/pacman tips
Переустановить все пакеты из репозиториев
pacman -S $(pacman -Qq | grep -v "$(pacman -Qmq)")
Дабы сделать аналогичное для пакетов отсутствующих в репах можно использовать
yaourt -S `pacman -Qmq`
Обновить все установленные пакеты из git/hg/svn/etc
yaourt --sucre
Удаление
неустановленных пакетов из кэша
pacman -Sc
Удаление
всех пакетов из кэша
pacman -Scc
Так же последние две команды удаляют и неиспользуемые репозитарии...
Удалить пакет со всеми зависимостями
pacman -Rs имя_пакета
Удалить пакет со всеми зависимостями и с тем что зависит от него
pacman -Rsc имя_пакета
Установить/Удалить пакет не смотря на зависимости (одно
d пропускает только проверку версии зависимостей)
pacman -Sdd/pacman -Rdd
Сохранение списка пакетов для последующей установки
pacman -Qq > filename # сохраняем в файл
#что бы сохранить только из репозитариев можно искользовать строку ниже
#comm -13 <(pacman -Qmq | sort) <(pacman -Qqe | sort)
pacman -S `cat filename` # устанавливаем из списка, естественно что пакман будет ругаться если в списке есть пакеты не из реп
По-умолнанию yaourt не обновляет пакеты из AUR, для того что бы он это делал надо добавить в его конфиг строку вида
AlwaysUpgradeAur yes, ну или вручную постоянно добавлять параметр
--aur
Существует враппер над pacman позволяющий сделать что-то вроде сборки мира, использовал я его всего единожды посему не распишу о его возможностях, называется он pacbuilder, yaourt тоже умеет ставить пакет из исходников (
-Sb, ставит с помощью ABS)
Кстати, gnome, kde или xfce можно установить всего лишь одной командой —
pacman -S groupname, где имя группы
gnome, kde или
xfce4 соответственно.
Прирожденным гентушникам будет приятно узнать о существовании
/etc/makepkg.conf в котором прописаны некоторые параметры сборки при использовании
makepkg (который, если забыли, собирает пакет из PKGBUILD)
Плюшки для pacman
Пакет
pacman-contrib — содержит
backman позволяющий завернуть установленные файлы обратно в пакет, упомянутый выше
pacdiff,
paclist показывающий пакеты в репозитории,
pacscripts показывающий пре-,пост-установочные скрипты (в том числе и в файлах пакетов),
pacsearch работающий симпотичным аналогом
pacman -Ss search. Так же в
pacman-contrib имеются файлы для подсветки PKGBUILD
Пакет
srcpac — враппер пакмана для сборки из исходников(функционал частично пересекается с yaourt),
namcap для анализа пакетов... Вообще различных дополнений и приятных мелочей для более комфортной работы сполна, как в репозитории, так и в AUR'е, вопрос лишь в том нужны ли они лично вам. Я вполне удовлетворяюсь наличием в системе yaourt.
GUI для pacman
А нету такого =)
Т.е. есть всякие
gtkpacman-mod, AppSet, PackageKit и прочие, но они настолько убоги, что их даже в репозитарии не берут... Шутка, конечно, хотя в каждой шутке как известно...
Вообще с гуем к пакману все очень плохо, все кто заявлял о себе умирали, появляются новые и так же умирают. Может в будущем что-то и изменится, но пока надежда разве что на вполне приличные
PackageKit и
AppSet — оба находятся в AUR и работают относительно неплохо. Тот же
PackageKit даже умудрился попасть в репозиторий.
Так же активизировались некроманты дарующие вторую жизнь проекту gtkpacman (gtkpacman-mod, wakka — надеюсь они не будут распыляться на два очень-очень похожих проекта и объединят свои усилия, хотя скорее всего они тоже умрут).
Имеется так же не так давно появившейся pacmanxg с несколько странноватым для меня интерфейсом и поддержкой
AUR через
yaourt.
Есть ещё интересный проект —
pcurses, как видно из название это ncurses мордочка для управления пакетами, лично мне она понравилась намного больше чем другие GUI.
Расписываться про оболочки для пакмана не хочу, несмотрня на то что тема мне достаточно интересна и есть что сказать по этому поводу...
Достаточно подробно о графическом пакмане и различных уведомлялках о обновлении можно прочесть здесь.
Автодополнения для pacman
Для пользователей
bash: ставим
bash-completion и добавляем в ваш
bashrc строки
if [ -f /etc/bash_completion ]; then
. /etc/bash_completion
fi
Для пользователей
zsh: включаем в нем автодополнения, если с дуру отключили, и устанавливаем из AUR пакеты
zsh-packer для
packer,
zsh-bauerbill для bauerbill и
zsh-yaourt для yaourt.
Дополнительные материалы
Arch Wiki — там есть почти всё что обычно описывают в сторонних хаутушках типа того что вы читаетете сейчас
Там есть обзор ArchLinux, его Дао, сравнение арча с другими дистрибутивами, основная настройка и информация о управлении пакетами (pacman,
AUR и
ABS). В общем там есть многое, не ленитесь читать, скорее всего там есть ответ на ваш вопрос.
Несмотря на то что даю ссылки на русские статьи в арчевики, рекомендую всё же читать англоязычный вариант (если позволяют знания языков), ибо русскоязычная часть вики не очень активна и многочисленна, посему не всегда поспевает за английской (Присоедениться к переводчикам и писцам русскоязычной арчевики).
PS
Писалось сие ещё в конце января, но не публиковалось по причине сомнений в нужности — сомнения, конечно, остались, но некоторые события дали толчок ещё раз поразмыслить о её нужность и после череды правок выложить этот ArchTips. Как оказалось в ArchLinux с момента написания первого черновика сей заметки практически ничего не изменилось.
По мере сил, возможности и желания буду пополнять и обновлять сию заметку.
Вроде пока все, если есть еще какие вопросы-ответы, уточнения и исправления — делитесь, с удовольствием дополню или исправлю возможно закравшиеся ошибки...
Тема пришла из далекого детства, когда я только начинал программировать, разбирал особенности PHP. ...
О новом испанском комедийном ужастике «Lobos de Arga» (2011) мы подробно рассказывали в ...
С 13 по 17 ноября в Дубае проходит один из крупнейших в мире авиасалонов Dubai Airshow. За первые ...
Несколько месяцев прошло с тех пор, как смертоносный вирус уничтожил 99,9% населения земного шара, ...