Как удалить pacman linux

Содержание
  1. Как удалить старые пакеты, установленные pacman в Arch Linux?
  2. 4 ответа
  3. Pacman
  4. Содержание
  5. Общее
  6. Использование
  7. Установка и удаление пакетов
  8. Обновление системы
  9. Получение списка установленных пакетов для быстрого восстановления системы
  10. Запросы к базе данных пакетов
  11. Одновременный поиск в репозитории и среди установленных пакетов
  12. Другое использование
  13. Настройка
  14. Основные опции
  15. Репозитории
  16. Практические примеры использования pacman
  17. Установка пакетов
  18. Установка определенных пакетов
  19. Установка группы пакетов
  20. Удаление пакетов
  21. Обновление пакетов
  22. Запросы к базам данных пакетов
  23. Очистка кэша пакетов
  24. Дополнительные команды
  25. Список пакетов
  26. С размером
  27. Последние установленные пакеты
  28. Все пакеты, которые не являются чьей-либо зависимостью
  29. Установленные пакеты, которые не входят в указанную группу или репозиторий
  30. Построение списка файлов, принадлежащих пакету, с указанием размера
  31. Идентификация файлов, не принадлежащих какому-либо пакету
  32. Удаление неиспользуемых пакетов
  33. Осиротевшие пакеты
  34. Явно установленные
  35. Удаление всего, кроме группы base
  36. Получение списка зависимостей нескольких пакетов
  37. Получение списка изменённых файлов резервных копий

Как удалить старые пакеты, установленные pacman в Arch Linux?

Недавно я установил Arch Linux и обнаружил, что я довольно быстро еду в большой памяти. По какой-то причине я уже использовал 17 ГБ всего за 2 недели. У меня нет большого количества программного обеспечения, поэтому я убежден, что все старые пакеты поддерживаются где-то.

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

После того, как я установил свою базовую систему, перед дополнительным программным обеспечением я использовал примерно 2 ГБ или около того. С тех пор я только установил Matlab, Skype, Wine и несколько других небольших программ. Конечно, я также установил недостающие библиотеки и т. Д., Но не почти на 15 ГБ.

Я совершенно не прав или Arch никогда не удаляет старые пакеты при загрузке /обновлении до новых версий?

Если да, как мне удалить эти неиспользуемые пакеты?

Кроме того, когда я удаляю установленные пакеты, я использую pacman -R .

4 ответа

Нет, pacman не удаляет старые пакеты из вашего кеша ( /var/cache/pacman/pkg ), поэтому со временем он может заполнить.

Вы можете использовать два подхода к очистке кеша: грубая сила с помощью pacman -Sc :

-c, —clean
Удалите пакеты, которые больше не установлены из кеша, а также в настоящее время неиспользуемые базы данных синхронизации, чтобы освободить место на диске. Когда pacman загружает пакеты, он сохраняет их в каталоге кеша. Кроме того, базы данных сохраняются для каждой базы данных синхронизации. загружать и не удалять, даже если они удалены из файла конфигурации pacman.conf (5). Используйте один — очиститель удалить только те пакеты, которые больше не установлены; используйте два для удаления всех файлов из кеша. В обоих случаях у вас будет да или нет для удаления пакетов и /или неиспользуемых загруженных баз данных.

Или для более тонкого подхода вы можете использовать одну из утилит, поставляемых с pacman-contrib, paccache :

paccache — это гибкая утилита очистки кэша pacman, которая имеет множество параметры, которые помогают контролировать, сколько и что удаляется из любой директории содержащие tarbox пакетов pacman.

По умолчанию paccache удаляет все, кроме последних трех версий установленного пакета, но вы можете изменить это число с помощью —- +: = 4 =: + —-. Существует также переключатель -k, —keep , чтобы просмотреть ваши изменения. См. -d, —dryrun для всех коммутаторов.

В пакете pacman-contrib имеется ряд утилит, которые помогут в управлении пакетами, стоит взглянуть на них и получить понимание того, как они работают, и сделать работу с Arch намного проще. Полный список можно просмотреть с помощью:

Кэш вашего пакета находится в /var/cache/pacman/pkg/ .

