Зробіть пакет, явно встановлений в Pacman


32

У мене є пакет, встановлений на моєму ПК як залежність від іншого пакету.

Я хотів би, щоб пакет явно встановив, але без фактичної його повторної інсталяції чи завантаження будь-яких файлів.

Чи можливо це?

оновлення :

У мене немає кешованих пакетів /var/cache/pacman/pkg, що є однією з причин я хочу змінити деталь пакета без повторної установки.

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

Відповіді:


49

Я знайшов відповідь на форумах Arch Linux

Оскільки pacman 3.4 ви можете використовувати

# pacman -D

змінювати лише базу даних. Так:

# pacman -D --asexplicit <pkgs>

зробить <pkgs> явно встановленим .


6

pacman -Sмає --asexplicitпрапор, який повинен робити те, що ви хочете.

Наприклад:

> pacman -Qi mutagen            
...
Install Reason : Installed as a dependency for another package

> pacman -S --asexplicit mutagen
warning: mutagen-1.20-1 is up to date -- reinstalling
resolving dependencies...
looking for inter-conflicts...

Targets (1): mutagen-1.20-1

Total Download Size:    0.00 MB
Total Installed Size:   0.82 MB
...

> pacman -Qi mutagen
...
Install Reason : Explicitly installed

Ви можете бачити, що нічого не було завантажено, оскільки воно вже встановлено локально. Він просто перевернув поле "Встановити причину".

Pacman має різні --helpоперації в залежності від операції ( -S, -Rі т.д.). Тож pacman -S --helpперелічено --asexplicitпрапор як один із доступних прапорів. --asdepsтакож доступний.


будь ласка, дивіться правки, які я внесла до питання
Стефан,

1

Щоб встановити лише те, що ще не встановлено, ви можете використовувати прапор --ededed:

pacman -S mutagen
pacman -S --needed mutagen clone

Пропустить перевстановлення мутагенів, якщо вже встановлена ​​перша команда. І ви також отримаєте приємну інформацію про це

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.