Arch linux удалить ненужные зависимости

Обновлено: 03.07.2024

Управление пакетами в Arch Linux с помощью ABS и pacman

Сегодня мы поговорим об основах управления пакетами в Arch Linux. В общем и целом, идея напоминает ports и packages из мира FreeBSD. То есть, можно как компилировать софт из исходников, так и ставить бинарные пакеты. Но есть ряд существенных отличий. Итак, давайте же во всем разберемся!

Использование pacman

Получение общей справки или справки по конкретным командам:

Установка группы пакетов:

Список пакетов, входящих в группу:

Список всех доступных групп:

Обновить базу данных пакетов:

Обновить установленные пакеты:

Список пакетов, для которых есть обновления:

Список установленных пакетов:

Поиск установленного пакета по регулярному выражению:

Список файлов, принадлежащих пакету:

Определить, к какому пакету относится заданный файл:

Удаление пакетов, установленных, как зависимости, и ставших ненужными (autoremove):

Некоторые пакетные менеджеры умеют «замораживать» пакеты, то есть, не обновлять их при наличии обновлений (hold в Debian и деривативах, lock во FreeBSD). Для достижения того же эффекта в Arch Linux в файле /etc/pacman.conf в секцию [options] нужно дописать что-то вроде:

Заканчивая рассказ про pacman, хочется отметить, что список серверов с пакетами находится в /etc/pacman.d/mirrorlist, а кэш загруженных пакетов следует искать в /var/cache/pacman/pkg/. Для очистки кэша используйте команду:

Логи пишутся в /var/log/pacman.log. В них вы всегда найдете, что, на что, и когда было обновлено.

Пример использования AUR

Для примера рассмотрим установку пакета ttf-ms-fonts, который содержит шрифты от Microsoft, и по более-менее понятным причинам доступен только в AUR:

В репозитории вы найдете файл PKGBUILD (используется синтаксис bash), и плюс к нему, возможно, какие-то патчи и подобные вещи. Файл PKGBUILD содержит информацию о том, откуда качать исходники пакета и какие контрольные суммы у этих исходников, с какими флагами их собирать, и так далее. Таким образом, немного подправив PKGBUILD, можно собрать пакет со своими флагами. Хорошей практикой считается держать репозитории AUR-пакетов где-нибудь в

/packages, время от времени делая им git pull и обновляясь на новую версию.

Будучи в репозитории говорим:

Здесь ключ -s означает необходимость установить недостающие зависимости с помощью pacman. Настройки makepkg хранятся в файле /etc/makepkg.conf. Это местный аналог /etc/make.conf из мира FreeBSD. В нем можно указать CFLAGS, CXXFLAGS и подобные вещи. Очень рекомендуется указать в параметре PACKAGER свое имя и email. Это позволит отличать пакеты, собранные вами, от всех остальных.

Наконец, ставим собранный пакет:

Дополнение: На случай, если пакет из AUR зависит от других пакетов из AUR, предусмотрено ряд утилит, благодаря которым не придется ставить все эти пакеты вручную, как описано выше. Методом тыка я решил попробовать yaourt и оказался им вполне доволен. Утилита работает в точности, как pacman, только дополнительно позволяет устанавливать пакеты из AUR.

Единственная неприятная особенность этой утилиты заключается в том, что при сборке пакетов из AUR она задает кучу разных вопросов в стиле:

Из интересных фишек yaourt стоит упомянуть, что утилита выводит в консоль обсуждения пакетов на AUR. Это очень удобно, например, в случае, если пакет вдруг не собирается, так как в комментариях нередко можно найти воркэраунд.

Собираем пакеты из исходников с помощью ABS

Под аббревиатурой ABS (Arch Build System) понимается сразу несколько довольно разных вещей. Это (1) сам механизм сборки пакетов в Arch Linux, с файлами PKGBUILD, утилитой makepkg и прочим, как было описано выше. ABS называется и (2) аналог дерева портов из мира FreeBSD, использующий (1), и о котором пойдет речь в этом параграфе. Также (3) ABS может означать утилиту abs, предназначенную для работы с (2). Наконец, (4) поскольку официальные пакеты собираются из ABS в смысле (2), аббревиатуру ABS часто используют в смысле «противоположность AUR». Несмотря на всю эту неразбериху, значение «ABS» обычно легко понять по контексту.

