Cách liệt kê tất cả các gói đã cài đặt


1884

Tôi muốn xuất danh sách tất cả các gói đã cài đặt thành tệp văn bản để tôi có thể xem lại và cài đặt hàng loạt trên hệ thống khác. Làm thế nào tôi sẽ làm điều này?


7
Điều này đã được trả lời ở đây .
Simon Quigley

2
Ồ, trải qua các câu trả lời dường như có rất nhiều cách để thực hiện điều này: /
Madivad

2
Làm cách nào để cài đặt hàng loạt trên một hệ thống mới từ một tệp văn bản như vậy?
Elysium

2
@Madivad những người quản lý gói này từng được cho là sẽ làm cho cuộc sống dễ dàng hơn ...
René Nyffalanger

Câu trả lời:


2135

Ubuntu 14.04 trở lên

Công aptcụ trên Ubuntu 14.04 trở lên giúp việc này trở nên rất dễ dàng.

apt list --installed

Các phiên bản cũ hơn

Để có được danh sách các gói được cài đặt cục bộ, hãy làm điều này trong thiết bị đầu cuối của bạn:

dpkg --get-selections | grep -v deinstall

( -vThẻ "đảo ngược" grep để trả về các dòng không khớp)

Để có được một danh sách các gói cụ thể được cài đặt:

dpkg --get-selections | grep postgres

Để lưu danh sách đó vào một tệp văn bản được gọi packagestrên máy tính để bàn của bạn, hãy làm điều này trong thiết bị đầu cuối của bạn:

dpkg --get-selections | grep -v deinstall > ~/Desktop/packages

Cách khác, chỉ cần sử dụng

dpkg -l

(bạn không cần phải chạy bất kỳ lệnh nào trong số các lệnh này dưới dạng siêu người dùng, vì vậy không có sudohoặc bất kỳ biến thể nào khác cần thiết ở đây)


37
Sau đó, khi cài đặt vào máy tính mới, hãy thực hiện cat ~/Desktop/packages > sudo dpkg --set-selections && sudo apt-get dselect upgrade nguồn
koanhead

13
Cú pháp cho dpkg có thể đã thay đổi một chút kể từ năm 2006 vì lệnh đó không hiệu quả với tôi, @koanhead. sudo dpkg --set-selections < ~/Desktop/packages && sudo apt-get -u dselect-upgradekhông lừa
James

219
Lưu ý rằng điều này sẽ không theo dõi những gói nào được người dùng cài đặt rõ ràng và gói nào được cài đặt dưới dạng phụ thuộc. Điều này có nghĩa là nếu bạn sử dụng phương pháp này để tạo lại thiết lập của mình trên một máy khác, apt sẽ không thể xóa các phụ thuộc không cần thiết khi bạn xóa một gói nhất định.
trực giác

73
Thật đáng buồn và đáng kinh ngạc khi nhận xét của @intuited không được cộng đồng hiểu rõ hơn. Những người đóng góp "được đánh giá cao" sẽ dừng suy nghĩ nhiều hơn trước khi đưa ra lời khuyên chỉ cần tải lại các gói cũ trên phiên bản ub Ubuntu mới không phải là một ý tưởng hay (?). Với tất cả các tùy chọn dpkg, tôi vẫn không thấy một tùy chọn nào rút ra các gói được cài đặt 'rõ ràng' bởi người dùng để có thể tải lại danh sách THAT và cho phép cài đặt các phụ thuộc của nó; Tôi rất muốn biết điều đó - xin vui lòng chia sẻ thông tin đó. Trong lúc này, hãy lập danh sách các gói bạn thực sự cần để cài đặt lại và chạy nó
Ricalsin

62
Chúng ta đều biết rằng linux phân biệt đối xử với mọi người mà không có bộ nhớ ảnh, nhưng nghiêm túc, điều gì sẽ xảy ra với nó apt list installed. Một ngày nào đó chúng ta nên dừng việc thất bại một cách có hệ thống nguyên tắc "giữ những điều đơn giản dễ dàng".

414

Để chỉ nhận các gói được cài đặt rõ ràng (không chỉ được cài đặt dưới dạng phụ thuộc), bạn có thể chạy

aptitude search '~i!~M'

