По случай скорошния рожден ден на проекта Debian, нека кажем нещо за търсенето в aptitude. Aptitude е някак странна програма – ползва се за основни неща от тези, които не искат да се задълбават в подробностите на apt, dpkg и пакетното управление в Debian. От друга страна пък се ползва и от напреднали хакери и разработчици на пакети. Едните ползват два, максимум три клавиша – u за обновяване, f за забравяне на новите и g за инсталиране на отбелязаните – а другите използват всякакви подробни клавиши, съкратени търсения и превключване на изгледите, от които на нормалния човек му се завива свят. Е, или поне му става като в Emacs (приятелска закачка към емаксаджийте, не се сърдете).

Да видим някои от най-полезните клавиши за ежедневна работа и някои основни търсения и шаблони за търсене, които може да са ни полезни. Без претенция за изчерпателност, разбира се – аз самият дълги години вече не съм седнал да дочета наръчника за програмата… Действам на принципа “колкото ми стига – толкова”.

Клавиши:

u – обновяване на списъка с пакети. Същото като apt-get update, или по-точно aptitude update. Някои си го настройват в cron, други инсталират cron-apt, apticron и подобни. Трети, като моя милост, натискат u при влизане в aptitude, за да се радват на запълващите се зелени и оранжеви стълбчета.

f – забравяне на новите пакети (aptitude forget-new). Когато повече от веднъж видите един и същи пакет в графата “New Packages”, си е досадно. Може да се настрои автоматично да ги отбелязва като нови след инсталиране на нещо, но къде отива удоволствието да гледаш как една програма “забравя”? 🙂

g – при първо натискане дава списък с действията по пакетите и при повторно – започва да ги действа. Пак стълбчетата.

e – ако има неразрешени зависимости, се опитва да ги разреши автоматично. Ако първият списък не ви харесва, натиснете “>” за следващо предложение. И пак, и пак – докато намерите комбинация, която ви устройва. Назад в тази поредица предложения се връщате с “<“. Понякога спестява време вместо ръчно да оправяте конфликтите с избиране на всеки пакет, да ползвате “e”. Но и често не върши работа – логиката е такава, че няма тотален приоритет на вече инсталираните пакети и неведнъж може например за едно малко програмче да ви предлага да махнете целия X с цяла страница пакети. Не разчитайте сляпо на тая автоматика.

M – ръчно отбелязване на отделния пакет като “автоматично инсталиран”.

m – ръчно отбелязване на отделния пакет като “ръчно инсталиран”. Тези последните две са полезни при бъдещо обновяване или премахване на пакети, които са в зависимост от въпросните. Казано накратко, “автоматичните” се повличат от зависещите от тях (не е толкова просто, но ни стига за момента). Разработчиците описват зависимости, но понякога ръчната донастройка на това си е полезна.

Бързи търсения:

b – търси счупени зависимости (от “broken”). Същото като “/~b”.

/ – влиза в режим търсене. Най-простото е да въведете някакъв низ, който смятате, че се съдържа в името на пакета, защото по подразбиране търси в името. Може да шикалкавите с ^ за търсене в началото и ! в края на името.

/~ – специални търсения. Тук темата е широка и не ни стига малкият сайт. Накратко някои полезни – /~dtext търси за “text” в описанието на пакета; /~mtext търси в полето за пакетиралия разработчик; /~atext търси зададено действие за пакет (“text” може да е install, upgrade, hold и т.н.); /~stext търси в секцията “text”; /~Atext търси в конкретен архив на хранилището “text” (stable, unstable и т.н.); /~Otext търси в хранилището на “text”… Май за тези се сещам…

Да не търсим повече шаблони за търсене, мисля че има още доста, но и тези са предостатъчно. Особено като се има предвид, че едно от удобствата на aptitude е визуалната работата с интерфейса – стрелки, enter, q. Каквото е mc за командния ред. 🙂

Може би тук е моментът да спомена, че съкращенията с ~ си имат несъкратен аналог с ? – например на d отговаря description, на b – broken и т.н. Рядко съм ги ползвал, но ако някъде видите да се споменават, да знаете, че са същите като кратките. Може би е някакво удобство да виждаш изписана цялата дума и така да не я грешиш, не знам.

Също така всяко от тези условия за търсене може да се обръща с “!” – тоест /!text търси за пакети, които НЕ съдържат “text”.

