Giữ lại các gói từ bản cập nhật mà không có APT Pin?


14

Tôi biết về các gói ghim với Apt. Đó không phải là điều tôi muốn làm. Các câu hỏi khác đã được trả lời bằng cách sử dụng ghim hoặc bằng cách sử dụng ghim tạm thời. Tôi không muốn làm điều này.

Những gì tôi muốn làm là giữ các gói trở lại giống như cách kernel đã được:

# apt-get upgrade
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following packages have been kept back:
  linux-generic-pae linux-headers-generic-pae linux-image-generic-pae
The following packages will be upgraded:

Tôi muốn thêm tomcat-*mysql-*sun-*vào danh sách này. Trong quá khứ, có một tham số cấu hình để làm điều này. Tôi luôn nghĩ rằng nó là một cái gì đó giống như Apt::Get::HoldPkgshay Apt::HoldPkgsnhưng tôi không thể tìm thấy nó.

Tôi muốn có các gói này được giữ từ các bản cập nhật cho đến khi tôi đặc biệt yêu cầu chúng với một apt-get install.

Tôi tìm thấy apt-getcấu hình Apt::NeverAutoRemove. Điều này sẽ làm những gì tôi muốn?

Câu hỏi đã thêm: Tôi nhận thấy rằng Apt::NeverAutoRemoveApt::Never-MarkAuto-Sections(trong số những người khác) không được ghi lại cho đến khi tôi có thể thấy. Họ không có trong các trang. Không phải là aptitude::Keep-Unused-Patternaptitude::Get-Root-Command.

Có tài liệu toàn diện và đầy đủ cho apt.conf?


Ví dụ kernel phụ thuộc vào sự khác biệt giữa upgradedist-upgradekhông thể được cấu hình trên cơ sở mỗi gói.
enzotib

Vụ nổ! (xin lỗi ...) Tôi vẫn tin rằng nó từng có thể cấu hình được; bây giờ sẽ không làm tôi ngạc nhiên vì nó đã lỗi thời.
Mei

1
Tôi không nói là không thể thực hiện được, tôi đã nói ví dụ kernel là không phù hợp, vì thực tế là "các gói đã được giữ lại" không phụ thuộc vào bất kỳ cấu hình nào, mà từ ngữ nghĩa của upgradelệnh apt-get.
enzotib

Câu trả lời này Askubfox.com/questions/18654/ dường như không sử dụng pinnig.
enzotib

Tôi đã nhìn thấy những cái đó; Tôi đã hy vọng cho một tham số apt.conf - một hy vọng vô ích, bây giờ nó xuất hiện. Tôi đang nghiêng về việc sử dụng dpkg --set-selections. Tôi tìm thấy một câu hỏi gợi ý việc sử dụng dpkg và việc sử dụng năng khiếu không tương đương (nghĩa là dpkg không tôn trọng cài đặt năng khiếu).
Mei

Câu trả lời:


15

Câu trả lời là sử dụng dpkg --set-selections. Nếu bạn chạy lệnh, dpkg --get-selectionsbạn có thể thấy những gì đã được đặt:

$ dpkg --get-selections | head
acct                                            install
adduser                                         install
apparmor                                        install
apparmor-utils                                  install
apt                                             install
apt-transport-https                             install
apt-utils                                       install
aptitude                                        install
at                                              install
auditd                                          install

Xem xét, trong trường hợp này, gói dnsutils:

$ sudo apt-get upgrade
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following packages will be upgraded:
  bind9-host dnsutils libbind9-60 libdns64 libisc60 libisccc60 libisccfg60 liblwres60
8 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
Need to get 1,257kB of archives.
After this operation, 0B of additional disk space will be used.
Do you want to continue [Y/n]? n
Abort.

Bây giờ hãy thay đổi nó - đặt gói chờ:

$ echo dnsutils hold | sudo dpkg --set-selections

Kiểm tra kết quả:

$ dpkg --get-selections | grep dnsutils
dnsutils                                        hold

Hãy thử cập nhật lại:

$ sudo apt-get upgrade
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following packages have been kept back:
  bind9-host dnsutils libbind9-60 libdns64 libisc60 libisccfg60 liblwres60
The following packages will be upgraded:
  libisccc60
1 upgraded, 0 newly installed, 0 to remove and 7 not upgraded.
Need to get 29.9kB of archives.
After this operation, 0B of additional disk space will be used.
Do you want to continue [Y/n]? n
Abort.

Bây giờ, dnsutils- và các gói liên quan của nó - đang bị giữ lại, giống như chúng ta mong muốn.


Bạn nên xem xét để cung cấp một số thông tin về việc sử dụng roottài khoản của bạn .
enzotib