Итак, для работы с ABS в смысле (2) первым делом ставим утилиту abs:

С помощью этой утилиты скачиваем ABS:

Все исходники сваливаются в /var/abs. У меня они заняли около 82 Мб. Далее работа с ABS осуществляется точно так же, как с AUR. Интересно, что makepkg не позволяет запускать себя из под рута, в связи с чем приходится копировать исходники пакетов из /var/abs к себе в

/packages не только измененный PKGBUILD, но и патч к нему.

В файле /etc/abs.conf можно указать, что утилита abs должна тянуть, а что нет. Например, можно не тянуть каталог core и дополнительно тянуть testing.

Обновление ABS производится так:

Чтобы при следующем обновлении бинарных пакетов pacman не затер пакеты, собранное из исходников, в PKGBUILD следует дописать:

Помимо прочего, при помощи ABS можно собрать кастомное ядро Linux. Сорцы соответствующего пакета вы найдете в /var/abs/core/linux.

Заключение

Увы, невозможно рассказать все в рамках одного поста. Например, мы не рассмотрели создание собственных пакетов и их заливку на AUR или такую интересную возможность pacman, как хуки. Надеюсь, что мне удалось дать вам 10% информации, которая помогает решить 90% всех проблем. Остальные 90% информации ищите в официальной вики и манах. Повторюсь, у Arch Linux они действительно классные.

Буду рад вашим вопросам и дополнениям. Можно подумать, я когда-то не был им рад :)

Хотите установить пакеты в Arch Linux, но не знаете как? Многие люди сталкиваются с этой проблемой при первом переходе с дистрибутивов на основе Debian на Arch. Однако вы можете легко управлять пакетами в вашей системе на основе Arch с помощью менеджеров пакетов.

Менеджеры пакетов в Arch Linux

Хотя Arch Linux поставляется с Pacman в качестве менеджера пакетов по умолчанию, вы можете установить другие менеджеры пакетов, такие как Yay. В отличие от Pacman, эти менеджеры пакетов позволяют добавлять новые пакеты из официального репозитория Arch и AUR (пользовательского репозитория Arch).

1. Пакман

Как упоминалось выше, каждая система Arch поставляется с Pacman в качестве менеджера пакетов по умолчанию. Наиболее примечательной особенностью Pacman является то, что он регулярно синхронизирует пакеты вашей системы с главным сервером и, в свою очередь, поддерживает вашу систему в актуальном состоянии.

2. Ура

Поскольку разработчики Yaourt и Aurman не будут выпускать никаких обновлений после прекращения поддержки, пользователи Arch начали использовать Yay для добавления пакетов из AUR. Основная цель Yay заключалась в том, чтобы минимизировать ввод данных пользователем и предоставить интерфейс, подобный Pacman.

Вы не сможете установить Yay с помощью Pacman, поскольку он не поддерживает добавление пакетов напрямую из пользовательского репозитория Arch. Следовательно, вам придется установить менеджер пакетов Yay вручную, используя его репозиторий Git. Вот как установить его в вашей системе.

Шаг 1. Для клонирования репозитория yay вам потребуется git.

Шаг 2: Клонируйте репозиторий в локальное хранилище.

Шаг 3. Измените права доступа к папке.

Шаг 4: Перейдите в каталог, в который вы клонировали репозиторий.

Шаг 5: Используйте команду makepkg для сборки пакета. Убедитесь, что вы не выполняете следующую команду от имени пользователя root, иначе это вызовет ошибку.

Обновление и обновление пакетов

Если вы только что установили Arch Linux, то, прежде чем вы сможете добавлять или удалять пакеты, вам придется синхронизировать свою систему с главными серверами, обновив локальный список пакетов.