Чтобы сделать код -dryrun и посмотреть, что может произойти запуск этой утилиты при следующем выполнении:

Удаление кэшированных пакетов. 17gbs звучит круто. Убедитесь, что у вас нет доступных журналов. У:

Или даже просто:

Для более общего представления о том, что происходит.

pacman -Scc делает то, что вы просите, но это не рекомендуется. Из Wiki

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

В стороне, когда я удаляю пакеты, я предпочитаю использовать pacman -Rnsc , так как он также удаляет зависимости пакетов, а также пакеты, которые зависят от этого. Как всегда, внимательно прочитайте, какие пакеты удаляются, так как вы легко можете оставить нашу систему в непригодном для использования состоянии.

Я настоятельно рекомендую использовать paccache вместо pacman -Sc . Существует даже очень эффективный флаг для выборочного удаления версий удаленных пакетов -u . Флаги paccache Я рекомендую (как часть paccache v5.0.2):

  • -d , —dryrun : выполнить сухой прогон , только поиск пакетов кандидатов
  • -r , —remove : удалить пакеты кандидатов
  • -u , —uninstalled : целевые только удаленные пакеты
  • -k , —keep : сохранить «num» каждого пакета в кеше (по умолчанию: 3)

Источник

Pacman

Содержание

Общее

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

Читайте также:  Clear flash drive linux

Pacman может держать систему в новейшем состоянии, синхронизируя пакеты с главным сервером, тем самым позволяя сознательному администратору поддерживать систему. Клиент-серверная модель позволяет скачивать/устанавливать пакеты одной командой со всеми требуемыми зависимостями (похоже на apt-get от Debian).

Pacman был написан на языке C и поэтому он быстрый, легкий. Он использует .tar.gz формат пакетов, эти пакеты извлекаются быстрее.

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

Pacman является универсальным менеджером пакетов, способным скачивать, устанавливать и обновлять пакеты и из репозитория, и собственные локальные, удалять и искать их. Вам только необходимо знать, какой ключ используется функцией для желаемых действий. Вот несколько наиболее часто используемых:

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

Перед установкой и обновлением пакетов полезно синхронизировать базу данных локально установленных пакетов с удалёнными репозиториями

Для того чтобы установить или обновить один пакет или группу пакетов (включая зависимости), используйте следующую команду:

Иногда пакет имеет несколько версий в разных репозиториях (например в extra и testing). Вы можете указать, какой именно вы хотите установить:

Вы можете совмещать параметры, например, эта команда синхронизирует базы данных и установит пакет:

Удалить пакет (оставляя все зависимости в системе):

Удалить пакет со всеми зависимостями, не используемыми другими установленными пакетами:

По умолчанию Pacman создает резервные копии конфигурационных файлов удаляемых приложений с помощью добавления к ним расширения *. pacsave. Если вы хотите удалить эти файлы при удалении соответствующего пакета (подсказка: это операция называется purging в Debian-системах), вы можете использовать:

Конечно, это может быть дополнено -s, чтобы также удалить ненужные теперь зависимости. Таким образом, команда полностью удалит пакет, его конфигурации и все зависимости, которые больше не нужны:

Обновление системы

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

NB: вы можете синхронизировать базы данных репозиториев И обновить все установленные пакеты одной командой:

Хорошо выполнять эту команду каждые несколько дней.

Получение списка установленных пакетов для быстрого восстановления системы

Если ваша система упала и ее сложно восстановить то неплохо бы иметь список пакетов которые были установлены в ней.

Сохранить в файл pkglist список пакетов установленных в системе:

Сохраните этот файл на флешке или еще где-нибудь.

Если вдруг с вашей системой случится что-либо неприятное то установленые пакеты легко можно восстановить:

Запросы к базе данных пакетов

  • Поиск пакетов в репозиториях, вы можете указать только часть названия:
  • Поиск среди установленных пакетов:
  • Вывод информации о пакете:
  • Вывод списка файлов пакета:
  • Какой пакет является владельцем файла?
  • Перечислите все пакеты, больше не требуемые как зависимости(сироты):
  • Удалить всех сирот: (Проверьте сначала вывод команды pacman -Qdt.)