Đăng nhập bằng root chắc chắn dễ dàng hơn; tuy nhiên, sử dụng sudoở những nơi thích hợp là thực hành tốt hơn. Trong các ví dụ, các lệnh apt-get upgradedpkg --set-selectionssẽ yêu cầu quyền truy cập root - do đó, sudonên được sử dụng cho các lệnh này. Những người khác nên ổn như vậy.
Mei

Tôi biết hoàn toàn cách thức và thời điểm sử dụng sudo, tôi chỉ đề nghị làm rõ điều đó trong câu trả lời cho người mới bắt đầu.
enzotib

Đó là những gì tôi nghĩ bạn có nghĩa. Tôi đã làm rõ nó trong các ý kiến ​​... Tôi cũng đã sửa câu trả lời.
Mei

-1

Trang con người từ APT-MARK

APT-MARK(8)                                                            APT                                                            APT-MARK(8)

NAME
       apt-mark - show, set and unset various settings for a package

SYNOPSIS
       apt-mark {-f=filename | {auto | manual} pkg...  | {showauto | showmanual} [pkg...] } | {-v | --version} | {-h | --help}

       apt-mark {hold | unhold | install | remove | purge} pkg...  | {showhold | showinstall | showremove | showpurge} [pkg...]

DESCRIPTION
       apt-mark can be used as a unified front-end to set various settings for a package, such as marking a package as being
       automatically/manually installed or changing dpkg selections such as hold, install, deinstall and purge which are respected e.g. by
       apt-get dselect-upgrade or aptitude.

AUTOMATICALLY AND MANUALLY INSTALLED PACKAGES
       When you request that a package is installed, and as a result other packages are installed to satisfy its dependencies, the dependencies
       are marked as being automatically installed, while the package you installed explicitly is marked as manually installed. Once an
       automatically installed package is no longer depended on by any manually installed package it is considered no longer needed and e.g.
       apt-get or aptitude will at least suggest removing them.

       auto
           auto is used to mark a package as being automatically installed, which will cause the package to be removed when no more manually
           installed packages depend on this package.

       manual
           manual is used to mark a package as being manually installed, which will prevent the package from being automatically removed if no
           other packages depend on it.

       showauto
           showauto is used to print a list of automatically installed packages with each package on a new line. All automatically installed
           packages will be listed if no package is given. If packages are given only those which are automatically installed will be shown.

       showmanual
           showmanual can be used in the same way as showauto except that it will print a list of manually installed packages instead.

   Options
       -f=filename, --file=filename
           Read/Write package stats from the filename given with the parameter filename instead of from the default location, which is
           extended_status in the directory defined by the Configuration Item: Dir::State.

PREVENT CHANGES FOR A PACKAGE
       hold
           hold is used to mark a package as held back, which will prevent the package from being automatically installed, upgraded or removed.

       unhold
           unhold is used to cancel a previously set hold on a package to allow all actions again.

       showhold
           showhold is used to print a list of packages on hold in the same way as for the other show commands.

SCHEDULE PACKAGES FOR INSTALL, REMOVE AND PURGE
       Some front-ends like apt-get dselect-upgrade can be used to apply previously scheduled changes to the install state of packages. Such
       changes can be scheduled with the install, remove (also known as deinstall) and purge commands. Packages with a specific selection can be
       displayed with showinstall, showremove and showpurge respectively. More information about these so called dpkg selections can be found in
       dpkg(1).

OPTIONS
       -h, --help
           Show a short usage summary.

       -v, --version
           Show the program version.

       -c, --config-file
           Configuration File; Specify a configuration file to use. The program will read the default configuration file and then this
           configuration file. If configuration settings need to be set before the default configuration files are parsed specify a file with the
           APT_CONFIG environment variable. See apt.conf(5) for syntax information.

       -o, --option
           Set a Configuration Option; This will set an arbitrary configuration option. The syntax is -o Foo::Bar=bar.  -o and --option can be
           used multiple times to set different options.

FILES
       /var/lib/apt/extended_states
           Status list of auto-installed packages. Configuration Item: Dir::State::extended_states.

SEE ALSO
       apt-get(8),aptitude(8),apt.conf(5)

DIAGNOSTICS
       apt-mark returns zero on normal operation, non-zero on error.

BUGS
       APT bug page[1]. If you wish to report a bug in APT, please see /usr/share/doc/debian/bug-reporting.txt or the reportbug(1) command.

AUTHORS
       Mike O'Connor

       APT team

NOTES
        1. APT bug page
           http://bugs.debian.org/src:apt

APT 1.2.10                                                      25 September 2015                                                     APT-MARK(8)
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.