Затем вы можете легко обновить все свои пакеты до последней версии, загрузив файлы с официальных серверов.

Использование Pacman

Чтобы обновить список пакетов с помощью Pacman, используйте флаг -Sy с командой.

После синхронизации списка пакетов вашей системы с главными серверами вам необходимо обновить пакеты. Используйте флаг -Syu, чтобы сделать то же самое. Эта команда может занять некоторое время в зависимости от списка пакетов и вашего сетевого подключения.

Вы можете сэкономить на вводе обеих этих команд, объединив их с помощью флага -Syyu . Pacman автоматически начнет загрузку последних пакетов после обновления списка пакетов.

Используя Yay

Менеджер пакетов Yay позволяет вам эффективно обновлять и обновлять ваши пакеты с помощью вашего терминала. Для этого просто используйте флаг -Syu с командой yay .

Добавление пакетов

Добавить пакеты легко, если вы знаете, какие команды выполнять. Все, что вам нужно сделать, это ввести команды диспетчера пакетов в терминал.

Установить пакеты с помощью Pacman

Pacman использует расширение файла TAR для упаковки приложений. Он эффективно работает с системной архитектурой Arch Linux. Чтобы добавить пакет, вы должны использовать флаг -S с командой по умолчанию следующим образом.

Чтобы установить несколько пакетов одновременно, введите имена всех пакетов, разделенные пробелом.

Вы также можете получить информацию о пакетах после их установки. В выходных данных содержится подробная информация об имени, версии, архитектуре и лицензии пакета. Для этого замените флаг -S на -Qi в команде pacman по умолчанию.

Устанавливать пакеты с Yay

Синтаксис команды установки Yay очень похож на синтаксис Pacman. Чтобы установить пакет с помощью диспетчера пакетов Yay, просто используйте флаг -S с командой по умолчанию.

Удаление пакетов в Arch

Arch Linux дает вам возможность удалять пакеты, если они вам не нужны, и это одна из многих причин, по которым вам следует установить Arch Linux . Вы можете удалить практически любой пакет из своей системы, если, конечно, у вас есть разрешение. Давайте посмотрим, как можно удалить пакет в Arch Linux.

Удалить пакеты с помощью Pacman

Удалить пакет тоже легко. Все, что вам нужно сделать, это использовать -R вместо флага -S в команде pacman по умолчанию.

Удалите пакеты с помощью Yay

Чтобы удалить пакеты с помощью Yay, добавьте флаг -R к команде yay по умолчанию. Вы также можете использовать флаг -Rns, чтобы удалить все ненужные зависимости из вашей системы.

Если вы хотите удалить пакеты, которые не нужны вашей системе, используйте флаг -Yc с командой.

Управление пакетами в Arch Linux

Существует несколько способов добавления и удаления пакетов в дистрибутиве Linux на основе Arch. Вы можете использовать менеджеры пакетов, такие как Pacman, Yaourt и Yay. В то время как некоторые менеджеры пакетов позволяют загружать пакеты из пользовательского репозитория Arch, другие, такие как Pacman, не поддерживают AUR.

Если вы не являетесь поклонником менеджеров пакетов, вы всегда можете загрузить нужные пакеты вручную. В Интернете доступно несколько веб-сайтов, которые предоставляют пользователям Linux пакеты TAR, RPM и DEB.

В течение прошлого года я начал экспериментировать с linux, чтобы изучить технические основы, а также тот факт, что я полностью поддерживаю идею открытого программного обеспечения. В любом случае, два дистрибутива, с которыми я потратил больше всего времени, - это Arch Linux и Ubuntu. Я понимаю, что они очень разные, но мой вопрос сегодня связан с системой управления пакетами.

В Arch Linux, если вы хотите удалить пакет и все его зависимости, вы можете запустить команду pacman -Rs [packagename] , Чтобы увидеть, что пакеты установлены как зависимости и больше не нужны ни одной другой программе, которую вы можете запустить pacman -Qdt ,

