Обновление пакетов линукс минт
APT (Advanced Package Tool) — Пакетный менеджер и одноименная утилита командной строки для взаимодействия с пакетами программного обеспечения в DEB-based дистрибутивах (Linux Mint, Ubuntu, Debian, etc). Его можно использовать его для поиска и установки новых пакетов, обновления или удаления пакетов и т. д.
На данный моменту тилита apt пришла на смену прежнему варианту, носившему название apt-get . Основные различия между ними — чуть более лаконичный синтаксис комманд в apt, несколько новых параметров вроде листинга пакетов по условию и отображение прогрессбара во время выполнения операций над пакетами. ну и т.к. apt-get уже довольно давно не актуален в нашем дистрибутиве (хотя его и можно использовать как раньше) — рассмотрим именно apt
Обновление базы данных пакетов с помощью apt
Фактически apt работает с базой данных формируемой из доступных в подключенных репозиториях пакетов. Если списки пакетов не обновляются, система не будет знать, имеются ли новые версии пакетов для обновления.
обновление спиков пакетов можно выполнить используя команду apt-update , т.к. эта операция затрагивает важные околосистемные файлы пакетного менеджера — будет запрошен пароль для повышения привелегий. Затем будет отражена информация о списках пакетов, получаемых с разных серверов указанных в «Источниках Приложений»
- Сущ (англ Hit ) — означает, что указанный файл уже существует в локальной базе пакетов и не изменялся с последнего обновления списков ПО
- Игн (англ Ign ) — Запрошенный файл не существует на сервере, или же его не получилось скачать, тем не менее это никак не повлияет на ход обновления, поэтому не считается ошибкой
- Пол (англ get ) — обозначает что файл успешно скачан и будет учтен при построении локального списка пакетов для обновления
Обновление установленных пакетов
После обновления базы данных пакетов можно приступить к обновлению самих программ. Сделать это можно одной командой — apt upgrade . Перед обновлением будет показано количество и названия пакетов которые подлежат обновлению
Также для обновления служит команда apt full-upgrade , которая делает почти то же самое, за исключением того, что предложит также удалить установленные программы, если среди них есть конфликты с обновлениями пакетов.
Ну и стоит учесть, что в Linux MInt обычно нет необходимости в подобном обновлении средвами apt, т.к. внашем дистрибутиве предусмотрен отличный Менеджер Обновлений ( mintupdate ), который распределяет пакеты между пятью уровнями, по степени их влияния на систему, что обеспечивает долгую и счастливую жизнь вашей ОС Плюс в менеджере обновлений применется распараллеливание загрузки в несколько потоков, что может значительно ускорить загрузку обновлений из интернета. Для тех же, кто просто хочет использовать терминал для обновления системы — есть и консольная версия утилиты, mintupdate-cli (в общем, apt upgrade идет нафиг но в рамках этой темы в любом случае пусть будет описан)
Установка пакетов
Для установки пакета — используем команду apt install имяпакета
Перед установкой будут отображены зависимые и рекомендуемые к установке пакеты, их объем и запрос подтверждения на выполнение операции
Если запрошенный пакет уже установлен, но имеются доступные обновления — его будет предложено обновить. Если обовлений нет — apt скажет, что выполнять нечего.
В случае если имя пакета полностью не известно — двойное нажатие клавиши Tab выведет все варианты которые совпадают с уже введенной частью названия (на самом деле автодополнение работает не только с install , но и в других операциях):
Можно установить сразу несколько пакетов путем простого перечисления их через пробел:
apt install первый_пакет второй_пакет
В подключенных репозиториях может содержаться несколько версий одного и того же пакета, по умолчанию выбирается самый новый пакет из репозитория с наивысшим приоритетом (Pin-Priority). Обойти это поведение можно указав версию пакета через знак равенства после его имени
apt install имяпакета=1.0.2
Ключ —no-upgrade используется если нам нужно только установить пакет которого нет в системе, и ничего не делать если такой пакет уже установлен, независимо от доступных для него обновлений
Ключ —only upgrade используется для обратного поведения — в случае если пакет установлен для него будут проверены и установлены обновления, а если пакет не установлен то не делать ничего.
У многих программ кроме прямых зависимостей,необходимых для работы программы зачастую имеются еще рекомендованные ( recommends ) и предлагаемые ( suggests ) к установке пакеты, например отдельно распространяемые наборы плагинов, которые расширят функционал, документацию, локализацию и т.д.
Чтоб установить пакет вместе с его рекомендованными пакетами — добавлем ключ —install-recommends
Соответсвенно для предлагаемых пакетов — используем —install-suggests
Оба ключа можно использовать в одной комманде:
Удаление пакетов
Для удаления пакетов служат команды remove и purge
apt remove имяпакета — удалит пакет из системы, но оставит его конфигурации в системных директориях. И в случае повтороной установки пакета — он будет использовать эти файлы в своей работе.
apt purge имяпакета — удалит все следы программы в системных диретокриях, может быть полезно когда что-то явно сломалось в конфигурациях и нужно установить программу начисто
Удаление также возможно используя * , для удаления всех пакетов в которых есть вхождение запрошенной подстроки.
Под спойлер оно спрятанао неспроста, т.к. немало пользователей уже угробили свои системы когда используя этот метод улетело много пакетов по зависимостям. Для примера печально известный apt purge libreoffice*
Тут можно увидеть как вместе в офисным пакетом удалятся mint-artwork-gnome , mint-meta-cinnamon , mint-themes . После перезагрузки система уже не порадует
Так чтоб делать так не стоит. Ну или очень пристально следить за тем что удалится в результате
После удаления одних пакетов — другие, которые были подтянуты как зависимости или рекомендации могут стать неактуальными, т.к. больше никто их не использует. Для очистки системы от подобных неиспользуемых пакетов — apt autoremove . apt знает связи между пакетами и предложит список тех из них, которые можно безболезненно удалить
Поиск пакетов и информации о них
Для поиска пакетов по части их имени или описания можно использовать apt search чтонибудь
В результате будет выведен список пакетов сколь-либо подходящих под заданный паттерн
Чтоб просмотреть доступные версии и источник пакета — apt policy имяпакета
Будут выведены версия которая установлена на данный момент (если установлена), предлагаемая к установке актуальная версия, список репозиториев в которых доступен данный пакет
Наиболее полную информацию о пакете можно получить с помощью команды apt-show имяпакета . Тут будет более чем исчерпывающая информация обо всем что может потребоваться.
В случае если доступно несколь версий — добавить ключ -a , чтоб вывести поочередно о каждом.
apt depends имяпакета — Просмотр зависимостей и конфликтов — т.е. тех дополнительных пакетов, которые необходимы для работы программы и будут установлены вместе с ним. И заодно тех, которые вместе с выбранным пакетом одновременно сосуществать не могут, и должны быть удалены перед установкой запрошенного.
Схожая команда apt rdepends имяпакета — используется для вывода списка обратных зависимостей, т.е это будут пакеты в которых запрошенный указан как прямая зависимость, и при их установке будет произведена и его установка
Обновление пакетов линукс минт
Хотел бы поделиться не большим «джентльменским набором» основных необходимых команд. Буду очень рад, если Вы будете предлагать еще и дополнять список.
КОМАНДЫ:
Обновление базы данных пакетов:
Самый быстрый и удобный способ «обновить» вашу систему использовать команду:
sudo apt update && sudo apt upgrade -y
Команда, которая поможет удовлетворить все зависимости пакета, если они не установлены:
sudo apt install -f
Все пакеты у которых есть новая версии:
apt list —upgradeable
Все установленные пакеты в системе:
apt list —installed
Все пакеты, доступные для вашей системы:
apt list —all-versions
Самый простой способ освободить дисковое пространство, использовать опцию autoremove:
sudo apt autoremove
Размер кеша можно увидеть с помощью следующей команды:
sudo du -sh /var/cache/apt
Для того чтобы очистить кэш, можно использовать несколько вариантов:
Удалить только устаревшие пакеты, например те, которые заменены недавним обновлением:
sudo apt autoclean
Или очистить кэш целиком (освобождает больше места на диске):
sudo apt clean
Очистка кэша миниатюр (2 команды):
rm -v -f ~/.cache/thumbnails/*/*.png ~/.thumbnails/*/*.png
rm -v -f ~/.cache/thumbnails/*/*/*.png ~/.thumbnails/*/*/*.png
Устаревшие файлы конфигурации (2 команды):
dpkg -l | awk ‘/^rc/ ‘ | xargs sudo dpkg —purge
sudo aptitude purge ~c
Самый простой способ удаления не нужных ядер, это набрать в терминале вот такую строку (текущее ядро останется не тронутым):
Выполнить последовательно все команды и перезагрузиться:
sudo apt-get purge $(dpkg -l ‘linux-*’ | sed ‘/^ii/!d;/'»$(uname -r | sed «s/\(.*\)-\([^0-9]\+\)/\1/»)»‘/d;s/^[^ ]* [^ ]* \([^ ]*\).*/\1/;/3/!d’ | head -n -1)
sudo reboot
БОНУС:
Скорость загрузки системы:
systemd-analyze
Скорость загрузки служб ОС:
systemd-analyze blame