Void Linux. Управление пакетами. Система XBPS: действия с пакетами

Алексей Федорчук

Поднабравшись всякой информации о пакетах, пока приступать к действиям с ними — к установке, переустановке, обновлению, удалению и всему, что потребуется впредь.

Как говорилось в позапрошлом очерке, любые действия над пакетами следует начинать с синхронизации репозиториев и локального кеша, поэтому далее опция -S будет фигурировать практически во всех командах. Из которых первая, разумеется, — установка единичного пакета, которая требует только его имени в качестве агремента:

# xbps-install -S maim

После считывания информации с репозитория и её локального обновления она выведет сведения о версии пакета, его размере, а также аналогичные данные о его зависимостях и запросит согласия на продолжение:

Name      Action    Version           New version            Download size
libid3tag install   -                 0.15.1b_7              26KB 
imlib2    install   -                 1.4.7_1                166KB 
maim      install   -                 3.4.46_1               23KB 

Size to download:              217KB
Size required on disk:        1007KB
Free space on disk:            215GB

Do you want to continue? [Y/n] 

Согласие подразумевается по умолчанию, так что тут достаточно нажать Enter. После чего установка происходит со страшной научно-фантастической силой, определяемой, в сущности, только пропусной способностью канала.

Для ообновления пакета или системы в целом предназначена опция -u, и осуществляется оно командами

# xbps-install -Su maim

и

# xbps-install -Su

соответственно.

Существует ещё несколько опций утилиты xbps-install, влияющих на процесс установки:

-f, или --force — принудительная установка более старой версии пакета, нежелеи текущая из репозитория, ули переустановка инсталлированной версии;

-A, или --automatic — при её указании пакеты получают статус автоматически установленных;

-n, или --dry-run — имитация установки с выводом того, какие пакеты будут установлены как зависимости (не требует прав root’а).

Кроме того, есть несколько опций, определяющих установку пакетов из определённых репозиториев. Однако пока у меня они не востребованы: они предназначены в основном для работы с собственными, локальными или удалёнными, репозиториями.

Оборотная стороны установки пакетов — их удаление, которое выполняется утилитой xbps-remove и в простом случае выглядит так:

# xbps-remove geeqie

Что, как и в случае с установкой пакетов, вызовет такое сообщение:

Name   Action    Version           New version            Download size
geeqie remove    1.1_5             -                      - 

Size freed on disk:           3487KB
Free space on disk:            215GB

Do you want to continue? [Y/n] 

А после согласия — такое:

Removing `geeqie-1.1_5' ...
Updating MIME database...
Removed `geeqie-1.1_5' successfully.

0 downloaded, 0 installed, 0 updated, 0 configured, 1 removed.

При этом пакеты, установленные автоматически как зависимости, не затрагиваются, обретая статус «сирот» (orphan). Чтобы избавиться от них, команду удаления следует сопроводить опцией -R, или --recursive:

$ xbps-remove -R aisleriot                                      [/home/alv]

Name         Action    Version           New version            Download size
aisleriot    remove    3.16.2_1          -                      - 
guile        remove    2.0.11_4          -                      - 
libguile     remove    2.0.11_4          -                      - 
libunistring remove    0.9.6_1           -                      - 

Size freed on disk:             26MB
Free space on disk:            215GB

Do you want to continue? [Y/n] 

Кроме того, опция -o, или --remove-orphans, служит для очистки системы от «осиротелых» зависимостей. А опция -F, или --force-revdeps, позволяет принудительно удалять пакеты, имеющие обратные зависимости, или так называемые «сломанные» зависимости. Правда, рекомендуется использовать её с осторожностью.

Поскольку при удалении пакетов острожность важнее, чем при установке, команда xbps-remove не обходится и без опции -n, которая позволяет посмотреть последствия деинсталляции какого-либо пакета без вреда для здоровья (системы и своих нервов).

И, наконец, опция -O, или --clean-cache очищает локальный кеш от скачанных пакетов, которые по умолчанию собираются в каталоге /var/cache/xbps. Поскольку, как уже говорилось, Void относится к категории дистрибутивов со «скользящими релизами», и в нём постоянно происходят те или иные обновления, размер этого кеша может быть весьма значительным.

Так, у меня буквально за пару-тройку дней плотного использования этого дистрибутива накапливается до полугигабайта скачанных пакетов. А в силу «скользящего» характера обновлений они очень быстро сменяются обновлёнными версиями, и потому сколько-нибудь длительное время хранить локальный кеш нет ни малейшего резона.

Оглавление

