cài đặt các gói debian tương tự trên hệ thống khác


13

Làm cách nào để xuất danh sách các gói Debian đã cài đặt trên một hệ thống, sau đó cài đặt các gói tương tự đó trên một hệ thống mới?

Câu trả lời:


17

Để sao lưu:

sudo dpkg --get-selections > /tmp/dpkglist.txt

Để khôi phục lại:

sudo dpkg --set-selections < /tmp/dpkglist.txt
sudo apt-get -y update
sudo apt-get dselect-upgrade

Cũng xem câu hỏi này để biết thêm tùy chọn và thông tin: Ubuntu, cách thiết lập một máy mới như máy hiện có

Tôi có các hoạt động trên trong một cronjob hàng ngày để kiểm tra dpgklist vào SVN như một phần của kho máy chủ của chúng tôi. Điều này sẽ cho phép bạn giữ một kho lưu trữ chính xác hợp lý các gói đã cài đặt trên các máy chủ của mình và dễ dàng thực hiện một sự khác biệt nhanh chóng để xem liệu máy chủ có thiếu một gói cụ thể nào không.


1
Tôi nhận được thông báo lỗi này cho mỗi dòng đầu vào: dpkg: warning: package not in status nor available database at line ...
danorton

cách này không hoạt động vì một vài phiên bản Ubuntu
QkiZ

10

aptitudecũng đáp ứng usecase này và nó lưu giữ thông tin về các gói "được cài đặt tự động" mà các phương thức khác không có. Chạy các mục sau trên máy tham chiếu:

aptitude search -F '%p' '~i!~M' > package_list 

Sao chép package_listvào máy khác và chạy

xargs aptitude --schedule-only install < package_list; aptitude install; 

Chỉ là một lưu ý nhỏ. Theo hướng dẫn tham khảo aptitude, trường "gói" theo mặc định là "có thể mở rộng", do đó aptitude search -F '%p' '~i!~M' > package_listcũng sẽ hoạt động tốt.
chronos

Về sao lưu gói: xem cắm cho deborphan@ bogdan.org.ua/2013/10/18/ từ
TomRoche

[insert your own linebreaks, since http://serverfault.com/editing-help#linebreaks lies] Về khôi phục gói: điều này sẽ cần phải được thực hiện như root, không? Nếu vậy, <br/> Lệnh xargstrong khôi phục của bạn = xargs aptitude - chỉ cài đặt <gói_list; cài đặt năng khiếu; làm cho tôi muốn biết, <br/> 1. Tại sao aptitudecần xargs? dpkg --set-selectionskhông. <br/> 2. Giả sử aptitude không cần xargs, nơi để đặt một hoặc nhiều sudos trong dòng lệnh khôi phục của bạn? Hoặc nếu không thì root để chạy dòng đó, giả sử đó là cần thiết.
TomRoche

0

Đó là một ý tưởng tốt và bạn cũng có thể thiết lập một máy chủ với apt-proxy nếu bạn tạo thói quen này.


Sau khi chơi xung quanh với một số proxy cho apt, cuối cùng tôi quyết định chọn apt-cacher-ng. apt-cacher-ng rất đơn giản để thiết lập và từ một số tài khoản, nó dường như mạnh hơn so với apt-proxy gốc. Mỗi người có sở thích riêng của họ mặc dù. unix-ag.uni-kl.de/~bloch/acng
lỗi

Phiếu bầu của tôi là cho khoảng, đó là người duy nhất không phải là một loại điên rồ.
womble

Thú vị ... Tôi thực sự chưa thử bất kỳ lựa chọn thay thế nào.

0

câu trả lời lỗi chỉ hoạt động với tôi sau khi chạy một lệnh khác theo http://rayslinux.blogspot.de/2012/10/ubuntu-1210-dpkg-warning-package-not-in.html

sudo apt-get install dselect sudo dselect access sudo dselect update

Trước đó chạy

sudo apt-get dselect-upgrade

chỉ trở về

[...]
dpkg: warning: gói không có trong cơ sở dữ liệu ở dòng 302: xfonts-utils
dpkg: warning: tìm thấy các gói không xác định; điều này có thể có nghĩa là cơ sở dữ liệu khả dụng đã lỗi thời và cần được cập nhật thông qua phương thức frontend
pi @ FHEM-new: / tmp $ sudo apt-get dselect-nâng cấp
danh sách gói ... Xong
Xây dựng cây phụ thuộc
Đọc thông tin trạng thái ... Xong
0 nâng cấp, 0 mới cài đặt, 0 để xóa và 0 không nâng cấp.

Tôi đã cố gắng cài đặt các gói tương tự từ Raspberry Pi cũ của tôi (chạy Raspbian GNU / Linux 7 (wheezy)) trên Raspberry mới của tôi (Raspbian GNU / Linux 8 (jessie)).

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.