Одновременный поиск в репозитории и среди установленных пакетов

Вы можете использовать следующий bash скрипт в качестве эквивалента для одновременного вызова pacman -Ss foo и pacman -Qs foo, для того чтобы узнать, какие из пакетов в выводе установлены на вашей системе. Последние будут помечены звёздочкой.

Сохраните этот скрипт в каталоге, включенном в переменную PATH (например,

/bin/), и назовите его pacsearch. Сделайте его исполняемым с помощью

Теперь если вы напишете, например:

вывод может выглядеть так:

В этом случае вы узнаете, что ни один из вышеперечисленных пакетов (кроме самого qt) на вашей системе не установлен.

NB1: был добавлен запрос на flyspray с предложением интегрировать вышеуказанную функциональность в сам pacman, чтобы ‘грязные’ хитрости bash стали стать ненужными с последующими версиями pacman.

NB2: вы можете изменить этот bash скрипт с помощью этого wiki, для того чтобы установленные пакеты были выделены различными цветами в выводе.

Другое использование

  • Скачать пакет, но не устанавливать его:
  • Установить локальный пакет (не из репозитория):

Вы можете ввести ссылку:

  • Очистка кэша pacman`а (/var/cache/pacman/pkg):
  • Для того, чтобы переустановить все пакеты в вашей системе (которые доступны в репозитории):

Для более детальной информацией о возможных ключах обратитесь к pacman —help или man pacman.

Настройка

Настройки pacman`a находятся в /etc/pacman.conf . Важными секциями являются:

Основные опции

Основные опции находятся в секции [options]. Есть одна полезная опция IgnorePkg. Например, если вы изменяли или накладывали патч на пакет, добавление его в IgnorePkg укажет pacman’у не обновлять его при выходе следующей версии пакета. Но pacman всё же предупредит вас о том, что доступна более свежая версия, так что в итоге вы можете обновить ваш изменённый пакет. Опция также полезна для БОЛЬШИХ пакетов (например, openoffice-base), если вы хотите избежать скачивания и обновления всего пакета каждый раз, когда в репозитории появляется маленькое изменение. Поскольку pacman всё равно предупредит вас о последней версии, вы можете обновить пакет вручную.

Репозитории

В этой секции вы указываете используемые репозитории. Они могут быть указаны напрямую или как файл, содержащий список серверов. Последнее удобно для официальных репозиториев, имеющих множество зеркал.

За более подробной информацией обратитесь к man pacman.

Источник

Практические примеры использования pacman

Установка пакетов

Установка определенных пакетов

Для установки одного пакета или списка пакетов (включая зависимости) используйте следующую команду:

Для установки списка пакетов при помощи поиска по регулярному выражению (смотрите раздел Операции и синтаксис Bash и эту ветку форума):

Если пакет имеет несколько версий в разных репозиториях (например, в extra и testing), можно указать, откуда именно следует установить пакет:

Читайте также:  Драйвера для xerox phaser 3260 для windows 10

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

Некоторые пакеты объединены в группы пакетов, и они могут быть установлены одновременно. Например, при выполнении команды:

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

Некоторые группы содержат большое количество пакетов, и среди них могут быть всего несколько нужных или ненужных вам. Вместо того, чтобы вводить все необходимые вам номера, иногда удобнее выбрать или исключить отдельные числа или диапазоны чисел при помощи приведенного ниже синтаксиса:

— будут выбраны все пакеты в диапазоне с 1 по 10, а также 15;

— будут выбраны все пакеты, кроме входящих в диапазон с 5 по 8, а также 2.

Чтобы увидеть список пакетов, принадлежащих к группе gnome, выполните:

Перечень доступных групп пакетов можно изучить, посетив https://www.archlinux.org/groups/ .

Обратите внимание: Если пакет в списке уже установлен, он будет переустановлен даже если была установлена последняя версия. Это поведение можно изменить опцией —needed.

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

Для удаления пакета без удаления установленных зависимостей:

Для удаления пакета со всеми зависимостями, не используемыми другими установленными пакетами:

Для удаления пакета, его зависимостей и всех пакетов, зависящих от целевого пакета:

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

