설치된 모든 패키지 목록을 텍스트 파일로 출력하여이를 검토하고 다른 시스템에서 대량 설치를 수행하고 싶습니다. 어떻게해야합니까?
설치된 모든 패키지 목록을 텍스트 파일로 출력하여이를 검토하고 다른 시스템에서 대량 설치를 수행하고 싶습니다. 어떻게해야합니까?
답변:
apt
위의 우분투 14.04 및 도구이 매우 쉽습니다.
apt list --installed
로컬로 설치된 패키지 목록을 얻으려면 터미널에서 다음을 수행하십시오.
dpkg --get-selections | grep -v deinstall
합니다 ( -v
태그 "반전"그렙 비 매칭 라인을 반환)
설치된 특정 패키지 목록을 얻으려면
dpkg --get-selections | grep postgres
이 목록을 packages
데스크탑에서 호출 된 텍스트 파일로 저장하려면 터미널에서 다음을 수행하십시오.
dpkg --get-selections | grep -v deinstall > ~/Desktop/packages
또는 간단히
dpkg -l
(이러한 명령을 수퍼 유저로 실행할 필요가 없으므로 sudo
여기에 필요한 다른 변형은 없습니다 )
cat ~/Desktop/packages > sudo dpkg --set-selections && sudo apt-get dselect upgrade
소스를 수행하십시오
sudo dpkg --set-selections < ~/Desktop/packages && sudo apt-get -u dselect-upgrade
트릭을 수행합니다.
(종속성으로 설치된 것이 아니라) 명시 적으로 설치된 패키지 만 가져 오려면 다음을 실행하십시오.
aptitude search '~i!~M'
여기에는 원하는 간단한 설명도 포함됩니다. 그렇지 않은 경우 -F '%p'
karthick87에서 언급 한대로 옵션을 추가하십시오 .
또 다른 옵션은 /var/lib/apt/extended_states
다음 형식의 텍스트 파일 데이터베이스 인 파일을 복사하는 것 같습니다 .
Package: grub-common
Architecture: amd64
Auto-Installed: 0
Package: linux-headers-2.6.35-22-generic
Architecture: amd64
Auto-Installed: 1
Auto-Installed: 0
는 패키지가 명시 적으로 설치되었으며 단순한 종속성이 아님을 나타냅니다.
apt-get
있습니까?
apt 명령으로 의도적으로 설치된 ( 패키지가 아닌) 모든 패키지를 나열하려면 다음을 실행하십시오.
(zcat $(ls -tr /var/log/apt/history.log*.gz); cat /var/log/apt/history.log) 2>/dev/null |
egrep '^(Start-Date:|Commandline:)' |
grep -v aptdaemon |
egrep '^Commandline:'
이는 이전 명령이 먼저 나열된 역방향 시간 기반보기를 제공합니다.
Commandline: apt-get install k3b
Commandline: apt-get install jhead
...
설치 데이터에도 시냅스 사용법이 표시되지만 세부 정보는 없습니다 (설치 날짜와 동일).
(zcat $(ls -tr /var/log/apt/history.log*.gz); cat /var/log/apt/history.log) 2>/dev/null |
egrep '^(Start-Date:|Commandline:)' |
grep -v aptdaemon |
egrep -B1 '^Commandline:'
다음을 제공합니다.
Start-Date: 2012-09-23 14:02:14
Commandline: apt-get install gparted
Start-Date: 2012-09-23 15:02:51
Commandline: apt-get install sysstat
...
zgrep -hE '^(Start-Date:|Commandline:)' $(ls -tr /var/log/apt/history.log*.gz ) | egrep -v 'aptdaemon|upgrade' | egrep -B1 '^Commandline:'
dpkg
??로 설치된 패키지를 놓치게됩니까 ?
현재 설치된 패키지의 백업을 작성하십시오.
dpkg --get-selections > list.txt
그런 다음 (다른 시스템에서) 해당 목록에서 설치를 복원하십시오.
dpkg --clear-selections
sudo dpkg --set-selections < list.txt
오래된 패키지를 제거하려면
sudo apt-get autoremove
백업시와 같이 설치하려면 (예 :에서 설정 한 패키지 설치 dpkg --set-selections
) :
sudo apt-get dselect-upgrade
ubuntu-desktop
dpkg 명령 중 하나로 인해 제거 된 것을 알기까지 다소 시간 이 걸렸습니다 . 조심, 손상을 복구하는 데 시간이 걸렸습니다!
sudo apt-mark hold name-your-package
. 명령이 끝나면 실행하십시오 . 이렇게하면 apt-get이 업데이트 프로세스의 기본값 인 현재 버전으로 업그레이드되지 않습니다.
apt-mark showmanual
매뉴얼 페이지 상태 :
수동으로 설치된 패키지 목록을 인쇄합니다
따라서 명시 적으로 설치된 패키지 목록 (기본 초기 설치의 일부인 패키지도 포함)을 제공해야합니다 (패키지 설치로 인한 모든 종속성 포함).
결과를 텍스트 파일로 출력하려면
apt-mark showmanual > list-manually-installed.txt
apt-mark showmanual
실제로는 그렇지 않습니다. 또한 기본 설치의 일부인 자동으로 설치된 수많은 패키지를 나열합니다.
apt list --manual-installed
.
dpkg-query
(대신에 dpkg --get-selections
설치되지 않은 일부 패키지가 나열 됨)는 다음과 같습니다.
dpkg-query -W -f='${PackageSpec} ${Status}\n' | grep installed | sort -u | cut -f1 -d \ > installed-pkgs
또는:
dpkg -l | grep ^ii | sed 's_ _\t_g' | cut -f 2 > installed-pkgs
# for pkg in `cat installed-pkgs`; do apt-get install -y $pkg; done
두 번째 시스템에서 타이핑 하면 패키지를 설치하기 위해이 작업을 수행했습니다.
apt-get install -y $(< installed-pkgs)
apt-get이 한 번만 실행되고 모든 종속성을 한 번에 처리하도록합니다.
sudo apt-get build-dep name-package; sudo apt-get install name-package;
.
12.04에 패키지를 다시 설치 하시겠습니까?
그렇다면 매우 쉽습니다. "Ubuntu Single Sign On 계정"이 필요합니다. (시스템이 동기화되도록 다시 설치하기 전에 생성하십시오.)
소프트웨어 센터로 이동하여 파일 메뉴에서 "컴퓨터 간 동기화 ..."옵션을 찾으십시오.
클릭하면 컴퓨터가 등록되어 있고 컴퓨터의 모든 앱 목록이 표시됩니다.
새로 설치하면 해당 컴퓨터는 새 컴퓨터로 간주됩니다.
우분투 계정에 로그인하면 이전 컴퓨터가 표시됩니다.
그것을 클릭하십시오; 모든 앱 목록이 나타납니다. 설치하려는 앱에서 "설치"를 선택하십시오.
Aptik (명령 줄 및 GUI) 이라는 도구도 있습니다.이 도구 를 사용하면 설치된 모든 패키지 목록을보고 일부 패키지를 선택 / 선택 취소하고 백업 목록을 만든 다음 동일한 패키지 세트를 복원 할 수 있습니다. 다른 시스템.
설치하기 위해서:
sudo add-apt-repository -y ppa:teejee2008/ppa
sudo apt-get update
sudo apt-get install aptik
추가 정보 : https://teejeetech.in/aptik/
스크린 샷에서 볼 수 있듯이 Aptik을 사용하면 PPA를 백업 및 복원 할 수 있으며 설치된 일부 패키지를 설치하는 데 반드시 필요합니다.
apt-get install aptik-gtk
합니다
APT 복제 . 이 패키지는 apt 기반 시스템에서 패키지를 복제 / 복원하는 데 사용할 수 있습니다.
- 패키지, source.list, 키링 및 자동 설치 상태를 저장 / 복원합니다.
- 또한 dpkg-repack을 사용하여 더 이상 다운로드 할 수없는 패키지를 저장 / 복원 할 수 있습니다.
출처:
man apt-clone
APT-Clone은 ubiquity
업그레이드 프로세스를 위해 (Ubuntu 설치 관리자)에서 사용합니다. 다음과 같은 dpkg --get-selections
이유로 솔루션 보다 훨씬 낫습니다 .
사용하는 방법
설치
sudo apt-get install apt-clone
백업 만들기
sudo apt-clone clone path-to/apt-clone-state-ubuntu-$(lsb_release -sr)-$(date +%F).tar.gz
백업 복원
sudo apt-clone restore path-to/apt-clone-state-ubuntu.tar.gz
최신 릴리스로 복원 :
sudo apt-clone restore-new-distro path-to/apt-clone-state-ubuntu.tar.gz $(lsb_release -sc)
다른 기계에서 복원하기 전에 쉽게 편집하고 검토 할 수있는 간단한 zip 압축 tar 파일을 만듭니다. 다음은 그 구조의 예입니다.
/
├── etc
│ └── apt
│ ├── preferences.d
│ ├── sources.list
│ ├── sources.list.d
│ │ ├── anton_-ubuntu-dnscrypt-vivid.list
│ │ ├── maarten-baert-ubuntu-simplescreenrecorder-vivid.list
│ │ └── megasync.list
│ ├── trusted.gpg
│ └── trusted.gpg.d
│ ├── anton__ubuntu_dnscrypt.gpg
│ ├── anton__ubuntu_dnscrypt.gpg~
│ ├── maarten-baert_ubuntu_simplescreenrecorder.gpg
│ └── maarten-baert_ubuntu_simplescreenrecorder.gpg~
└── var
└── lib
└── apt-clone
├── extended_states
├── installed.pkgs
└── uname
거기 유닉스 StackExchange에 큰 설명 종속으로 설치되지 않은 패키지를 나열 적성을 사용하는 방법과 여러분의 우분투 릴리스에 대한 기본 패키지 목록과 그 목록을 비교하는 방법에 대해 설명합니다.
데스크톱 버전 12.04 이상의 매니페스트 파일을 얻으려면 이 사이트를 방문 하여 릴리스를 선택한 다음 CD 이미지 아래로 스크롤하여 파일 섹션으로 이동하십시오. 아키텍처와 일치하는 "ubuntu-12.04.4-desktop-amd64 + mac.manifest"와 같은 것을 찾을 수 있습니다.
서버 버전의 경우 원본 시스템을 설치하는 데 사용 된 ISO에서 매니페스트 파일을 가져와야합니다. VPS 또는 클라우드 서버의 경우 공급자가 이미지를 사용 가능하게 만들거나 문의해야 할 수 있습니다.
다음은 참조 된 게시물의 코드를 새 서버에 설치하기위한 수정과 함께 사용하는 예입니다.
이전 서버 (다른 게시물의 코드, 출력은 파일에 저장 됨) :
aptitude search '~i !~M' -F '%p' --disable-columns | sort -u > currently-installed.list
wget -qO - http://mirror.pnl.gov/releases/precise/ubuntu-12.04.3-desktop-amd64.manifest \
| cut -f1 | sort -u > default-installed.list
comm -23 currently-installed.list default-installed.list > user-installed.list
새 서버에서 scp를 사용하여 파일을 복사 한 다음 sed를 사용하여 모든 행에 'install'을 추가하십시오 (-i는 인라인 대체를 수행함). 그런 다음 목록을 'dpkg --set-selections'에 대한 입력으로 사용하고 apt-get을 사용하여 패키지를 설치할 수 있습니다.
scp user@oldserver:user-installed.list .
sed -i 's/$/\tinstall/' user-installed.list
sudo dpkg --set-selections < user-installed.list
sudo apt-get dselect-upgrade
이 작업을 시작하기 전에 처음에 언급 된 게시물의 모든 부분을 읽고 이해 한 다음 검색 패턴에 대한 자세한 내용 은 적성 참조 안내서 를 참조하십시오.
이 목적 을 위해apt-cache
설계된 명령 이 위에서 언급되지 않은 것에 놀랐습니다 ...
apt-cache pkgnames
자세한 내용을 보려면 다음을 실행하십시오 apt-cache --help
.
** apt-cache는 정보를 쿼리하는 데 사용되는 저수준 도구입니다 APT 바이너리 캐시 파일에서 명령 : gencaches-패키지 및 소스 캐시 모두 빌드 showpkg-단일 패키지에 대한 일반적인 정보 표시 showsrc-소스 레코드 표시 통계-기본 통계 표시 dump-전체 파일을 간결한 형식으로 표시 dumpavail-사용 가능한 파일을 stdout에 인쇄 unmet-충족되지 않은 종속성 표시 search-패키지 목록에서 정규식 패턴을 검색하십시오. show-패키지에 대한 읽을 수있는 레코드를 표시합니다 종속-패키지에 대한 원시 종속성 정보 표시 rdepends-패키지에 대한 역방향 종속성 정보 표시 pkgnames-시스템의 모든 패키지 이름을 나열합니다 dotty-GraphViz에 대한 패키지 그래프 생성 xvcg-xvcg에 대한 패키지 그래프 생성 정책-정책 설정 표시 옵션 : -h이 도움말 텍스트입니다. -p =? 패키지 캐시. -s =? 소스 캐시. -q 진행 표시기를 비활성화합니다. -i unmet 명령에 중요한 dep 만 표시합니다. -c =? 이 구성 파일을 읽으십시오 -o =? 임의의 구성 옵션을 설정하십시오 (예 : -o dir :: cache = / tmp). 자세한 내용은 apt-cache (8) 및 apt.conf (5) 매뉴얼 페이지를 참조하십시오. **
apt --installed list
최상의 결과 를 제공 한다는 것을 알았습니다 (위의 최상위 답변에서 제안한 것처럼 보았습니다. apt-cache pkgnames
언뜻보기에는 트릭을 수행하는 것처럼 보이지만 "시스템의 모든 패키지"(위의 도움말 텍스트 당)가 나열되어 있으며 여기에는 apt가 알고있는 패키지가 포함되어 있습니다 . 실제로 설치되지 않은 거기의 --installed
옵션이 있지만 작동하지 않는 것 같습니다 pkgnames
.
apt-cache pkgnames | wc -l
제공 55909
하는 반면, (시스템이 알고있는) 패키지를 aptitude search '~i!~M' | wc -l
제공합니다 2160
(패키지가 명시 적으로 의존하지 않고, 설치).
전체 런 다운에 대해서는 다음을 참조하십시오.
페이지의 반쪽 :
dpkg-목록
아래 명령은 설치된 모든 패키지도 나열합니다.
grep ' installed ' /var/log/dpkg.log /var/log/dpkg.log.1 | awk '{print $5}' | sort -u
/var/log/dpkg.log*
로그를 모두 돌려서 grep 하는 것이 좋습니다 .
이 커뮤니티 위키를 도와주세요-최신 솔루션을 추가하십시오.
이 명령은 설치된 패키지가 포함 된 텍스트 파일을 작성해야합니다.
dpkg -l | awk '{print $2}' > package_list.txt
나열된 패키지를 대량 설치하려면 'package_list.txt'를 편집해야합니다. 텍스트 편집기를 사용하여 파일 상단의 이상한 줄을 제거하십시오. 그런 다음이 명령을 사용하여 다음을 사용하여 작성된 파일에서 패키지를 설치할 수 있습니다.
xargs < package_list.txt apt-get install -y
당신이 원하는 경우에만이 방법을 사용 하는 모든 현재 패키지 (목록 사용하여 설치 될 포함 자동으로 설치, 등).
'apt-cache pkgnames'의 응답을 "package_list.txt"라는 이름으로 출력합니다. 다음을 통해이를 달성 할 수 있습니다.
apt-cache pkgnames > package_list.txt
"package_list.txt"에서 패키지를 설치하려면 다음 명령을 사용하십시오.
xargs < package_list.txt apt-get install -y
이 명령 apt-mark showmanual
을 사용하여 Ubuntu와 함께 수동 또는 초기에 설치된 패키지 목록을 제공 할 수 있습니다 . "package-list.txt"라고 부르는 파일로 출력하려고합니다. 이를 수행하려면이 명령을 사용하십시오.
apt-mark showmanual > package-list.txt
"package_list.txt"파일에서 패키지를 설치하는 데 사용할 명령은 다음과 같습니다.
xargs < package_list.txt apt-get install -y
Ubuntu 기반 배포판을 업그레이드 / 다시 설치 한 후 소프트웨어 패키지를 쉽게 다시 설치할 수있는 유틸리티입니다.
[ 런치 패드 | 압틱 ]
Aptik에 대한 자세한 내용을 보려면 공식 페이지를 방문하고 스크린 샷을 보려면 여기를 클릭 하거나이 섹션의 끝 부분을보십시오.
Aptik 설치 는 간단합니다. 이 단계를 따르세요:
다음을 사용 하여 PPA를 추가 하십시오.
sudo add-apt-repository -y ppa:teejee2008/ppa
아래 명령으로 apt를 업데이트 하십시오.
sudo apt-get update
다음을 사용하여 Aptik을 설치 하십시오.
sudo apt-get install aptik
apt-mark showmanual
Bash, Unity 및 Xorg 의 결과물이 포함됩니다. 그들은 거기에 있어야합니까?
APT 패키지 외에도 오늘날 많은 GUI 패키지가 스냅으로 배포됩니다 .
에서 패키지를 찾을 수 없으면 apt list --installed
다음을 시도하십시오 snap list
.
$ snap list
Name Version Rev Tracking Publisher Notes
gimp 2.10.10 165 stable snapcrafters -
gnome-calculator 3.32.1 406 stable/… canonical✓ -
keepassxc 2.4.1 267 stable keepassxreboot -
...
/snap/bin
PATH 에 추가 하여 터미널에서 시작할 수 있도록 하는 것이 좋습니다 (루트가 아닌 사용자에게는 자동으로 수행됨).
패키지 dctrl-tools
는 grep-status
시스템에 설치된 것으로 표시된 패키지 목록을 가져 오는 도구를 제공합니다 .
sudo apt install dctrl-tools
용법:
grep-status -FStatus -sPackage -n "install ok installed"
보다 : man dctrl-tools
https://www.rosehosting.com/blog/list-all-installed-packages-with-apt-on-ubuntu/ :
1. 우분투에 설치된 소프트웨어 패키지 목록
컴퓨터에 설치된 소프트웨어 패키지를 나열하려면 다음 명령을 사용할 수 있습니다.
sudo apt list --installed
명령의 출력은 현재 설치된 패키지에 따라 다음과 매우 유사합니다.
Listing... acl/xenial,now 2.2.52-3 amd64 [installed] adduser/xenial,xenial,now 3.113+nmu3ubuntu4 all [installed] apache2/xenial-updates,xenial-security,now 2.4.18-2ubuntu3.1 amd64 [installed] apache2-bin/xenial-updates,xenial-security,now 2.4.18-2ubuntu3.1 amd64 [installed,automatic] apache2-data/xenial-updates,xenial-updates,xenial-security,xenial-security,now 2.4.18-2ubuntu3.1 all [installed,automatic] apache2-doc/xenial-updates,xenial-updates,xenial-security,xenial-security,now 2.4.18-2ubuntu3.1 all [installed] apache2-utils/xenial-updates,xenial-security,now 2.4.18-2ubuntu3.1 amd64 [installed] apparmor/xenial-updates,now 2.10.95-0ubuntu2.5 amd64 [installed,automatic] apt/xenial-updates,now 1.2.19 amd64 [installed] apt-utils/xenial-updates,now 1.2.19 amd64 [installed] ...
2. LESS 프로그램을 사용하십시오
전체 출력을 쉽게 읽으려면
less
프로그램을 사용할 수 있습니다 .sudo apt list --installed | less
3. GREP 명령 사용
grep
프로그램을 사용하여 출력을 통해 특정 패키지를 찾을 수 있습니다 .sudo apt list --installed | grep -i apache
4. Apache가 포함 된 모든 패키지를 나열하십시오.
위 명령의 출력은
apache
이름에 포함 된 모든 패키지를 나열합니다 .apache2/xenial-updates,xenial-security,now 2.4.18-2ubuntu3.1 amd64 [installed] apache2-bin/xenial-updates,xenial-security,now 2.4.18-2ubuntu3.1 amd64 [installed,automatic] apache2-data/xenial-updates,xenial-updates,xenial-security,xenial-security,now 2.4.18-2ubuntu3.1 all [installed,automatic] apache2-doc/xenial-updates,xenial-updates,xenial-security,xenial-security,now 2.4.18-2ubuntu3.1 all [installed] apache2-utils/xenial-updates,xenial-security,now 2.4.18-2ubuntu3.1 amd64 [installed] libapache2-mod-php/xenial,xenial,now 1:7.0+35ubuntu6 all [installed,automatic] libapache2-mod-php7.0/xenial-updates,now 7.0.13-0ubuntu0.16.04.1 amd64 [installed,automatic] libapache2-mod-security2/xenial,now 2.9.0-1 amd64 [installed] libapache2-modsecurity/xenial,xenial,now 2.9.0-1 all [installed]
Apt는 설치된
(--installed)
패키지, 업그레이드 가능한(--upgradeable)
패키지 또는 사용 가능한 모든(--all-versions)
패키지 버전 을 나열하는 패키지 이름 및 옵션과 일치하는 패턴을 지원합니다 .5. DPKG 프로그램을 사용하십시오
Ubuntu VPS 에 설치된 소프트웨어 패키지를 나열하는 데 사용할 수있는 또 다른 대안 은
dpkg
명령입니다.sudo dpkg -l
명령의 출력은 패키지 이름, 버전, 아키텍처 및 패키지에 대한 간단한 설명과 같은 정보를 제공합니다. 물론
grep
프로그램을 다시 사용하여 특정 패키지를 검색 할 수 있습니다 .sudo dpkg -l | grep -i apache
출력은 다음과 같아야합니다.
ii apache2 2.4.18-2ubuntu3.1 amd64 Apache HTTP Server ii apache2-bin 2.4.18-2ubuntu3.1 amd64 Apache HTTP Server (modules and other binary files) ii apache2-data 2.4.18-2ubuntu3.1 all Apache HTTP Server (common files) ii apache2-doc 2.4.18-2ubuntu3.1 all Apache HTTP Server (on-site documentation) ii apache2-utils 2.4.18-2ubuntu3.1 amd64 Apache HTTP Server (utility programs for web servers) rc apache2.2-common 2.2.22-6ubuntu5.1 amd64 Apache HTTP Server common files ii libapache2-mod-php 1:7.0+35ubuntu6 all server-side, HTML-embedded scripting language (Apache 2 module) (default) rc libapache2-mod-php5 5.5.9+dfsg-1ubuntu4.16 amd64 server-side, HTML-embedded scripting language (Apache 2 module) ii libapache2-mod-php7.0 7.0.13-0ubuntu0.16.04.1 amd64 server-side, HTML-embedded scripting language (Apache 2 module) ii libapache2-mod-security2 2.9.0-1 amd64 Tighten web applications security for Apache ii libapache2-modsecurity 2.9.0-1 all Dummy transitional package ii libapr1:amd64 1.5.2-3 amd64 Apache Portable Runtime Library ii libaprutil1:amd64 1.5.4-1build1 amd64 Apache Portable Runtime Utility Library ii libaprutil1-dbd-sqlite3:amd64 1.5.4-1build1 amd64 Apache Portable Runtime Utility Library - SQLite3 Driver ii libaprutil1-ldap:amd64 1.5.4-1build1 amd64 Apache Portable Runtime Utility Library - LDAP Driver .
이 튜토리얼의 경쟁으로 우분투에서 설치된 패키지를 나열하는 방법을 성공적으로 배웠습니다.