Как я могу перечислить все пакеты, которые я установил из определенного репозитория?

42

Как я могу перечислить все пакеты, которые я установил из определенного репозитория?

Как я могу перечислить все установленные пакеты, которые недоступны из основных архивов Ubuntu, а также посмотреть, какие репозитории они пришли? (Если бы я знал ответ на этот вопрос, я мог бы grep этот список для определенного имени PPA, чтобы узнать ответ на мой первый вопрос.)

    
задан Marius Gedminas 11.10.2010 в 15:15
источник

5 ответов

23

Разверните элемент «Установленное программное обеспечение» в программном центре Ubuntu. Вы увидите список всех разных репозиториев, которые вы включили. Нажав на репо, вы увидите пакеты, которые вы установили из каждого.

    
ответ дан andrewsomething 11.10.2010 в 17:05
источник
20

Кажется, что нет записи о происхождении пакета установленного .

Если вам хорошо, когда вы получаете местоположение, откуда то же имя будет загружено, это доступно через %код%. Следующий (довольно уродливый) скрипт делает трюк для меня:

LC_ALL=C dpkg-query --showformat='${Package}:${Status}\n' -W '*' \
  | fgrep ':install ok installed' \
  | cut -d: -f1 \
  | (while read pkg; do 
       inst_version=$(apt-cache policy $pkg \
                                | fgrep Installed: \
                                | awk '{ print  }'); 
       origin=$(apt-cache policy "$pkg" \
                          | fgrep " *** ${inst_version}" -C1 \
                          | tail -n 1 \
                          | cut -c12-); 
       echo $pkg $origin; 
     done)

Обратите внимание, что он довольно хрупкий, поскольку он делает предположения о выходе apt-cache policy , которые могут меняться в разных версиях ...

    
ответ дан Riccardo Murri 11.10.2010 в 20:41
19

Откройте диспетчер пакетов Synaptic и нажмите кнопку «Происхождение» на левой боковой панели. Он перечислит ваши источники. Выберите источник, чтобы увидеть доступные / установленные пакеты.

    
ответ дан lovinglinux 11.10.2010 в 15:23
4

В этом сценарии перечислены пакеты, которые установлены и доступны в PPA:

#!/bin/sh
# Give PPA name as an argument, e.g. ppa:oibaf/graphics-drivers

name1="$(echo ""|cut -d: -f2|cut -d/ -f1)"
name2="$(echo ""|cut -d/ -f2)"

awk ' == "Package:" { if (a[]++ == 0) print ; }' \
/var/lib/apt/lists/*"$name1"*"$name2"*Packages |
xargs dpkg-query -W -f='${Status} ${Package}\n' 2>/dev/null  | awk '/^[^ ]+ ok installed/{print }'

Я применил это .

BTW Что касается удаления PPA от использования, используйте программу ppa-purge; Я создал улучшенную версию здесь .

    
ответ дан jarno 09.01.2016 в 23:33
3

В разделе Quantal (12.10) необходимо удалить пространство в исходной строке.

LC_ALL=C dpkg-query --showformat='${Package}:${Status}\n' -W '*' \
 | fgrep ':install ok installed' \
 | cut -d: -f1 \
 | (while read pkg; do 
   inst_version=$(apt-cache policy $pkg \
                            | fgrep Installed: \
                            | cut -d: -f2-); 
   origin=$(apt-cache policy "$pkg" \
                      | fgrep " ***${inst_version}" -C1 \
                      | tail -n 1 \
                      | cut -c12-); 
   echo $pkg $origin; 
 done)
    
ответ дан Graham Dunn 12.03.2013 в 14:16