Làm cách nào để cài đặt tệp .deb qua dòng lệnh?


Câu trả lời:


1244

Các gói được cài đặt thủ công thông qua dpkglệnh (Hệ thống quản lý gói Debian). dpkglà phần phụ trợ cho các lệnh như apt-getaptitude, đến lượt nó là phần phụ trợ cho các ứng dụng cài đặt GUI như Trung tâm phần mềm và Synaptic.

Một cái gì đó dọc theo dòng:

dpkg-> apt-get, aptitude-> Synaptic, Trung tâm phần mềm

Nhưng tất nhiên, cách dễ nhất để cài đặt gói là, trước tiên, các ứng dụng GUI (Synaptic, Software Center, v.v.), tiếp theo là các lệnh đầu cuối apt-getaptitudethêm cách tiếp cận thân thiện với người dùng vào dpkg phụ trợ, bao gồm nhưng không giới hạn ở các phụ thuộc đóng gói, kiểm soát những gì được cài đặt, cần cập nhật, không cài đặt, các gói bị hỏng, v.v. Cuối cùng, dpkglệnh là cơ sở cho tất cả chúng.

Vì dpkg là cơ sở, bạn có thể sử dụng nó để cài đặt đóng gói trực tiếp từ dòng lệnh.

Cài đặt một gói

sudo dpkg -i DEB_PACKAGE

Ví dụ nếu tập tin gói được gọi askubuntu_2.0.debthì bạn nên làm sudo dpkg -i askubuntu_2.0.deb. Nếu dpkgbáo cáo lỗi do sự cố phụ thuộc, bạn có thể chạy sudo apt-get install -fđể tải xuống các phụ thuộc bị thiếu và định cấu hình mọi thứ. Nếu điều đó báo cáo lỗi, bạn sẽ phải tự mình phân loại các phụ thuộc bằng cách làm theo ví dụ: Làm thế nào để tôi giải quyết các phụ thuộc chưa được đáp ứng sau khi thêm PPA? .

Hủy bỏ một gói

sudo dpkg -r PACKAGE_NAME

Ví dụ nếu gói được gọi askubuntuthì bạn nên làm sudo dpkg -r askubuntu.

Cấu hình lại một gói hiện có

sudo dpkg-reconfigure PACKAGE_NAME

Điều này rất hữu ích khi bạn cần cấu hình lại một cái gì đó liên quan đến gói đã nói. Một số ví dụ hữu ích đó là keyboard-configurationkhi bạn muốn bật Ctrl+ Alt+ Backspaceđể đặt lại máy chủ X, vì vậy bạn sẽ làm như sau:

sudo dpkg-reconfigure keyboard-configuration

Một điều tuyệt vời nữa là khi bạn cần đặt Timezone cho máy chủ hoặc máy tính thử nghiệm cục bộ của mình, vì vậy bạn sử dụng tzdatagói:

sudo dpkg-reconfigure tzdata

4
Thông tin tuyệt vời, đã phải tìm một số cách để cài đặt traceroute để giúp gỡ lỗi tại sao máy của tôi không kết nối với internet :)
Jason

23
Cũng hữu ích để lưu ý rằng một khi các chương trình đã cài đặt thường được tìm thấy trong / usr / bin, được đặt tên theo những gì đã được giải mã.
Chris Moschini

Nếu tôi chạy sudo apt-get install texlive-latex-base, nó đã thất bại trong nhiều tháng với "Hash Sum không khớp". Tôi có thể tải xuống tệp .deb từ http://gb.archive.ubuntu.com/ubuntu/pool/main/t/texlive-base/texlive-latex-base-doc_2015.20150625-1ubuntu1_all.deb. Nếu tôi cài đặt nó bằng dpkg, thì sau đó nó sẽ được nhận ra (và cập nhật) bởi apt-get.
dùng643722

1
anh bạn thật tuyệt vời rất hiếm khi tôi thấy các câu trả lời linux rất chi tiết .. khi nói đến câu hỏi của người mới, nó rất quan trọng !! cảm ơn
Elad Katz

1
Nếu việc cài đặt thông qua aptitudehoặc apt-get(hoặc đơn giản apt) dễ dàng hơn và tốt hơn , tại sao không có ví dụ cho các lệnh này được đưa ra ở đây?
trực giác

161

Các gói Debian (.deb) là các gói được sử dụng trong Ubuntu. Bạn có thể cài đặt bất kỳ gói .deb nào trong hệ thống của bạn. Các tệp .deb thường có thể được cài đặt từ trình quản lý tệp của bạn (Nautilus) chỉ bằng cách nhấp vào chúng, vì các liên kết tệp với trình cài đặt mặc định đã được đặt trong Ubuntu. Các hướng dẫn này dành cho những người muốn cài đặt các gói từ thiết bị đầu cuối dòng lệnh (Terminal).

Để cài đặt gói Debian ( Ubuntu ) đã tải xuống (.deb): Mở Terminal và gõ

sudo dpkg -i packagename.deb

Để xóa gói Debian (Ubuntu) (.deb):

sudo dpkg -r packagename

