Sử dụng tệp để cài đặt các gói với apt-get


9

Tôi thấy rất thuận tiện khi cài đặt các gói trên một máy mới thông qua các tệp gói như brewfiles, caskfiles, dockerfiles, pack.json, v.v.

Có cách nào khác cho apt-get không vì tôi vẫn chỉ sử dụng nó
thông qua dòng lệnh với

apt-get install pkg1 pkg2 pkg3…

?


2
Có cần nó không? Bạn có thể sử dụng xargs: xargs -P1 apt-get install < list-of-packages.
muru

@muru tôi thực sự không biết xargs hoạt động như thế nào (đọc man bây giờ) nhưng tôi không nghĩ đó là một giải pháp để có các gói tập trung trong một tệp? Tôi vẫn sẽ phải liệt kê các tệp theo cách thủ công sau khi <kể từ khi sử dụng tệp .txt với ba gói trong đó không hoạt động với lệnh này (được thử nghiệm trên Debian)
thibmaek

1
đó <là chuyển hướng vỏ. Đối với nhiều tệp, sử dụng:cat file1 file2 .. | xargs -P1 apt-get install
muru

Câu trả lời:


13

Như được chỉ định trong các nhận xét về câu hỏi của bạn, bạn có thể tạo một tệp văn bản đơn giản, được gọi packages.txt, liệt kê các gói để cài đặt:

iceweasel
terminator
vim

và sau đó chạy lệnh sau:

cat packages.txt | xargs sudo apt-get install

xargs được sử dụng để chuyển tên gói từ packages.txttệp vào dòng lệnh. Từ trang người đàn ông:

xargs đọc các mục từ đầu vào tiêu chuẩn, được phân tách bằng khoảng trắng (có thể được bảo vệ bằng dấu ngoặc kép hoặc dấu ngoặc đơn hoặc dấu gạch chéo ngược) hoặc dòng mới và thực thi lệnh (mặc định là / bin / echo) một hoặc nhiều lần với bất kỳ đối số ban đầu nào được theo sau bởi các mục được đọc từ đầu vào tiêu chuẩn.


9

Cải thiện một chút về câu trả lời của @ ortomala-lokni, bạn có thể cung cấp tệp trực tiếp làm đối số cho xargs:

xargs -a packages.txt sudo apt-get install

Tùy chọn bạn có thể cung cấp cho xargscác -rtùy chọn để ngăn chặn các apt-getcuộc gọi từ được chạy ở tất cả nếu bạn packages.txtkhông chứa bất kỳ ký tự không phải khoảng trắng.


Đây có thể là một đặc thù của Alpine / BusyBox, nhưng đối số -akhông được ghi lại và dường như không hoạt động ở đó : xargs: unrecognized option: a. Đầu ra phiên bản của tôi được hiển thị làBusyBox v1.27.2 (2017-12-12 10:41:50 GMT) multi-call binary.
Taylor Edmiston

Sử dụng câu trả lời được chấp nhận dẫn đến truy vấn Y / n bị hủy bỏ của apt. Sử dụng này làm việc. Cảm ơn!
Ok Letsdothis

1

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

nó hoạt động theo cả hai cách đối với tôi, đảm bảo bạn có xargs mới nhất hoặc kiểm tra xem nó có tùy chọn -a hay không với tùy chọn trợ giúp (xargs --help)


5
Câu trả lời này có vấn đề về khả năng truy cập: Văn bản trong hình ảnh, người mù không thể đọc được.
ctrl-alt-delor

0

Cũng như các giải pháp kịch bản tổng quát hơn, bạn có thể tạo gói gỡ lỗi.

bạn sẽ cần

  • equivs-build, để xây dựng các cuộc tranh luận. Các cuộc tranh luận chỉ có thể chứa phụ thuộc. Đây là một trình xây dựng deb đơn giản hóa.
  • gdebi để cài đặt deb.

Điều này sẽ hoạt động trên tất cả các hệ thống dựa trên debian (hệ thống sử dụng tập tin apt / deb).

Ưu điểm của việc thực hiện với các tệp deb, trái ngược với tập lệnh shell, là việc hoàn tác dễ dàng hơn nhiều, bạn có thể gỡ cài đặt một deb, hoặc cấu hình lại một deb và cài đặt lại nó (điều này sẽ khiến các tệp bị thêm và xóa).

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.