특정 구성 요소에서 설치 한 모든 소프트웨어를 나열합니다 (무료, contrib)


12

모두 나열 할 수있는 방법이 있나요 non-freecontrib를 통해 데비안에 설치된 소프트웨어는 apt?

/etc/apt/sources.list 다음과 같다

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

나는 추가 non-freecontrib년 전 지금이 아닌 무료 드라이버를 필요로하지 않습니다를 새 것으로 교체 한 내 비디오 카드를위한 자유 소프트웨어가 아닌 드라이버를 필요로하기 때문이다. 무료가 아닌 것들을 제거하고 싶지만 제거 할 여유가없는 몇 년 동안 다른 무료 소프트웨어를 설치했을 수도 있습니다.


답변:


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

Section 자유롭지 않은 경로에서 모든 것에 대해 non-free / ...가됩니다.

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.

(저도 그것에 대해 궁금했지만 언급 될 때까지 확인하지 않았습니다.)


둘 다 다른 결과를 얻었습니다 ( pastebin.com/rAhYHTk8 ). NVIDIA는 드라이버이므로 dpkg가 올바른 것 같습니다! 공감. gcc-doc이 무엇을하고 있는지 궁금합니다.
Alex

NVIDIA는 이미 제거되었습니다. .deb 등을 유지했기 때문에 아마도 나열되었을 것입니다. 방금 무료로 내가 가지고 있지 않은 것 중 하나를 기억했습니다 : dpkg -l | grep -i nonfreeresults in flashplugin-nonfree. 왜 그것이 적성에 의해 나열되지 않았는지 그리고 실제로 무료가 아닌 모든 것을 나열하는지 궁금합니다.
Alex

2
그것이 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
GKFX

관련 dpkg-query -W -f='${Section}\t${Package}\n': Section구성 요소를 표시하지 않습니다. (적어도, 그것은 우분투 18.04에 나를 위해하지 않습니다.) 예 구성 요소는 다음과 같을 수 있습니다 main, contrib또는 non-free. 섹션 일들이 같다 반면 : admin, gnome, utils, 또는 x11.
mpb

6

VRMS(가상 Richard M. Stallman) 이라는 프로그램이 있습니다.이 프로그램은 시스템의 모든 무료 소프트웨어를 짧은 요약으로보고합니다. 그것은 repo에 있으며 apt;-) 를 통해 설치할 수 있습니다


2
언급 할 가치 vrms가 있습니다 /etc/cron.monthly. 설치 후 한 달 후에 가상 스톨만으로부터 메일을 받았을 때 나는 놀랐다.
Alex

2

나는 몇 년 전에 비슷한 '충동'을 가졌으며 패키지를 다운로드 한 후에 원래 패키지 정보가 시스템에 보관되어 있는지 확인할 수 없었습니다. 이 정보를 사용할 수 있다고 생각하지 않습니다 dpkg.

그래서 결국 깨끗한 가상 머신을 설정하고 적절하게 설정하고 /etc/apt/sources.list다음에 의해 생성 된 전체 목록을 설치했습니다.

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

설치하지 않을 패키지 (와 시간을 절약하기 위해 다운로드 만했습니다 apt-get -d).

apt-get --root-directory=some_dir을 임시로 변경 한 후에도 비슷한 작업을 수행 할 수는 sources.list있지만 현재 설치 데이터베이스를 사용하고 패키지를 거기로 이동하는지 확실하지 않습니다. 이러한 종류의 실험을위한 VM은 훨씬 안전합니다. 일반적으로 현재 Linux를 VM으로 깨끗하게 기본 설치하므로 VM 만 복제하면됩니다 (VM에 Linux를 설치하는 데 시간이 오래 걸리지 않음).


좋은 "솔루션". 현재 디스크 공간이 없지만 apt가 찾지 못한 패키지를 먼저 표시한다고 생각합니다.
Alex

@Alex 예 맞습니다. 그것은 대답에서 빠진 것입니다. 그러나 리키의 접근 방식은 일어날 가능성이 적고 패키지가 실제로 한 리포지토리에서 다른 리포지토리로 시간이 지남에 따라 이동하지 않는 한 더 좋습니다.
Timo

0

Ask Ubuntu를 방문하십시오 . 명령 행은 다음과 같습니다.

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
}
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.