И сега нека честитим рождения ден на Дебиан, като пуснем следното търсене:

/~i!~Odebian

Това ще ви даде пакетите, които са инсталирани и не са от официалните хранилища на Debian. От пакет на пакет може да минавате с “n” (от “next”). А списък с всички тези пакети наведнъж може да получите от команден ред така:

# aptitude search '~i!~Odebian'

Ако като мен използвате към официалните хранилища и тези на Siduction, тогава:

# aptitude search '~i!(~Odebian|~Osiduction)'

Всичко останало са пакети от рожденика 🙂

Share

7 Replies to “Набързо за aptitude”

  1. Пък при добро желание и липса на служебна принуда за ползването им, тези външни пакети може направо да ги пратите в пакетния рай. Маркират се за изтриване с “_” (за деинсталиране и запазване на някои настройки и данни – с “-“). След това – “g” и пак “g” и готово.
    В общия случай става дума за flash, skype и други подобни зарази. 😉

  2. Последната команда би трябвало да може да се инсталира и без да си свръхпотребител. Тук отново забелязвам една от привичките на ВП да прави кавичките красиви, което може да доведе непредвидими резултати при сляпото им преизползване.

    Аз обаче (у-у-у еретик) не съм почитател на тая програма и почти не я ползвам. Почти не съм срещал случай да не мога да го оправя с добрия стар apt-get, а съответно търсенето ми е напълно достатъчно.

  3. Поправих – сложих командите в елемент pre.
    За привилегиите – така е, за търсене не е нужно да си root. Но понеже да се пуска интерфейсът на aptitude като потребител е леко безмислено, затова реших да е като root. Това, което аз правя, е да ползвам sudo в случая (така след време решиха и убунтувци, не че са видели от мене, де). Такъв съм си – навремето, преди десетина години, лягах и ставах с dselect, после пък логично – с aptitude. На debian-система без aptitude и mc (има хора, дето инсталират и така, колкото и да е чудно) се чувствам като с отрязани крайници.

    Потребител по-добре и по-лесно е да ползва apt-cache, особено за бързи търсения. За apt-get – вече ясно… Въпреки че, хм, търсене с apt-get не знам как се прави. Може ли? Или имаш предвид apt-cache? Пусни ако искаш команда, нека има, после когато някой чете.

  4. Не го споменах изрично, защото и двете са от пакета APT tools. Иначе е точно този „праисторически метод“:

    $ apt-cache search <pack>

    И после, ако искам да видя нещо повече около намерения:

    $ apt-cache show <pack>
  5. В горния коментар ми отряза в двете команди думата pack, която стои накрая, може би защото я бях оградил в знаци за по-малко и по-голямо.

  6. Реже html-а, да – нормално. Ако искаш да изпишеш така код, вместо <pack> пишеш &lt;pack>.

    apt-cache е удобен инструмент, спор няма – просто не беше свързано с aptitude, затова изобщо не съм споменал. На система без aptitude (пу, пу!) възможностите за търсене не са толкова удобни и лесни.

    apt-cache е за бързо търсене “на момента”. Търси в име и описание – да, може да се ползват регулярни изрази, но дори да се ползва “–full”, пак не се вижда пакетът от кое хранилище е (origin). Може пълното търсене да се grep-ва и cut-ва и awk-ва, но пак е overhead.

    Може да се инсталира debtags, например… Но защо просто не се ползва добрият стар aptitude, който си има всичко.

    Та за ежедневна поддръжка на често обновявана система (например лична или за разработка) aptitude е труднозаменим. Някои пускат Synaptic или друго подобно, но забавянето заради графичния интерфейс според мен убива предимствата.

    Опитах да сглобя търсене с apt-cache, което да отговаря на ~i!~Odebian, но не успях. Не казвам, че не може – просто за мен aptitude е правилният инструмент и го познавам. 😉

  7. Аз просто казах какво ползвам. Иначе и мен ме дразни, че не се вижда произходът. Синоптика в началото много ме дразнеше, заради бавната си работа. От както преди няколко месеца чух съвет да не се ползвал за сметка на Муон от начинаещи, направо избухнах. Но може би проблемът е в мен. Не всеки има желание да знае какво върши. Иска да нащрака нещо и да получи някакъв резултат. Друго не му трябва.

Comments are closed.