Практичні приклади використання pacman документація по blackarch російською мовою

установка пакетів

Установка певних пакетів

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

Для установки списку пакетів за допомогою пошуку по регулярному виразу (дивіться розділ Операції і синтаксис Bash і цю гілку форуму):

Якщо пакет має кілька версій в різних репозиторіях (наприклад, в extra і testing), можна вказати, звідки саме слід встановити пакет:

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

Деякі пакети об'єднані в групи пакетів, і вони можуть бути встановлені одночасно. Наприклад, при виконанні команди:

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

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

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

- будуть обрані всі пакети, крім зазначених у діапазон з 5 по 8, а також 2.

Щоб побачити список пакетів, що належать до групи gnome, виконайте:

Зверніть увагу: Якщо пакет в списку вже встановлено, він буде переустановлений навіть якщо була встановлена ​​остання версія. Це поведінку можна змінити опцією --needed.

видалення пакетів

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

Для видалення пакета з усіма залежностями, які не використовуються іншими встановленими пакетами:

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

Важливо: Ця операція рекурсивного і повинна використовуватися з обережністю, так як з'являється ризик видалити багато потенційно необхідних пакетів.

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

pacman створює резервні копії конфігураційних файлів, що видаляються додатків і додає до них розширення .pacsave. Якщо ви хочете видалити і ці файли, використовуйте ключ -n:

Зверніть увагу: pacman не видаляти конфігураційних файлів, створених самими додатками (наприклад, приховані файли (ім'я яких починається з точки) в вашому домашньому каталозі).

оновлення пакетів

pacman може оновити всі пакети системи однією командою. Це може зайняти тривалий час в залежності від того, наскільки свіжі пакети встановлені у вашій системі. Наступна команда виконає одночасно синхронізацію локальної бази даних репозиторіїв і оновлення вашої системи (НЕ будуть оновлені 'локальні' пакети, відсутні в налаштованих репозиторіях):

Важливо: У зв'язку з тим, що Arch є постійно оновлюється дистрибутивом, користувачам слід пам'ятати, що після або в процесі оновлення можуть виникнути непередбачені труднощі. Тому оновлюватися слід з обережністю. Це означає, що якщо, наприклад, очікуються великі зміни або нововведення в оновлюваних пакетах, то оновлювати систему краще тоді, коли у вас буде достатньо вільного часу і ви будете готові до вирішення можливих проблем.

Запити до баз даних пакетів

pacman за допомогою прапора -Q може шукати пакети в локальній базі даних:

а за допомогою прапора -S - в базі даних, синхронізованою з репозиторіями:

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

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

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

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

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

Для невстановлених пакетів використовуйте pkgfile.

Щоб перевірити наявність файлів, встановлених з пакунка:

Використання відразу двох прапорів k виконає більш ретельну перевірку.

Щоб дізнатися, до якого пакунку належить потрібний файл:

Для отримання списку пакетів, які більше не потрібні як залежності (пакети, які можуть бути безпечно видалені або "осиротілі" пакети):

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

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

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

або pactree c прапором -r.

Очищення кешу пакетів

pacman зберігає завантажувані пакети в каталозі (/ var / cache / pacman / pkg /) і не видаляє файли автоматично, тому слід час від часу самостійно чистити цей каталог, щоб запобігти його розростання.

Є вбудована опція для видалення з кешу всіх пакетів, невстановлених на даний момент:

Робіть це тільки в тому випадку, якщо у вас є певна впевненість, що встановлені пакети стабільні і вам не буде потрібно відкат версії, оскільки дана команда видалить всі старі версії з каталогу кешу, залишивши тільки ті, які встановлені в системі на даний момент. Збереження старіших версій пакетів може стати в нагоді в тих випадках, коли оновлення призводить до неправильної роботи системи або окремих програм. Якщо не слідувати цій пораді, може виникнути ситуація, в якій користувач буде змушений використовувати альтернативне джерело застарілих пакетів, такий як Arch Rollback Machine.

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

У зв'язку з наведеними вище застереженнями рекомендується використовувати спеціальний скрипт для більш гнучкою установки того, які і як багато пакетів будуть видалені з кешу:

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

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

Альтернативний варіант - використання пакета 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 / sudoers), включені в висновок.