Void Linux. Управление пакетами. Система XBPS: действия с пакетами: 15 комментариев

  1. Опережая паровоз, спрошу — а есть ли у него графический инсталлятор/удалятер?
    Консоль, конечно, хорошо, но я за время пользования Линуксом (с 2001 года) так и не проникся к ней любовью (точнее — терпеть ненавижу), хотя и пользую периодически.

    Ведь для, скажем, установки чего-нибудь (именно чего-н., т. к. еще не знаю чего, но, например, из игрушек ребенку) консоль категорически не годится. Ибо не знаю — что ставить без описания.

  2. Нет, и, видимо, не предвидится. А описание пакета, найденного при поиске в консоли, будет точно тем же самым, что и в любой графическом инсталляторе, ибо берётся из одного и того же источника — больше ему просто неоткуда браться. Это касается _всех_ пакетных менеджеров, не только XBPS.

  3. Проблема часто в том, что не знаешь, что искать. Просит ребятенок игрушку… Какую-то интересную. В консоли же не узнаешь какие есть и что они из себя представляют. Описания же нет. Или лезть в интернет по поводу ВСЕХ наличествующих в репозитори пакетов?

  4. А ведь можно как-то тут получить в файл список пакетов из репозитория?
    Как ТУТ это сделать проще?

  5. И в консольных утилитах систем управления пакетами (повторяю, во _всех_ системах), и в графических «мордах» к ним описание пакета берётся из соответствующего файла (разного в разных системах). А туда оно попадает, как правило, из описания, которое дал своему пакету разработчик — майнтайнеры пакетов себя этим обычно не утруждают. Так что если описание кажется Вам не полным в консольном выводе — оно будет точно таки же и в каком-нибудь Synaptic’е или YaST’е.

    > Как ТУТ это сделать проще?
    Например, так:
    $ xbps -Rs * > all_packages.txt
    Но это только из подключённых репозиториев — а по умолчанию он один.
    Так что остальные — смотреть в подкаталогах http://repo.voidlinux.eu/current/

  6. Про вывод списка спасибо.
    А вот про описание… Да, описание есть, но только если ее (консольку) спросишь про конкретный пакет. А в «мордах» (например, синаптике) можно смотреть/читать подряд или по разделам.

  7. У Вас в описании системы «Dyson как он есть:» есть по этому поводу замечательные слова —
    «…может установить графическую надстройку — Synaptic, и в наглядном виде отыскивать остальные требующиеся ему для практической работы компоненты, в том числе пользовательские приложения.»
    Вот это я и имел ввиду в процессе своего бурчания.

  8. Дело вкуса, привычек, обстоятельств.
    Просто нужно помнить, что описания пакетов будут одни и те же во всех дистрибутивах, системах пакетного менеджмента, консолях и GUI’ях.
    Других просто нет :)
    И в каталогах софта, типа http://zenway.ru/ или http://linsoft.info/ будет то же самое :)
    Разве что кто сподобится написать подробный материал о той или иной софтине…

  9. Вы или не можете, или отказываетесь понимать. Командой в консоли можно посмотреть о пакете, название которого ты знаешь (как минимум). Невозможно почитать/посмотреть о пакете, которого не знаешь. Тем более, если не знаешь, чего вообще хочешь. Т. е. только о чем-то КОНКРЕТНОМ, а не о чем-то, чего я еще и сам не знаю. Невозможно посмотреть — какие игрушки тут есть для моего 9-тилетнего парня.

    PS. Дело не конкретно в игрушках, а в том, что невозможно найти то, чего не знаешь. Просто глянуть — а вдруг я без этого жить не могу? Таким образом я для себя когда-то обнаружил ranger. Сейчас я без него, как без рук.

    PPS. Надо по любому поставить. Он мне уже нравится (я про дистрибутив). А дальше — разберемся.

  10. Жаль, что нет возможности исправить/дополнить.
    Вдогонку.

    PPPS. Спасибо за замечательные статьи. Всегда жду новых.
    Пусть не всегда со всем бываю согласен, но всегда читаю с удовольствием.
    А побурчать, я думаю, нам с Вами в наши 30 и плюс несколько месяцев позволительно.

  11. Как вариант, можно зайти на сайт (какого-либо поп-дистра) и посмотреть там. Например в Арч, на который данный дистр похож, можно в вики найти описание приложений и к тому же большинство руссифицировано…
    Гы-ы-ы, полагаю автору два раза по 30 с хвостиком! ;-D

  12. > Надо по любому поставить. Он мне уже нравится (я про дистрибутив).
    Мне тоже :)
    А по поводу пакетов и их описаний лучший выбор — это таки Linux Mint: доступны все приложения для Ubuntu (включая PPA), есть аналог убунтовского Центра приложений — конечно, без платных коммерческих пакетов, но какой же русский любит покупать софт «на поглядеть», тем более игрушки?
    А ещё в Cinnamon (только в реализации для Linux Mint/LMDE) есть бесценная возможность — удалять установленные пакеты прямо из главного меню. Именно пакеты, а не пункты — http://alv.me/?p=8406#toc144
    Поскольку обычная судьба пакетов, поставленных «на поглядеть» — быть сразу же удалёнными, штука очень востребованная.

  13. [b]aleks[/b], про «несколько» месяцев… Я имел ввиду именно «несколько». Для меня, например, это 313. Для edf;ftvjuj [b]alv[/b] «чуток» побольше.

    Для [b]alv[/b], про Cinnamon я хорошо знаю — сам пользую в LMDE. А эта система будет стоять единственной и заглянуть будет некуда. Т. к. второго ПК или параллельно установленной системы не будет.

  14. Опачки. Оказывается тут теги не работают?

Добавить комментарий