Для удаления пакета, который требуется другому пакету, без удаления зависимого пакета:

pacman создает резервные копии конфигурационных файлов удаляемых приложений и добавляет к ним расширение .pacsave. Если вы хотите удалить и эти файлы, используйте ключ -n:

Обратите внимание: pacman не удаляет конфигурационных файлов, созданных самими приложениями (например, скрытые файлы (имя которых начинается с точки) в вашем домашнем каталоге).

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

pacman может обновить все пакеты системы одной командой. Это может занять длительное время в зависимости от того, насколько свежие пакеты установлены в вашей системе. Следующая команда выполнит одновременно синхронизацию локальной базы данных репозиториев и обновление вашей системы (не будут обновлены ‘локальные’ пакеты, отсутствующие в настроенных репозиториях):

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

Запросы к базам данных пакетов

pacman с помощью флага -Q может искать пакеты в локальной базе данных:

а с помощью флага -S — в базе данных, синхронизированной с репозиториями:

pacman умеет искать пакеты в базе данных как по названиям, так и по описаниям:

Для поиска среди установленных пакетов:

Для отображения подробной информации об указанном пакете:

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

Использование сразу двух флагов -i позволит просмотреть список резервных копий файлов и список измененных файлов:

Для получения списка файлов установленного пакета:

Для неустановленных пакетов используйте pkgfile.

Чтобы проверить наличие файлов, установленных пакетом:

Использование сразу двух флагов k выполнит более тщательную проверку.

Чтобы узнать, какому пакету принадлежит нужный файл:

Для получения списка пакетов, которые больше не требуются как зависимости (пакеты, которые могут быть безопасно удалены или «осиротевшие» пакеты):

Для отображения пакетов, которые были установлены явно и от которых не зависят другие пакеты:

Для отображения зависимостей в виде дерева:

Для получения списка пакетов, которые зависят от конкретного установленного пакета, можно использовать утилиту whoneeds из состава пакета pkgtools:

или pactree c флагом -r:

Очистка кэша пакетов

pacman сохраняет скачиваемые пакеты в каталоге (/var/cache/pacman/pkg/) и не удаляет их файлы автоматически, поэтому следует время от времени самостоятельно чистить этот каталог, чтобы предотвратить его разрастание.

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

Делайте это только в том случае, если у вас есть определенная уверенность, что установленные пакеты стабильны и вам не потребуется откат версии, поскольку данная команда удалит все старые версии из каталога кэша, оставив только те, которые установлены в системе на данный момент. Сохранение более старых версий пакетов может пригодиться в тех случаях, когда обновление приводит к неправильной работе системы или отдельных программ. Если не следовать этому совету, может возникнуть ситуация, в которой пользователь будет вынужден использовать альтернативный источник устаревших пакетов, такой как Arch Rollback Machine.

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

В связи с приведенными выше предостережениями рекомендуется использовать специальный скрипт для более гибкой установки того, какие и как много пакетов будут удалены из кэша:

Команда paccache, предоставляемая пакетом pacman, по умолчанию удаляет из кэша все версии каждого пакета, кроме трех недавно использовавшихся:

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

Читайте также:  Не работает трея windows 10

Для просмотра всех опций смотрите paccache -h.

Альтернативный вариант — использование пакета pkgcachecleanAUR из AUR:

Дополнительные команды

Обновление системы и установка списка пакетов (за одну операцию):

Скачать пакет, но не устанавливать его:

Установить локальный пакет не из репозитория (например, для пакетов из AUR:

Совет: Чтобы сохранить копию локального устанавливаемого пакета в кэше pacman’а, используйте:

Скачать и установить пакет из удаленного источника (но и не из репозиториев, перечисленных в конфигурационном файле pacman’a):

Список пакетов

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

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

Перечислить все иностранные пакеты (как правило, ручную загруженные и установленные):

Список всех родных пакетов (установленные из синхронизируемой базы (баз) данных):

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

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

С размером

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

  • Установите expac и запустите
  • Запустите pacgraph с опцией -c.

Для списка размера загрузки нескольких пакетов (чтобы вывести все пакеты, не указывайте название каких-либо пакетов):

Для получения списка явно установленных пакетов, которых нет ни в репозитории base, ни в base-devel, с размером и описанием:

Последние установленные пакеты

Установите expac и запустите

Все пакеты, которые не являются чьей-либо зависимостью

Если вы хотите сгенерировать список всех установленных пакетов, которые не являются чьей-либо зависимостью, вы можете использовать следующий скрипт. Это очень полезно, если вы пытаетесь освободить место на жёстком диске и установили множество пакетов, которые вы можете не помнить. Вы можете просмотреть вывод для поиска пакетов, которые вам больше не нужны.

Примечание: Этот скрипт покажет все пакеты, которые не являются чьей-либо зависимостью, включая явно установленные. Для получения списка пакетов, которые были установлены как зависимости, но больше не требуются какими-либо установленными пакетами, смотрите Осиротевшие пакеты.

Для списка с описаниями пакетов:

Установленные пакеты, которые не входят в указанную группу или репозиторий

Следующая команда составит список установленных пакетов, которые не входят в base или base-devel, и, таким образом, принадлежат другим репозиториям или могут быть установлены пользователем вручную:

Список всех пакетов, которые не в указанном репозитории (замените repo_name на имя репозитория):

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

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

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

Идентификация файлов, не принадлежащих какому-либо пакету

Если ваша система имеет приблудные файлы, которые не принадлежат какому-либо пакету (обычная ситуация, если вы не используете менеджер пакетов для установки программного обеспечения), вам может захотеться найти такие файлы, чтобы удалить их. Обычно процесс осуществления этого следующий:

  1. Создайте отсортированный список файлов, владение на которые вы хотите проверить:
  1. Создайте отсортированный список файлов, прослеживаемых pacman’ом (и удалите слеши в конце директорий):
  1. Найдите строки, которые есть в первом списке, но отсутствуют во втором:

На практике этот процесс является сложным, поскольку многие важные файлы не являются частью какого-либо пакета (к примеру, сгенерированные в процессе работы, пользовательские конфиги) и т.п. – всё это будет включено в конечный вывод, что сделает сложным процесс отбора файлов для удаления.

Скрипт lostfiles делает выполняет схожие шаги, но включает обширный чёрный список для удаления распространённых ложных срабатываний из вывода.

Удаление неиспользуемых пакетов

Осиротевшие пакеты

Для рекурсивного удаления сироток и их конфигурационных файлов:

Если осиротевшие пакеты не были найдены, pacman завершит работу с ошибкой: цели не определены. Это ожидаемо, поскольку pacman -Rns не получил аргументов.

Примечание: Начиная с pacman версии 4.2.0 показываются только истинные сиротки. Чтобы pacman также показал пакеты, которые нужны другим пакетам только опционально, дважды укажите флаг -t/—unrequired:

Используйте это осторожно, поскольку при этом не берётся в расчёт, является ли пакет опциональной зависимостью, а, следовательно, это приводит к риску удалить пакет, который не является реальной сироткой.

Явно установленные

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

Для показа списка явно установленных пакетов, которые доступны в официальных репозиториях:

Для показа списка явно установленных пакетов, которые не доступны в официальных репозиториях:

Удаление всего, кроме группы base

Если вдруг понадобилось удалить все пакеты, кроме группы base, попробуйте следующую строку:

Получение списка зависимостей нескольких пакетов

Зависимости сортируются в алфавитном порядке, дубли удаляются. Также вы можете использовать pacman –Qi для небольшого улучшения времени ответа. Но вы не сможете запрашивать так много пакетов. Ненайденные пакеты просто опускаются (поскольку 2>/dev/null).

В качестве альтернативы вы можете использовать expac:

Получение списка изменённых файлов резервных копий

Если вы хотите сделать резервную копию конфигурационных файлов вашей системы, вы можете скопировать все файлы в /etc/, но обычно нам интересны только файлы, в которых были сделаны изменения. Модифицированные резервные файлы могут быть просмотрены следующей командой:

Запуск этой команды с разрешениями рута станет гарантией того, что файлы, читаемые только рутом (к примеру /etc/sudoers), включены в вывод.

Источник

Оцените статью