Cài đặt danh sách các gói bằng apt-get


8

Tôi có một bản cài đặt mới của Lubfox và muốn cài đặt các gói từ một danh sách nhất định mà không cần phải gõ sudo apt-get install package_name. Có thể không?

Tôi không nói về các kịch bản sau khi cài đặt, đó là một cái gì đó hoàn toàn khác.


Câu trả lời:


5

Đúng, chỉ liệt kê tất cả các gói trong một dòng cách nhau bởi một khoảng trắng. ví dụ

sudo apt-get install package_name1 package_name2 package_name3 package_name4

Cảm ơn, làm cách nào tôi có thể ngăn apt-get hỏi tôi câu hỏi Y / n xem tôi có thực sự muốn cài đặt gói không?
cú pháp

2
Thêm -ytùy chọn. Nó khá dài, nhưng bạn có thể đọc man apt-getđể biết thêm thông tin.
Sparhawk

23

Nếu bạn có tệp (nói pkglist) chứa danh sách các gói sẽ được cài đặt như:

pkg1
pkg2
pkg3

hoặc là

pkg1 pkg2 pkg3

Sau đó, bạn có thể cài đặt các gói đó bằng aptcách sử dụng lệnh sau:

  1. sudo apt-get install $(cat pkglist)
  2. xargs sudo apt-get install < pkglist

Để biết thêm thông tin về phần cài đặt apt-get installtruy cập man apt-get.


2
Nếu bạn muốn cài đặt này theo bất kỳ yêu cầu nào bạn sẽ phải thực hiệnxargs sudo apt-get -y install < pkglist
Emanuel Ey

+1 Nếu bạn liệt kê một gói trên mỗi dòng, tệp phải sử dụng kết thúc dòng Unix hoặc apt-get sẽ thất bại.
Rath

Bạn cũng có thể truyền tên tệp trực tiếp cho xargs với tùy chọn -a hoặc --arg-file : xargs -a pkglist sudo apt install.
Ryan

1

Đặt tất cả các tên gói vào một tệp (một tên gói cho mỗi dòng). Và sau đó chạy lệnh dưới đây để cài đặt các gói đã cho tự động.

while read -r line; do sudo apt-get -y install "$line"; done < /path/to/the/packages/file

Thí dụ:

$ cat file
vlc
firefox
$ while read -r line; do sudo apt-get install "$line"; done < file
[sudo] password for avinash: 
Reading package lists... Done
Building dependency tree       
Reading state information... Done
vlc is already the newest version.
0 upgraded, 0 newly installed, 0 to remove and 499 not upgraded.
Reading package lists... Done
Building dependency tree       
Reading state information... Done
Suggested packages:
  ttf-lyx
The following packages will be upgraded:
  firefox
1 upgraded, 0 newly installed, 0 to remove and 498 not upgraded.
Need to get 35.8 MB of archives.
After this operation, 24.3 MB of additional disk space will be used.
Get:1 http://ftp.cuhk.edu.hk/pub/Linux/ubuntu/ trusty-updates/main firefox amd64 33.0+build2-0ubuntu0.14.04.1 [35.8 MB]
0% [1 firefox 67.0 kB/35.8 MB 0%]                           10.4 kB/s 57min 16s^

Điều này sẽ không chậm hơn nhiều so với việc chỉ đặt các gói trên một dòng, vì nó phải đọc danh sách gói và xây dựng cây phụ thuộc, v.v. cho mỗi gói, thay vì thực hiện một lần?
Sparhawk
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.