Нежелан пакет от фабричния образ: докажи го, махни го
Новата машина идва с програми, които никой не е поискал. Едни само заемат място, други въртят процесор, трети са вързани за нещо друго и махането им го повлича със себе си. Този урок е методът: първо следа и доказателство, после пробно махане, едва тогава истинско — и запис на решението.
apt-get, apt-mark, apt-cache и пътят на дневника на dpkg са сверени с ръководствата на Debian (apt 3.0.3). Добавено: поглед към обратните зависимости с --installed и правилото „измерено или не“ за всяко твърдение за вреда.⚠️ Непроверено: командите не са пускани от нас на жива машина в тази ревизия — затова етикетът е ОБНОВЕНО, не ТЕСТВАНО и не ПРОВЕРЕНО. Поведението на разни дистрибуции извън Debian-семейството не е проверявано.
01Какво ще научиш
- Как да намериш следа откъде е дошъл един пакет — и защо следата не е присъда.
- Как да видиш кой друг пакет го изисква, преди да го пипнеш.
- Защо махането на един пакет може да даде право на
autoremoveда изчисти още програми — и как се предотвратява. - Как да пишеш за вредата така, че да е вярна: измерено или не.
- Как да направиш пробно махане, истинско махане и запис, който следващият човек ще разбере.
02Преди да започнеш
- Машина с Debian или система от същото семейство 🔒 локално, на която имаш права на администратор.
- Знаеш името на пакета, който те притеснява (
<пакет>по-долу). - Резервно копие на важното и ясна представа какви скриптове ти работят на машината.
- Права на администратор въвежда само собственикът на машината. Паролата не се пише в скриптове, бележки или чат.
<пакет>, <метапакет>, <програма> са плейсхолдъри — не изпълнявай нищо, преди да ги замениш и да прочетеш пробния резултат.03Стъпки
-
Следа: кога и с какво е дошъл
Дневникът на
dpkgпази кога е инсталиран всеки пакет (път по подразбиране:/var/log/dpkg.log, по-старите са вdpkg.log.1и т.н.). Намери реда на пакета и виж какво още е инсталирано в същия час. Ако в една минута са дошли стотици пакети, най-вероятно това е образът или масова инсталация, не наша команда.bash · кога е инсталиран пакетът# редовете за пакета; сменете <пакет> grep " install <пакет>" /var/log/dpkg.log* # пакети, инсталирани ръчно (поискани изрично) apt-mark showmanual⚠️Следа, не присъда„Дошъл е с образа“ е извод от дата и съседни инсталации. Записвай го като извод. Дневникът може да е завъртян и старите редове да ги няма. -
Кой го държи: обратните зависимости
Преди да махнеш нещо, виж кой го изисква. Ако друг инсталиран пакет зависи от него, махането му повлича и този пакет. Особено внимавай за метапакети — пакети, които са само списък от други пакети (например „целият работен плот“).
bash · кой го изисква и какво носи метапакетът# само инсталирани пакети, които зависят от него apt-cache rdepends --installed <пакет> # какво изисква самият метапакет apt-cache depends <метапакет>✅ПравилоАко обратните зависимости са само метапакети, не махай „на сляпо“. Първо прочети списъка на метапакета — стъпка 5 обяснява защо. -
Какво реално прави: измерено или не
Най-честата грешка е да се напише „вреди“ без числа. Затова при всяко твърдение за вреда го отбележи: измерено (има число, дневник или копие преди и след) или наблюдение (така ни се е струвало). Типични неща, които се мерят: заето място, процеси, които висят и ядат процесор, грешки в дневниците.
Една класическа причина за висящ процес: програма, която при стартиране пуска друг, помощен процес. Когато изтече времето на извикващата страна и тя убие само първия, помощният остава сирак и продължава да работи. Затова при „ядро на 100%“ погледни и родителя, не само името на програмата.
bash · кои процеси ядат най-много процесор (не е пускано)ps aux --sort=-%cpu | head -n 10ℹ️Честният записПиши „измерено: …; не е измерено: …“. Така следващият човек знае какво е факт и какво е предположение. -
Провери собствения си код
Нежеланият за теб пакет може да е нужен на твой скрипт, който никой не е записал като зависимост. Потърси името на програмата във всичките си скриптове, преди да махнеш пакета. Ако намериш повикване — първо подготви заместител и го изпитай, после махай.
bash · къде се вика програматаgrep -rI "<програма>" <папка-със-скриптовете> -
Пробно махане и маркиране на останалото
apt-get -s(--simulate) пресмята какво би станало и нищо не променя. РедоветеRemvса каквото ще се махне. Прочети ги един по един — ако виждаш програма, която искаш, спри.Ако пакетът е част от метапакет, махането му маха и метапакета, а всичко, което метапакетът е донесъл, става „ненужно“ и един по-късен
autoremoveможе да го почисти. Лечението е да маркираш останалото като ръчно инсталирано, преди да махаш.bash · пробно, после маркиране# 1. пробно: какво ще падне apt-get -s purge <пакет> # 2. прегледай какво носи метапакетът и избери какво да остане apt-cache depends <метапакет> # 3. маркирай избраното като ръчно (списъкът е твой) apt-mark manual <пакет-1> <пакет-2>⚠️Капан: autoremove на сляпоСлед маханетоapt-get autoremoveмаха пакети, инсталирани автоматично и вече ненужни. Ако не си маркирал останалото, може да отнесе още програми. Първо го пусни пробно:apt-get -s autoremove. -
Истинско махане, проверка и запис
Когато пробният резултат те устройва, махни пакета.
purgeмаха и конфигурационните файлове;removeги оставя. Избери осъзнато: ако може да се наложи връщане,removeе по-мек.bash · махане и проверкаapt-get purge <пакет> # проверка: програмата вече я няма command -v <програма> || echo "няма я" # autoremove — само пробно apt-get -s autoremoveНакрая запиши решението: какво е махнато, кога, защо, какво го замества и как се връща. Без запис следващата актуализация или следващият човек може да върне пакета и да започне отначало.
✅ПравилоПърво пробно, после истинско, и никога автоматично почистване на сляпо. Всяка стъпка оставя следа.
04Проверка
1. Какво ти казва редът за пакета в дневника на dpkg?
2. Защо не пускаш autoremove веднага след purge?
3. Кое е правилно преди purge?
4. Как пишеш за вредата от пакета?
05Какво следва
06Източници
- apt-get(8) —
-s/--simulate,purge,remove,autoremove(apt 3.0.3; сверено 03.10.2026). - apt-mark(8) —
manual,auto,showmanual. - apt-cache(8) —
depends,rdepends,--installed. - dpkg(1) — дневникът
/var/log/dpkg.log. - Собствен по-ранен случай на КАГАМИ с нежелан пакет на AI машина — обобщен в метод; конкретните данни не са публикувани и не са повторени за тази ревизия.