Lista wszystkich programów zainstalowanych z określonego komponentu (non-free, contrib)

12

Czy istnieje sposób wymienić wszystkich non-free, a contriboprogramowanie zainstalowane w Debianie poprzez apt?

/etc/apt/sources.list następująco

deb http://ftp.us.debian.org/debian/ wheezy main non-free contrib
deb-src http://ftp.us.debian.org/debian/ wheezy main non-free contrib

deb http://security.debian.org/ wheezy/updates main non-free contrib
deb-src http://security.debian.org/ wheezy/updates main non-free contrib

# wheezy-updates, previously known as 'volatile'
deb http://ftp.us.debian.org/debian/ wheezy-updates main
deb-src http://ftp.us.debian.org/debian/ wheezy-updates main

Dodałem non-freei contribrok temu, bo potrzebował niewolne sterowniki dla mojej karty wideo, która teraz została zastąpiona nową, która nie wymaga niewolne sterowniki. Chciałbym się pozbyć niewolnych rzeczy, ale obawiam się, że przez lata mogłem instalować inne niewolne oprogramowanie, którego nie mogę sobie pozwolić na odinstalowanie.

Alex
źródło

Odpowiedzi:

15
  • dpkg-query -W -f='${Section}\t${Package}\n' | grep ^non-free
  • aptitude search '~i ?section(non-free)'

Section będzie non-free / ... dla wszystkiego z niewolnej ścieżki.

[Uwaga] dla dokumentów gcc ...

 This documentation is licensed under the terms of the GNU Free
 Documentation License, and contains invariant sections, so it can't be
 part of Debian main.

(Też się nad tym zastanawiałem, ale nie zawracałem sobie głowy sprawdzaniem, dopóki nie zostało wspomniane).

Ricky Beam
źródło
Oba przyniosły różne wyniki ( pastebin.com/rAhYHTk8 ). NVIDIA jest sterownikiem, więc dpkg wydaje się mieć rację! Pozytywne. Zastanawiam się, co tam robi gcc-doc.
Alex
Materiały NVIDIA zostały już usunięte, prawdopodobnie prawdopodobnie je wymieniono, ponieważ zachowało plik .deb lub coś takiego. Właśnie przypomniałem sobie jedną rzecz, którą mam z non-free, której nie ma na liście: dpkg -l | grep -i nonfreewyniki flashplugin-nonfree. Zastanawiam się, dlaczego nie znalazło się to na liście aptitude i czy w rzeczywistości zawiera listę wszystkiego od non-free.
Alex
2
Ponieważ jest w contrib :: debian / pool / contrib / f / flashplugin-nonfree ( Section: contrib/web)
Ricky Beam
1
dpkg-query -W -f='${Section}\t${Package}\n' | sort | egrep ^contrib\|^non-free
Jednowierszowy
Odnośnie dpkg-query -W -f='${Section}\t${Package}\n': Sectionnie wyświetla komponentów. (Przynajmniej, to nie dla mnie na Ubuntu 18.04). Przykładem może być komponent main, contriblub non-free. Natomiast odcinki są rzeczy, takich jak: admin, gnome, utils, lub x11.
mpb
6

Istnieje program o nazwie VRMS(wirtualny Richard M. Stallman), który w krótkim podsumowaniu zgłosi całe niewolne oprogramowanie w twoim systemie. Jest w repozytorium i można go zainstalować za pośrednictwem apt;-)

Geeb
źródło
2
Warto wspomnieć, że vrmsdodaje się do /etc/cron.monthly. Byłem mile zaskoczony, gdy miesiąc po instalacji dostałem pocztę od wirtualnego Stallmana.
Alex
2

Kilka lat temu miałem podobną „potrzebę” i nie mogłem ustalić, czy oryginalne informacje o pakiecie są przechowywane w systemie po pobraniu pakietu. Nie sądzę, aby te informacje były dostępne dla dpkg.

Skończyło się na skonfigurowaniu czystej maszyny wirtualnej, skonfigurowaniu odpowiedniej /etc/apt/sources.listi zainstalowaniu całej listy wygenerowanej przez:

dpkg --get-selections | fgrep -v deinstall | cut -s -f 1

pakiety, które się nie instalowały (pobrałem tylko, aby zaoszczędzić trochę czasu apt-get -d).

Być może będziesz w stanie zrobić coś podobnego apt-get --root-directory=some_dirpo tymczasowej zmianie sources.list, ale nie byłbym pewien, czy to wykorzysta twoją aktualną bazę danych instalacji i po prostu przeniesie tam pakiet. Maszyna wirtualna do tego rodzaju eksperymentów jest znacznie bezpieczniejsza. Zwykle mam czystą podstawową instalację mojego obecnego Linuksa jako VM, więc muszę to tylko sklonować (nie żeby instalacja Linuksa na VM trwała tak długo).

Timo
źródło
Ładne „rozwiązanie”. Obecnie nie mam na to miejsca na dysku, ale wyobrażam sobie, że apt najpierw wyświetli pakiety, które nie zostały znalezione (stąd są niewolne), prawda?
Alex
@Alex Tak, to prawda. Tego rodzaju odpowiedzi brakuje. Ale podejście Ricky jest lepsze, chyba że stało się to mało prawdopodobne, a pakiet faktycznie przeniósł się z jednego repo do drugiego (a ty nie jesteś na bieżąco lub pakiet nie zmienił numeru wersji).
Timo
0

Odwiedź Ask Ubuntu . Oto linia poleceń:

FILTER=non-free TMP_DIR=$(mktemp -d) && {
  dpkg -l | grep ^ii | cut -f 3 -d' ' | cut -f 1 -d : | sort | uniq > ${TMP_DIR}/pkg_installed.list
  cat /var/lib/apt/lists/*_${FILTER}_*Packages | grep "^Package:"  | sort | uniq | cut -d' ' -f2 > ${TMP_DIR}/pkg_filtered.list
  comm -12 ${TMP_DIR}/pkg_installed.list ${TMP_DIR}/pkg_filtered.list
}
Brak kodu
źródło