Пакети на Debian: разграничаване на заявената инсталация от инсталираната, за да се удовлетворят зависимостите

Как мога да определя кои пакети са инсталирани, защото аз поисках инсталацията и кои пакети са инсталирани автоматично, за да задоволят зависимостите?

В aptitude тази информация се показва като "A":

i A fam         ...
i   grub        ...
i A grub-common ...

Това показва, че поисках пакета grub и че grub-common беше инсталиран в резултат на това. Aptitude обаче е интерактивна програма, не мога да извлека тази информация автоматично, за да я обработя със скрипт.

С инструмента за управление на пакети на debian 'dpkg -l' или 'dpkg --get-selections' мога да получа списък с инсталиран пакет с допълнителна информация. напр.

> dpkg -l
...
ii  grub                                 0.97-47lenny2              GRand Unified Bootloader (Legacy version)
ii  grub-common                          1.96+20080724-16           GRand Unified Bootloader, version 2 (common files)
ii  gs-common                            8.62.dfsg.1-3.2lenny1      Dummy package depending on ghostscript
...

Този списък може лесно да се обработва със скриптове, но показва само, че пакетите са инсталирани --- не дали по заявка или за зависимости.


person Yaakov Belch    schedule 06.11.2009    source източник


Отговори (3)


наистина може да се нарече търсене на способности с така наречените модели на търсене; вижте справка на http://algebraicthunk.net/~dburrows/projects/aptitude/doc/en/ch02s03s05.html#tableSearchTermQuickGuide търсене ~i дава инсталирани пакети. Използването на grep за отхвърляне на пакети с A дава пакети, които не са инсталирани автоматично, така че почти отговаря на първоначалния въпрос.

Но включва пакети, които принадлежат към оригиналната дистрибуция, така че не е напълно сортиран. В моя случай все още има 1500 пакета, комплект, с който мога да се справя.

Вероятно е възможно да го направя чрез комбинация за търсене, не копах, ето моята команда:

aptitude search ~i|grep -v '^i A'|

grep -v отхвърля зависимите пакети

person Pierre Imbaud    schedule 11.01.2012
comment

Успях да намеря корекцията чрез тук: https://gist.github.com/mckamey/1e661854044177a95064

(function(){
var THROTTLE = 100,//ms
    _timer = 0,
    _dom = document.documentElement,
    _width = _dom.style.width,
    reset = function(){
        // reset size, unfortunately forces another reflow
        _dom.style.width = _width;
    },
    forceReflow = function(){
        if (_timer) {
            clearTimeout(_timer);
            _timer = 0;
        }

        _width = _dom.style.width;

        // force a reflow by increasing size 1px
        _dom.style.width = (_dom.offsetWidth+1)+'px';

        setTimeout(reset, 0);
    },
    onscroll = function() {
        if (_timer) {
            clearTimeout(_timer);
        }
        _timer = setTimeout(forceReflow, THROTTLE);
    };

window.addEventListener('scroll', onscroll, false);
})();
- person Yaakov Belch; 31.01.2013

Aptitude работи и като програма само с команден ред, без GUI. Опитвам:

aptitude search grub

Информацията ще бъде там.

person Kaze no Koe    schedule 06.11.2009
comment
отлично! Разрових се в това и открих, че 'aptitude search ~M' ще изброи всички автоматично инсталирани пакети. - person Yaakov Belch; 06.11.2009

Apt поддържа флаг „auto“, който описва точно това.

Погледнете http://man.he.net/man8/apt-mark и копайте по-дълбоко, ако е необходимо.

person hoskeri    schedule 29.11.2012