Các lệnh apt (dpkg) hữu ích [đã đóng]


9

Vui lòng gửi các lệnh apt ít được biết đến nhưng hữu ích của bạn liên quan đến apt- *, dpkg hoặc apt.


7
Đây thực sự không phải là một câu hỏi.
Martin Owens -doctormo-

Câu trả lời:


7

Một số lệnh tôi thường sử dụng:

để xem phụ thuộc và phụ thuộc ngược:

apt-cache [--important] [--installed] [--recurse] depends $package
apt-cache rdepends $package

Để xóa gói, tất cả các gói tự động và tất cả các tệp cấu hình có liên quan:

sudo apt-get --purge --auto-remove purge $package

Để xem các apttùy chọn cấu hình thực tế :

apt-config dump | less

Để sửa đổi một tùy chọn trên dòng lệnh

$ apt-config dump | grep -i recommend
APT::Install-Recommends "1";
$ sudo apt-get -o APT::Install-Recommends="0" install $package

Đây chỉ là và ví dụ về việc chỉ định các tùy chọn APT thông qua dòng lệnh, để tránh cài đặt các gói được đề xuất, bạn có thể sử dụng:

sudo apt-get --no-install-recommends $package

Để xem tất cả các gói địa phương / lỗi thời:

aptitude search ~o

Để xem các gói bị loại bỏ với cấu hình còn lại:

aptitude search ~c

và để loại bỏ chúng

sudo aptitude purge ~c

Để có được danh sách tất cả các gói đã cài đặt ( dpkg -lđôi khi có thể cung cấp đầu ra các cột bị cắt ngắn)

dpkg --get-selections | awk '{ print $1 }'

hoặc là

dpkg-query -Wf '${Package}\n'  # other fields available, see man page

Để tháo gỡ, sửa đổi sau đó xáo trộn một gói

dpkg-deb -x file.deb ./dir
cd dir 
dpkg-deb -e ../file.deb
# apply your modification, then... 
cd ..
dpkg-deb -b dir file-new.deb

4

Hai cái mà tôi sử dụng rất nhiều là: -

apt-get autoremove <packagename>

Cái nào sẽ loại bỏ gói và bất kỳ phụ thuộc không sử dụng nào, rất hữu ích nếu bạn dùng thử một ứng dụng, sau đó quyết định rằng bạn không cần nó và cũng muốn loại bỏ hành trình này.

dpkg -S /path/to/file

Nó cho tôi biết gói nào đã được cài đặt.

Cuối cùng, thêm một ..

dpkg -l <packagename> | grep ^ii

Liệt kê các gói nhưng chỉ những gói có trạng thái ii có nghĩa là chúng đã được cài đặt, vì vậy nó sẽ không hiển thị những thứ tôi đã xóa.

Nếu bạn muốn lấy tên gói cho một tệp chưa được cài đặt ( dpkg -Snhưng đối với các gói chưa được cài đặt), hãy cài đặt apt-filevà chạy:

apt-file search /path/to/file

Tôi thấy nó hữu ích khi sử dụng whichcùng với dpkg -S. ví dụ: đối với các tệp thực thi sống trong các gói có tên khác nhau, như:dpkg -S `which uname`
Benjamin Rubin

Ồ, vâng, đó cũng là một điều tốt.
popey

3

Xem ChangeLog của gói

$ aptitude changelog <pkgname>

Thí dụ:

$ aptitude changelog sudo
sudo (1.7.0-1ubuntu2.4) karmic-security; urgency=low

  * SECURITY UPDATE: properly handle multiple PATH variables when using
    secure_path in env.c
    - Adapted http://www.sudo.ws/repos/sudo/raw-rev/a09c6812eaec
    - CVE-2010-1646
...

2
Kể từ Ubuntu 11.04 Natty, apt-get changelog sudocũng hoạt động.
Lekensteyn

3

Cài đặt apt-file, sau đó chạy sudo apt-file update. Bây giờ bạn có thể tìm kiếm các tệp trong các gói mà bạn thậm chí chưa cài đặt.

Cũng tiện dụng nếu bạn cần biết thông tin về các gói trong các phiên bản khác của Ubuntu là rmadison, nằm trong gói devscripts. Cung cấp cho nó một tên gói làm đối số và nó sẽ cho bạn biết phiên bản nào của gói đó tồn tại trong mọi phiên bản Ubuntu hiện tại và phần kho lưu trữ mà gói đó nằm trong.

Thí dụ:

[bnrubin@server:~/]$ rmadison cowsay
    cowsay |     3.03-8 | dapper/universe | source, all
    cowsay |     3.03-9 | hardy/universe | source, all
    cowsay |   3.03-9.2 | jaunty/universe | source, all
    cowsay |   3.03-9.2 | karmic/universe | source, all
    cowsay |   3.03-9.2 | lucid/universe | source, all
    cowsay | 3.03+dfsg1-2 | maverick/universe | source, all
    cowsay | 3.03+dfsg1-2 | natty/universe | source, all

apt-filebây giờ có thể quản lý cơ sở dữ liệu của người dùng, do đó bạn không cần phải root update.
enzotib

apt-file là khá tốt đẹp. cám ơn vì đã chia sẻ.
Gôdel

1

Để có được danh sách lệnh bắt đầu với 'apt-' bạn làm như sau. mở một thiết bị đầu cuối và gõ 'apt-' và nhấn phím TAB hai lần, điều này sẽ liệt kê tất cả các lệnh bắt đầu bằng 'apt-'.

Đầu ra mẫu:

apt-add-repository    apt-extracttemplates  apt-key
apt-cache             apt-file              apt-mark
apt-cdrom             apt-ftparchive        apt-sortpkgs
apt-config            apt-get 

Để có được thông tin chi tiết, bạn có thể kiểm tra trang man của lệnh đó

ví dụ: man apt-get


1

Tôi thích nghĩ về ba loại gói khác nhau:

  • Gói hệ thống (gói thiết yếu hoặc gói tiêu chuẩn ưu tiên trở lên)
  • Gói người dùng (cài đặt thủ công các gói ưu tiên tùy chọn hoặc thêm)
  • Phụ thuộc và khuyến nghị (các gói được cài đặt tự động / mọi thứ không phải là hệ thống hoặc gói người dùng)

Để hiển thị tất cả "gói hệ thống", bạn có thể sử dụng

aptitude search '(~pstandard|~pimportant|~prequired|~E)'

Tôi muốn có tất cả chúng được cài đặt và đánh dấu là cài đặt thủ công.

aptitude install '(~pstandard|~pimportant|~prequired|~E)!~i'
aptitude unmarkauto '(~pstandard|~pimportant|~prequired|~E)~i~M'

Để hiển thị tất cả "gói người dùng" sử dụng

aptitude search '~i!~M!(~pstandard|~pimportant|~prequired|~E)'

Trong danh sách này chỉ nên có các gói mà bạn biết rằng bạn muốn. Tất cả các gói khác có thể chỉ là phụ thuộc hoặc đề xuất của các gói khác, bạn có thể đánh dấu chúng là cài đặt tự động

aptitude markauto libsomething

Hãy xem Tham khảo thuật ngữ tìm kiếm của aptitude và gói
thiết yếu, bắt buộc, quan trọng, tiêu chuẩn, tùy chọn hoặc bổ sung là gì? để biết thông tin cơ bản.


0
  • Nâng cấp các gói sẽ được giữ lại vì chúng sẽ xóa các gói khác hoặc vì đó là nâng cấp kernel:

    sudo apt-get dist-upgrade
    
  • Lọc một gói và cấu hình của nó.

    sudo apt-get purge package
    
  • Hiển thị chi tiết của gói như đã biết trong cơ sở dữ liệu gói, bao gồm phần, phiên bản, phụ thuộc, bảo trì và mô tả.

    apt-cache show package
    
  • Liệt kê các tệp trong gói đã cài đặt

    dpkg -L pkg
    
  • Nâng cấp tất cả các gói

    sudo apt-get upgrade
    

-2
dpkg -i --force-architecture something.i386.deb

Để cài đặt một số bản sửa lỗi i386 trên amd64.

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.