Теперь в Ubuntu или в любой другой системе пакетов на основе APT вы удаляете пакеты с чем-то вроде apt-get remove [packagename] с последующим apt-get autoremove убрать зависимости, которые больше не нужны.

Проблема, которая у меня, кажется, заключается в том, что в то время как в Arch Linux работает что-то вроде pacman -Rs gnome удалит GNOME и все установленные с ним зависимости и pacman -Qdt позволит мне убедиться, что ничего не осталось, но в Ubuntu apt-get remove gnome удалит только метапакет, а затем запустит apt-get autoremove ничего не возвращает

Мне было интересно, как я мог достичь pacman -Rs удаление типа в системе пакетов на основе APT.

1 ответ

Причина, по которой вы не удаляете то, что вы ожидаете, заключается в том, что gnome metapackage не единственный, в зависимости от всех рабочих столов gnome (если вы используете Ubuntu GNOME Remix), но ubuntu-desktop или его вариант ubuntu-gnome-desktop , То, на что вы смотрите - это то, что предлагает aptitude и продвинутые менеджеры пакетов. apt-get это просто, это требует, чтобы большинство вещей было сделано вручную. Вы не можете ожидать, что он будет выполнять все функции pacman, особенно в Ubuntu, где есть метапакеты, созданные только для установки разновидностей.

Что вам нужно это:

Это ищет пакеты, которые установлены из раздела gnome. Вы можете захотеть пакеты, которые являются зависимостями и установлены для какого-то установленного пакета:

Arch Linux ‒ это один из немногих дистрибутивов Linux, использующих модель роллинг-релизов. Это означает, что в нем доступны самые последние версии пакетов. Это одновременно является его как преимуществом так и недостатком. Пересесть на него меня заставила необходимость: мое компьютерное железо (процессор ryzen 5 2600 и видеоадаптер rx 590) оказались не совместимы с версией Linux Kernel младше 4.20.

image

На самом деле все не так плохо, но неприятные инциденты имеют место хотя и очень редко.

Качаем образ и записываем его с помощью команды:

Где sdX – имя нашего USB устройства. Перегружаемся после удачного завершения операции.

В Windows для создания загрузочной флешки можно использовать Rufus. При этом образ лучше записывать в dd режиме.

При загрузке системы нажимаем F2 или Del (зависит от производителя материнской платы). Во вкладке BIOS в приоритете загрузки делаем первым наше USB-устройство. Нажимаем F10 и сохраняем настройки.

При подключении от кабеля ничего настраивать не надо. Настройка wifi требует ввода пары команд:

Следует отметить, что не все usb wifi адаптеры гараниторованно поддерживаются. Например, у меня не захотел работать dexp wfa 301, а вот с tp-link все ок.

Для начала посмотрим все доступные устройства:

Создадим новый раздел:

В меню fdisk вводим n для создания нового раздела, порядковый номер раздела, потом начальное и конечные смещения. При задании конечного смещения можно отрицательное значение, например, -10G , так мы оставим свободными 10 Гб в конце диска. Для записи изменений на жесткий диск вводим w и выходим - q .

Теперь нужно разметить раздел по LVM. Касательно LVM: единственное удобство в нем для меня – это возможность динамически менять размер разделов. Самая частая проблема, которая у меня была раньше – это то, что я не угадывал размер для корня. Когда в нем кончалось место, я с установочной флешки через gparted пытался отщепнуть от виндового раздела кусок (а у меня разделы всегда шли так: recovery, efi, reserved, windows, root, home), из этого куска создавал временный раздел, копировал в него файлы с хомяка, удалял хомяка, изменял размер корневого, опять создавал хомяка и из временного раздела копировал в него файлы, потом удалял временный раздел, расширял виндовый, правил /etc/fstab … А с LVM я могу просто выполнить пару команд: ужать хомяка, расширить корневой, причем, на лету. Но эксперты могут возразить: «Хомяк на отдельном разделе не нужен!» — Да, если хочешь потерять все данные при переустановке.

Читайте также: