Як видалити прапор "встановлений вручну" та повернутись до "автоматично встановленого" за допомогою apt-get?


103

Щоб щось скласти, мені знадобився встановити zlib1g-devпакет, тому я запустив apt-get install zlib1g-dev.

apt-get чудово повідомив мене, що пакет уже встановлений автоматично через інший пакет, і він розуміє, що я хочу його встановити прямо зараз:

# apt-get install zlib1g-dev
zlib1g-dev is already the newest version.
zlib1g-dev set to manually installed.

Моя компіляція зроблена, мені вона більше не потрібна, тому я хочу повернути її статус до попереднього: встановлено автоматично. Таким чином він буде обрізаний автоматично, коли він більше не знадобиться простому apt-get autoremove.

Я не можу зробити, apt-get remove zlib1g-devоскільки деякі пакунки все ще залежать від цього.

Тож як я можу повернути стан zlib1g-devвстановлення пакета до автоматичного встановлення ?

Я знаю, що я можу редагувати /var/lib/apt/extended_statesвручну з

Package: zlib1g-dev
Auto-Installed: 0

до

Package: zlib1g-dev
Auto-Installed: 1

... але це просто не вірно.

Відповіді:


81

Aptitude може допомогти вам, коли ви спочатку встановите пакет:

aptitude install "zlib1g-dev&M"

Або після встановлення пакета:

aptitude markauto "zlib1g"

Редагувати: Якщо у вас немає здібностей, ви можете використовувати

apt-mark auto zlib1g-dev

4
Хороша відповідь, але відповідь I + 1 на @ ArvindSing використовується apt-markчерез те, що вона не вимагає встановлення aptitude. apt-markпостачається з aptпакетом, який кожен повинен уже мати.
Крістофер Шульц

106

apt-марка може допомогти вам:

apt-mark auto zlib1g-dev

Для 11.04 або більше використовуйте "markauto" замість "auto"


8

Це те, що ти шукаєш.

sudo apt-get markauto first-package second-package etc-package

Джерело:

apt-get --help

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