Để cấu hình lại / Sửa chữa gói Debian (Ubuntu) đã cài đặt (.deb):

sudo dpkg-reconfigure packagename

105

Yêu thích của tôi là GDebi, có sẵn từ cả thiết bị đầu cuối / vỏ hoặc đồ họa.

chụp màn hình

Tôi thường liên kết .debcác tệp với GDebi vì nó nhanh và hiệu quả - đặc biệt là so với Trung tâm phần mềm Ubuntu. Một trong những tính năng chính của GDebi là nó giải quyết các phụ thuộc và cài đặt chúng.

Đối với dòng lệnh chạy sudo gdebi <package.deb>để cài đặt một tệp gỡ lỗi.


5
nó kiểm tra các phụ thuộc trước khi cài đặt, thx !!
Sức mạnh Bảo Bình

Gdebi thậm chí có thể tải xuống các phụ thuộc hoặc chúng ta phải tải chúng bằng tay ?? @Pandya
Jasser

Có lẽ tốt hơn cho những người chuyển đến từ nền tảng không phải là Linux.
Nisheet

+1 cho "nó giải quyết các phụ thuộc và cài đặt chúng" là chìa khóa.
Revetahw

85

Bạn đang tìm kiếm tất cả các lệnh dpkg ? nhấp vào liên kết này để có một đọc.

15 lệnh dpkg để quản lý máy chủ Linux dựa trên Debian

Lệnh DPKG

Có hai hành động, chúng là dpkg-querydpkg-deb.

Cài đặt một gói

# sudo dpkg -i {package_name}    
# sudo dpkg -i skype-ubuntu-precise_4.2.0.11-1_i386.deb

Hủy bỏ một gói

# sudo dpkg -r {package_name}
# sudo dpkg -r vlc

Hủy bỏ một gói và các tập tin cấu hình của nó

# sudo dpkg -P {package_name}
# sudo dpkg -P vlc

Liệt kê tất cả các gói cài đặt.

Bạn có thể chuyển lệnh sang less(máy nhắn tin) để bạn có thể dễ dàng cuộn nội dung hơn:

# dpkg -l | less

Kiểm tra xem gói đã được cài đặt hay chưa

# dpkg -l {package_name}
# dpkg -l vlc

Kiểm tra xem gói đã được cài đặt hay chưa và nếu có, hãy khởi chạy nó:

# dpkg -l | vlc

Xem một gói được cài đặt hay không

Và điều này sẽ hiển thị vị trí nơi gói sẽ được cài đặt. Ở đây -S(vốn S) để tìm kiếm xem gói đã được cài đặt hay chưa.

# sudo dpkg -S {package_name}
# sudo dpkg -S skype

Cài đặt gói * .deb từ một vị trí đã chỉ định

Đây -Rlà đệ quy. (Xử lý đệ quy tất cả các tệp thông thường khớp với mẫu *.debđược tìm thấy tại các thư mục được chỉ định và tất cả các thư mục con của nó).

# sudo dpkg -R --install {package_location}
# sudo dpkg -R --install /home/sysadmin/soft

Hiển thị chi tiết gói

Ở đây -p(chữ thường p) sẽ hiển thị thông tin gói:

# dpkg -p {package_name}
# dpkg -p apache2

Xem nội dung của một gói

Sử dụng -c(chữ thường c) để hiển thị nội dung:

# sudo dpkg -c {package_name}
# sudo dpkg -c skype-ubuntu-precise_4.2.0.11-1_i386.deb

Giải nén *.debtập tin gói

Sử dụng -x(chữ thường x) để giải nén:

# dpkg -x {package_name} {location_were_to_extract}
# dpkg -x libqt4-phonon_4.6.3-4+squeeze1_i386.deb /home/sysadmin/

Trích xuất và hiển thị tên tệp có trong một gói

Sử dụng -X(chữ hoa X) để hiển thị nội dung với trích xuất.

# dpkg -X {package_name} {location_were_to_extract}
# dpkg -X libqt4-phonon_4.6.3-4+squeeze1_i386.deb /home/sysadmin/

Hiển thị thông tin về một gói

Ở đây -Ilà viết tắt của thông tin:

# dpkg -I {package_name}
# dpkg -I libqt4-phonon_4.6.3-4+squeeze1_i386.deb

Cấu hình lại một gói đã được cài đặt

dpkg-reconfigurecấu hình lại các gói sau khi chúng đã được cài đặt. Truyền cho nó tên (các) gói hoặc gói để cấu hình lại. Nó sẽ hỏi các câu hỏi cấu hình, giống như khi gói được cài đặt lần đầu tiên.

# dpkg-reconfigure postfix

Điều này sẽ cấu hình lại postfixgiống như khi bạn cài đặt lần đầu tiên.

Cần biết thêm về dpkgcác lệnh? Hãy xem trang hướng dẫn:

# man dpkg

5
" Kiểm tra xem gói đã được cài đặt hay chưa, và nếu có, hãy khởi chạy nó:# dpkg -l | vlc " - điều này sẽ chỉ dẫn một danh sách các gói đến vlc, với kết quả không thể đoán trước nếu được cài đặt; và không tốt hơn là chỉ gõvlc
Xen2050

51

Mặc dù dpkg -ithực sự cài đặt gói, nó không thực hiện bất kỳ độ phân giải phụ thuộc tự động nào, trong khi đó, có hai lựa chọn thay thế khác, sử dụng gdebi hoặc công cụ apt-get. Để sử dụng sau chỉ cần sử dụng:

sudo apt-get install /path/to/package.deb

Ngay cả khi bạn đang ở trong thư mục với gói bạn cần đưa ra một đường dẫn sử dụng ./khi bắt đầu:

sudo apt-get install ./package.deb

13
Đây có lẽ là câu trả lời tốt nhất. aptsẽ ngăn bạn phá vỡ hệ thống của bạn nếu bạn không có sự phụ thuộc chính xác.
mlainz

Lệnh này dường như chọn tất cả các gói hiện có.
Hibou57

@ Hibou57 không thể có bất kỳ khoảng trống nào trong tên gói.
Braiam

26

Một mẹo hữu ích khi cài đặt một chương trình như Libreoffice có nhiều tệp .deb trong một thư mục là sử dụng.

sudo dpkg -i *.deb

2
Không bao giờ sử dụng lệnh này. Bạn phải xóa thủ công tất cả các lỗi nếu muốn xóa gói đó. sudo apt remove example, sudo apt autoremovesudo dpkg -r *.debkhông hoạt động.
noone

12

Các gdebigiải pháp dòng lệnh

Đây là cách tốt nhất để cài đặt tệp .deb trên Ubuntu trên dòng lệnh:

sudo gdebi skype.deb

Nếu bạn chưa gdebicài đặt, hãy cài đặt nó bằng sudo apt install gdebi-core.

Tại sao gdebi?

gdebisẽ tìm kiếm tất cả các phụ thuộc của .debtệp và sẽ cài đặt chúng trước khi thử cài đặt .debtệp. Tôi thấy điều này thích hơn nhiều sudo dpkg -i skype.deb && sudo apt install -f. Điều thứ hai là quá háo hức để loại bỏ sự phụ thuộc trong các tình huống nhất định. Chẳng hạn, khi tôi cố cài đặt Skype, nó đã cố xóa các gói 96 (!), Bao gồm các gói như compizunity! gdebiđưa ra một thông báo lỗi rõ ràng hơn nhiều:

$ sudo gdebi skype.deb
Cannot install 'libqtgui:i386'

(Nhân tiện, đây là giải pháp cho vấn đề cụ thể đó.)


Askubfox.com/a/170557/158442 không nói gdebicó thể được sử dụng từ dòng lệnh
muru

@muru Vâng, nhưng nó rất dễ bị bỏ lỡ vì ảnh chụp màn hình. Ngoài ra, nó không giải thích các vấn đề vớidpkg -i skype.deb
Flimm

11

Tạo trình cài đặt tập lệnh của riêng bạn debInstallernhư sau:

#!/bin/bash
dpkg -i "$@"
apt-get --yes --fix-broken install

Làm cho tập lệnh thực thi với

chmod +x debInstaller

Sau đó di chuyển nó đến một số thư mục trong PATH của bạn hoặc thêm thư mục hiện tại vào PATH của bạn.

Tôi sẽ chuyển nó sang / usr / bin

sudo cp debInstaller /usr/bin

Bây giờ bạn có thể cài đặt bất kỳ .debgói nào bằng lệnh:

sudo debInstaller some-package.deb

Giá trị gia tăng của phương pháp này là giải quyết vấn đề phụ thuộc, vì chủ yếu là bạn sẽ phải đối mặt với một số vấn đề khi bạn cài đặt một .deb với dpkg -ido lỗi phụ thuộc, vì vậy bạn phải sử dụng apt-get install -fđể giải quyết nó, kịch bản này sẽ làm công việc cho bạn, nhưng Ở đây tôi đã sử dụng apt-get --yes --fix-broken installđể tự động giải quyết các lỗi này mà không cần sự can thiệp của người dùng.


10

Để cài đặt các tệp deb, hãy mở Terminal và gõ:

sudo dpkg -i file.deb
sudo apt-get install -f
sudo dpkg -i file.deb   

Dòng thứ hai là sửa các gói bị hỏng nếu cài đặt thất bại, sau đó, cài đặt lại để hoàn tất cài đặt.

Một cách tiếp cận khác là sử dụng gdebicông cụ để cài đặt các tệp deb.


0

Có nhiều công cụ để cài đặt gói deb, cá nhân tôi sử dụng trình cài đặt gói tích hợp dpkg

Nếu bạn đã đăng nhập bằng root, hãy thay đổi thư mục thành vị trí của gói deb

dpkg -i package_name.deb

nếu bạn không đăng nhập bằng root

sudo dpkg -i package_name.deb

Để đảm bảo gói được cài đặt chính xác và không có bất kỳ phụ thuộc bị hỏng

sudo apt-get check

Nếu có bất kỳ phụ thuộc bị hỏng

sudo apt-get -f install
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.