Điều này cũng sẽ bao gồm một mô tả ngắn gọn, mà bạn có thể muốn. Nếu không, cũng thêm tùy chọn -F '%p', như được đề cập bởi karthick87.


Tuy nhiên, một tùy chọn khác dường như là sao chép tệp /var/lib/apt/extended_states, đó là cơ sở dữ liệu tệp văn bản ở định dạng này:

Package: grub-common
Architecture: amd64
Auto-Installed: 0

Package: linux-headers-2.6.35-22-generic
Architecture: amd64
Auto-Installed: 1

Auto-Installed: 0 chỉ ra rằng gói đã được cài đặt rõ ràng và không chỉ là một phụ thuộc.


52
Đây phải là câu trả lời chính xác. Tại sao danh sách phụ thuộc?
Stavros Korokithakis

13
Đây không phải là câu trả lời, nhưng sử dụng aptitude là một chút không đáng tin cậy vì hiện tại Multiarch (sửa lỗi trên đường), thật không may. Vẫn +1 để chỉ ra danh sách các gói được cài đặt rõ ràng và cách thực hiện việc này (mặc dù hiện tại nó không hoạt động trên 11.10+).
gertvdijk

4
@intuited "Sửa lỗi phát hành" cho Chính xác (một thời gian trước). :)
gertvdijk

11
Điều này liệt kê tất cả các gói, không chỉ các gói được cài đặt thủ công trên Ubuntu 13.10.
Eamon Nerbonne

5
Có cách nào để đạt được kết quả tương tự với apt-get?
Javier Arias

203

Để liệt kê tất cả các gói được cài đặt có chủ ý (không phải là phụ thuộc) bằng các lệnh apt, hãy chạy như sau:

(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:'

Điều này cung cấp chế độ xem dựa trên thời gian đảo ngược, với các lệnh cũ hơn được liệt kê trước:

Commandline: apt-get install k3b
Commandline: apt-get install jhead
...

Dữ liệu cài đặt cũng hiển thị mức sử dụng synap, nhưng không có chi tiết (giống với ngày cài đặt):

(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:'

cung cấp như sau:

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
...

3
Hoặc (với zgrep và xóa thông báo cập nhật):zgrep -hE '^(Start-Date:|Commandline:)' $(ls -tr /var/log/apt/history.log*.gz ) | egrep -v 'aptdaemon|upgrade' | egrep -B1 '^Commandline:'
belacqua

3
Liệu cách tiếp cận này bỏ lỡ các gói được cài đặt với dpkg??
drevicko

5
Trong khi các câu trả lời đơn giản ở trên là tốt cho người dùng nói chung. Phương pháp này cho đến nay là cách tốt nhất để quay lại tất cả các tùy chỉnh được thực hiện cho máy, vì nó cũng hiển thị những gì đã bị xóa hoặc thêm vào từ hình ảnh cơ sở, vì nó liệt kê chúng theo trình tự được thực hiện và giúp bạn nhớ đó là gì trình tự chính xác để thêm chúng trở lại trong một hệ thống khác.
AllGamer

3
@drevicko bạn đúng, nó không liệt kê các gói được cài đặt với dpkg
Steve Buzonas

3
Điều này khá thuận tiện cho việc tổ chức - bộ não của tôi thích nó theo cách này vì bất kỳ lý do gì ..
JeremyFelix

191

Tạo một bản sao lưu của các gói hiện đang được cài đặt:

dpkg --get-selections > list.txt

Sau đó (trên hệ thống khác) khôi phục cài đặt từ danh sách đó:

dpkg --clear-selections
sudo dpkg --set-selections < list.txt

Để thoát khỏi các gói cũ:

sudo apt-get autoremove

Để được cài đặt như lúc sao lưu (tức là cài đặt các gói được đặt bởi dpkg --set-selections):

sudo apt-get dselect-upgrade

5
Mẹo tuyệt vời về khôi phục trên một máy khác. +1.
Drew Noakes

15
di chuyển giữa 2 máy Ubuntu 12.04 khác nhau, cách tiếp cận này đã phá vỡ hệ thống của tôi. phải mất một lúc cho đến khi tôi nhận ra rằng bằng cách nào đó ubuntu-desktopđã gỡ cài đặt - có thể là do một trong các lệnh dpkg. hãy cẩn thận, tôi phải mất hàng giờ để sửa chữa thiệt hại!
Karl Frisk

1
Và đôi khi hệ thống cập nhật một ứng dụng mà bạn đặc biệt mong muốn hệ thống không chạm vào nó bao giờ, hãy thực hiện điều này khi kết thúc các lệnh sudo apt-mark hold name-your-package . Điều này sẽ ngăn apt-get nâng cấp lên phiên bản hiện tại, mặc định cho quá trình cập nhật.
Faron

77
apt-mark showmanual

trang người đàn ông:

sẽ in danh sách các gói được cài đặt thủ công

Vì vậy, nó chỉ nên đưa ra một danh sách các gói được cài đặt rõ ràng (mặc dù gói này bao gồm các gói là một phần của cài đặt ban đầu mặc định) mà không có tất cả các phụ thuộc được bao gồm do các gói này được cài đặt.

Để xuất kết quả thành tệp văn bản:

apt-mark showmanual > list-manually-installed.txt

Trên Debian "apt-mark showmanual" không hoạt động trên "bóp" nhưng hoạt động trên "khò khè"
Wadih M.

11
Giống như với hầu hết các câu trả lời khác, apt-mark showmanualkhông thực sự. Nó cũng liệt kê hàng tấn các gói được cài đặt tự động, có thể là một phần của cài đặt cơ sở.
mivk

8
Vâng, câu hỏi dành cho các gói đã cài đặt và điều này đưa ra tất cả các gói đã cài đặt trừ đi các phụ thuộc được cài đặt tự động. Nó bao gồm các gói ban đầu như là một phần của cài đặt ban đầu. Tôi đoán bạn có thể chạy cái này trên một bản cài đặt mới để lấy danh sách các bản cài đặt mặc định và sau đó trừ nó ra để thấy sự khác biệt.
Tim Tonomall

5
Không ai đề cập đến sự thay thế này để liệt kê các gói được cài đặt thủ công : apt list --manual-installed.
Pablo A

41

dpkg-query(thay vì dpkg --get-selectionsliệt kê một số gói chưa được cài đặt) như sau:

dpkg-query -W -f='${PackageSpec} ${Status}\n' | grep installed |  sort -u | cut -f1 -d \ > installed-pkgs

Hoặc là:

dpkg -l | grep ^ii | sed 's_  _\t_g' | cut -f 2 > installed-pkgs

Typying # for pkg in `cat installed-pkgs`; do apt-get install -y $pkg; donetrong hệ thống thứ hai tôi đã thực hiện điều này để nó sẽ cài đặt Gói.
user9869932 11/03/2015

1
@julianromera: apt-get install -y $(< installed-pkgs)sẽ làm cho nó để apt-get chỉ chạy một lần và xử lý tất cả các phụ thuộc cùng một lúc.
jamadagni

@julianromera ... sửa tôi nếu tôi nhầm nhưng để xây dựng một ứng dụng có phụ thuộc trước khi thực hiện cài đặt thường là sudo apt-get build-dep name-package; sudo apt-get install name-package; gì?
Faron

39

Để liệt kê tất cả các gói đã cài đặt,

dpkg -l |awk '/^[hi]i/{print $2}' > 1.txt

hoặc là

aptitude search -F '%p' '~i' > 1.txt

hoặc là

dpkg --get-selections > 1.txt

Lưu ý:
Bạn sẽ nhận được tệp 1.txt kết quả trong thư mục nhà của mình hoặc bạn có thể chỉ định đường dẫn của riêng mình.


35

Bạn có thể sử dụng Synaptic để lưu trạng thái hiện tại của gói đã cài đặt. Trong Synaptic, chọn "tệp / lưu đánh dấu", Nhập tên tệp để lưu trạng thái và đảm bảo kiểm tra hộp "Lưu trạng thái đầy đủ, không chỉ thay đổi".

Tập tin được lưu từ đây có thể được tải vào một máy mới bằng cách sử dụng "đánh dấu tập tin / đọc" trong Synaptic.


34

Tôi khuyên bạn nên sử dụng bản thiết kế . Mặc dù nó được thiết kế cho máy chủ, nó cũng có thể được sử dụng từ máy tính để bàn. Nó sẽ tạo ra một kịch bản shell / đầu bếp / con rối mà bạn sử dụng để cài đặt lại tất cả các gói bạn.


Tôi không thử một bản sao hoàn chỉnh, nhưng chỉ có thực tế là đưa các tập tin cấu hình vào tài khoản là tuyệt vời. Tôi đã tìm kiếm một công cụ như vậy trong một thời gian, cảm ơn bạn rất nhiều!
tbolender

33

Bạn muốn cài đặt lại các gói bây giờ ở đó vào ngày 12.04, phải không?

Nếu vậy, nó rất dễ dàng. Bạn sẽ cần một "tài khoản đăng nhập một lần Ubuntu". (Tạo nó trước khi cài đặt lại để hệ thống của bạn được đồng bộ hóa.)

  1. Chuyển đến Trung tâm phần mềm và tìm tùy chọn "Đồng bộ giữa các máy tính ..." trong menu Tệp.

  2. Khi bạn nhấp vào nó, bạn sẽ thấy máy tính của mình được đăng ký và một danh sách tất cả các ứng dụng trên máy tính của bạn.

  3. Khi bạn sẽ cài đặt mới, máy tính đó sẽ được coi là một máy tính mới.

  4. Bạn chỉ cần đăng nhập vào tài khoản Ubuntu và máy tính trước đó của bạn sẽ được hiển thị.

  5. Nhấn vào nó; bạn sẽ nhận được một danh sách tất cả các ứng dụng. Chọn "cài đặt" trên ứng dụng bạn muốn cài đặt.


Tôi đặt cùng tên cho máy tính của mình trên bản cài đặt mới để ngăn tải xuống rất lớn từ máy chủ Ubuntu One mỗi lần. Bạn có nghĩ rằng điều này làm việc cho tôi?
Alen

32

Ngoài ra còn có một công cụ gọi là Aptik (cả dòng lệnh và GUI) có thể giúp bạn xem danh sách tất cả các gói đã cài đặt, với tùy chọn chọn / bỏ chọn một số trong số chúng, tạo danh sách sao lưu và sau đó khôi phục cùng một gói gói trong hệ thống khác.

Để cài đặt:

sudo add-apt-repository -y ppa:teejee2008/ppa
sudo apt-get update
sudo apt-get install aptik

Thông tin thêm: https://teejeetech.in/aptik/

nhập mô tả hình ảnh ở đây

Như có thể thấy trong ảnh chụp màn hình, Aptik cho phép bạn cũng sao lưu và khôi phục PPA , điều này chắc chắn sẽ cần thiết để cài đặt một số gói được cài đặt.


Nếu bạn muốn GUI, bạn phải cài đặt apt-get install aptik-gtkcũng
Maduka Jayalath

30

APT-Bản sao . Gói này có thể được sử dụng để sao chép / khôi phục các gói trên hệ thống dựa trên apt.

  • Nó sẽ lưu / khôi phục các gói, nguồn.list, keyring và trạng thái cài đặt tự động.
  • Nó cũng có thể lưu / khôi phục các gói không thể tải xuống bằng dpkg-repack.

nguồn: man apt-clone

APT-Clone được sử dụng bởi ubiquity(trình cài đặt Ubuntu) cho quá trình nâng cấp. Nó là tốt hơn nhiều so vớidpkg --get-selections giải pháp vì:

  1. Nó bảo tồn tất cả các thông tin kho lưu trữ.
  2. Nó theo dõi những gói đã được tự động cài đặt.
  3. Nó cho phép đóng gói lại các tệp DEB được cài đặt cục bộ.

Cách sử dụng

  1. Tải về

    sudo apt-get install apt-clone
    
  2. Tạo bản sao lưu

    sudo apt-clone clone path-to/apt-clone-state-ubuntu-$(lsb_release -sr)-$(date +%F).tar.gz
    
  3. Khôi phục lại bản sao lưu

    sudo apt-clone restore path-to/apt-clone-state-ubuntu.tar.gz
    

    Khôi phục bản phát hành mới hơn:

    sudo apt-clone restore-new-distro path-to/apt-clone-state-ubuntu.tar.gz $(lsb_release -sc)
    

Nó tạo tập tin tar được nén đơn giản, có thể dễ dàng chỉnh sửa và xem xét trước khi khôi phục trên các máy khác. Dưới đây là một ví dụ về cấu trúc của nó:

/
├── 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

26

một lời giải thích tuyệt vời về Unix StackExchange mô tả cách sử dụng aptitude để liệt kê các gói không được cài đặt làm phụ thuộc và cách so sánh danh sách đó với danh sách các gói mặc định cho bản phát hành Ubuntu của bạn.

Để có được tệp kê khai cho các phiên bản máy tính để bàn 12.04 trở lên, hãy truy cập trang web này , chọn bản phát hành của bạn và cuộn xuống bên dưới hình ảnh CD vào phần tệp. Bạn sẽ tìm thấy một cái gì đó như "ubfox-12.04.4-desktop-amd64 + mac.manifest" phù hợp với kiến ​​trúc của bạn.

Đối với các phiên bản máy chủ, bạn sẽ cần lấy tệp kê khai từ ISO được sử dụng để cài đặt hệ thống gốc. Đối với VPS hoặc máy chủ đám mây, nhà cung cấp của bạn có thể cung cấp hình ảnh hoặc bạn có thể cần liên hệ với họ.

Dưới đây là một ví dụ sử dụng mã từ bài đăng được tham chiếu, cùng với các sửa đổi để cài đặt trên máy chủ mới.

Máy chủ cũ (mã từ bài đăng khác, đầu ra được lưu vào tệp):

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

Trên máy chủ mới, sao chép tệp bằng scp, sau đó sử dụng sed để nối 'cài đặt' vào mỗi dòng (-i thực hiện thay thế nội tuyến). Sau đó, bạn có thể sử dụng danh sách làm đầu vào cho 'dpkg --set-tests' và cài đặt các gói với 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

Trước khi bắt đầu nhiệm vụ này, tôi khuyên bạn nên đọc và hiểu tất cả các phần của bài đăng được đề cập ở phần đầu, sau đó tham khảo hướng dẫn tham khảo năng khiếu để biết chi tiết về các mẫu tìm kiếm.


25

Bạn có thể nhìn vào aptnhật ký dưới /var/log/apt/dpkgnhật ký dưới/var/log/

và bạn có thể lấy danh sách các gói đã cài đặt chỉ bằng một lệnh:

dpkg -l | grep '^ii '

23

Tôi ngạc nhiên apt-cachelệnh được thiết kế chính xác cho mục đích này đã không được đề cập ở trên ...

apt-cache pkgnames

Để biết thêm thông tin, hãy chạy apt-cache --help:

** apt-cache là một công cụ cấp thấp được sử dụng để truy vấn thông tin
từ các tệp bộ đệm nhị phân của APT

Các lệnh:
   gencaches - Xây dựng cả gói và bộ đệm nguồn
   showpkg - Hiển thị một số thông tin chung cho một gói duy nhất
   showsrc - Hiển thị các bản ghi nguồn
   thống kê - Hiển thị một số thống kê cơ bản
   dump - Hiển thị toàn bộ tập tin ở dạng ngắn gọn
   dumpavail - In một tệp có sẵn vào thiết bị xuất chuẩn
   unmet - Hiển thị phụ thuộc chưa được đáp ứng
   tìm kiếm - Tìm kiếm danh sách gói cho mẫu regex
   hiển thị - Hiển thị một bản ghi có thể đọc được cho gói
   phụ thuộc - Hiển thị thông tin phụ thuộc thô cho gói
   rdepends - Hiển thị thông tin phụ thuộc ngược cho gói
   pkgnames - Liệt kê tên của tất cả các gói trong hệ thống
   dotty - Tạo biểu đồ gói cho GraphViz
   xvcg - Tạo biểu đồ gói cho xvcg
   chính sách - Hiển thị cài đặt chính sách

Tùy chọn:
  -h Điều này giúp văn bản.
  -p =? Bộ nhớ cache gói.
  -s =? Bộ đệm nguồn.
  -q Vô hiệu hóa chỉ báo tiến độ.
  -i Chỉ hiển thị deps quan trọng cho lệnh unmet.
  -c =? Đọc tập tin cấu hình này
  -o =? Đặt tùy chọn cấu hình tùy ý, ví dụ: -o dir :: cache = / tmp
Xem các trang hướng dẫn apt-cache (8) và apt.conf (5) để biết thêm thông tin.
**

5
TLDR; Cuối cùng tôi đã tìm thấy apt --installed listkết quả tốt nhất (như được đề xuất trong câu trả lời hàng đầu ở trên. Mặc dù apt-cache pkgnamesthoạt nhìn có vẻ khó khăn, nó liệt kê "tất cả các gói trong hệ thống" (theo văn bản trợ giúp ở trên), bao gồm các gói mà apt biết về nhưng không thực sự được cài đặt. Có một --installedtùy chọn nhưng dường như nó không hoạt động pkgnames.
sxc731

2
apt-cache pkgnames | wc -lđưa ra 55909các gói (hệ thống biết về), trong khi aptitude search '~i!~M' | wc -lcho 2160(các gói được cài đặt rõ ràng, không phụ thuộc).
knb


18

Lệnh dưới đây cũng sẽ liệt kê tất cả các gói đã cài đặt,

grep ' installed ' /var/log/dpkg.log /var/log/dpkg.log.1 | awk '{print $5}' | sort -u

.1 có ngụ ý rằng nhật ký đã được xoay, nếu đó là trường hợp thì có lẽ tốt hơn là grep /var/log/dpkg.log*để có được tất cả các bản ghi được xoay.
Steve Buzonas

17

Giúp đỡ cộng đồng wiki này - Thêm các giải pháp cập nhật.


dpkg, xargs và apt-get

Lệnh này sẽ thực hiện việc tạo một tệp văn bản chứa các gói đã cài đặt:

dpkg -l | awk  '{print $2}' > package_list.txt

Để thực hiện cài đặt hàng loạt các gói được liệt kê, bạn cần chỉnh sửa 'pack_list.txt'. Xóa các dòng lạ ở đầu tệp bằng trình chỉnh sửa văn bản. Sau đó, bạn có thể sử dụng lệnh này để cài đặt các gói từ tệp đã tạo bằng cách sử dụng:

xargs < package_list.txt apt-get install -y

apt-cache, xargs và apt-get

Chỉ sử dụng phương pháp này nếu bạn muốn tất cả các gói hiện tại được cài đặt bằng danh sách ( bao gồm cài đặt tự động, v.v.).

Xuất phản hồi của 'apt-cache pkgnames' vào một tệp chúng ta chỉ cần đặt tên là "pack_list.txt". Bạn có thể thực hiện điều này với:

apt-cache pkgnames > package_list.txt

Sau đó, khi bạn muốn cài đặt các gói từ "pack_list.txt", bạn sẽ sử dụng lệnh này:

xargs < package_list.txt apt-get install -y

apt-mark, xargs và apt-get

Chúng ta có thể sử dụng lệnh apt-mark showmanualđể đưa ra danh sách các gói được cài đặt thủ công hoặc ban đầu với Ubuntu. Chúng tôi muốn xuất tệp đó thành một tệp, chúng tôi sẽ chỉ gọi "gói-list.txt". Sử dụng lệnh này để thực hiện điều đó:

apt-mark showmanual > package-list.txt

Lệnh chúng tôi sẽ sử dụng để cài đặt các gói từ tệp "pack_list.txt" bên dưới.

xargs < package_list.txt apt-get install -y

Tiện ích di chuyển Aptik

Tiện ích để đơn giản hóa việc cài đặt lại các gói phần mềm sau khi nâng cấp / cài đặt lại các bản phân phối dựa trên Ubuntu.
[ Bảng khởi chạy | Aptik ]

Để biết thông tin về Aptik, hãy thử truy cập trang chính thức của nó và để xem ảnh chụp màn hình, hãy nhấp vào đây hoặc xem phần cuối của phần này.

Cài đặt Aptik rất đơn giản. Thực hiện theo các bước sau:

  1. Thêm PPA với:
    sudo add-apt-repository -y ppa:teejee2008/ppa

  2. Cập nhật apt với lệnh dưới đây.
    sudo apt-get update

  3. Cài đặt Aptik bằng cách sử dụng:
    sudo apt-get install aptik

Tiện ích di chuyển Aptik v16.5.2



1
Đầu ra từ apt-mark showmanualbao gồm Bash, Unity và Xorg, trong số những người khác. Họ có nên ở đó không?
wjandrea

@wjandrea đầu ra của 'apt-mark showmanual' cũng bao gồm Bash & Unity trong danh sách được tạo của tôi. Nó sẽ là bình thường vì danh sách lệnh được cài đặt thủ công và cài đặt ban đầu w / Ubuntu.
David bạn của bạn

16

Để lưu danh sách các gói đã cài đặt vào một tệp có tên installed_packages.txt, chỉ cần chạy:

dpkg-query --list >> installed_packages.txt

3

Tôi nghĩ thật thú vị khi lưu ý apt list --installedhoặc dpkg-query --listthực sự sử dụng tệp được gọi /var/lib/dpkg/statusở phía sau nơi tất cả các thông tin về các gói đều có râu.

Vì vậy, nếu bạn muốn đối phó với danh sách siêu gói chỉ cat /var/lib/dpkg/status.

Lưu ý: Không thay đổi /var/lib/dpkg/statustập tin.


3

Ngoài các gói APT , nhiều gói GUI hiện nay được phân phối dưới dạng snaps .

Nếu gói của bạn không thể được tìm thấy apt list --installed, hãy thử 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  -
...

Đó cũng là một ý tưởng tốt để thêm /snap/binvào PATH để bạn có thể bắt đầu những thứ đó từ thiết bị đầu cuối (được thực hiện tự động cho người dùng không root).


1

Gói dctrl-toolscung cấp grep-statuscông cụ để lấy danh sách các gói được đánh dấu là đã cài đặt trên hệ thống của bạn:

sudo apt install dctrl-tools

Sử dụng:

grep-status -FStatus -sPackage -n   "install ok installed"

xem : man dctrl-tools


1

https://www.rosehosting.com/blog/list-all-installed-packages-with-apt-on-ub Ubuntu / :

1. Liệt kê các gói phần mềm đã cài đặt trên Ubuntu

Để liệt kê các gói phần mềm đã cài đặt trên máy của bạn, bạn có thể sử dụng lệnh sau:

sudo apt list --installed

Đầu ra của lệnh sẽ rất giống với lệnh sau, tùy thuộc vào gói nào hiện đang được cài đặt:

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. Sử dụng chương trình LESS

Để dễ dàng đọc toàn bộ đầu ra, bạn có thể sử dụng lesschương trình.

sudo apt list --installed | less

3. Sử dụng lệnh GREP

Bạn có thể tìm kiếm một gói cụ thể thông qua đầu ra bằng grepchương trình.

sudo apt list --installed | grep -i apache

4. Liệt kê tất cả các gói bao gồm Apache

Đầu ra từ lệnh trên sẽ liệt kê tất cả các gói có apachetrong tên của chúng.

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 hỗ trợ các mẫu để khớp tên gói và tùy chọn để liệt kê (--installed)các gói đã cài đặt , (--upgradeable) gói có thể nâng cấp hoặc tất cả các (--all-versions)phiên bản gói có sẵn .

5. Sử dụng chương trình DPKG

Một cách khác mà bạn có thể sử dụng để liệt kê các gói phần mềm đã cài đặt trên VPS Ubuntu của mình là dpkglệnh.

sudo dpkg -l

Đầu ra của lệnh sẽ cung cấp cho bạn thông tin như tên của gói, phiên bản, kiến ​​trúc và mô tả ngắn về gói. Tất nhiên, bạn có thể sử dụng grepchương trình một lần nữa để tìm kiếm một gói cụ thể.

sudo dpkg -l | grep -i apache

Đầu ra sẽ trông giống như dưới đây:

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
.

Với sự cạnh tranh của hướng dẫn này, bạn đã học thành công cách liệt kê các gói đã cài đặt trong Ubuntu.


0

Có nhiều cách để làm điều đó. Trong trường hợp bạn đang sử dụng CentOS như tôi, bạn có thể sử dụng các cách sau: 1. yum list installed 2.rpm -qa

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.