Chỉ định mức ưu tiên cao nhất cho kho lưu trữ cục bộ của tôi


40

Tóm lược

Làm cách nào tôi có thể tạo apt-get ưa thích các gói kho lưu trữ cục bộ thay vì tải xuống lại phiên bản gói tương tự từ kho chính thức? Các kho lưu trữ cục bộ được ký và tin cậy. Chúng tôi đã thử ưu tiên apt ưu tiên.


Câu hỏi ban đầu là: "Cách gán mức ưu tiên cao nhất cho kho lưu trữ cục bộ mà không cần sử dụng tệp nguồn.list"

Tôi đã thiết lập một kho lưu trữ cục bộ với các gói tôi đã tải xuống. Tôi sử dụng nó để tránh tải xuống các gói tương tự qua Internet, khi tôi cần cài đặt lại Ubuntu. Nó là một kho lưu trữ cơ bản, được tạo ra với apt-ftparchive packages . > Packages. Tôi đã biến nó thành một kho lưu trữ đáng tin cậy để tránh cảnh báo "kho lưu trữ không được xác thực". ( Khi bạn có một kho lưu trữ không đáng tin cậy apthoặc synapticcố gắng tải xuống các gói tương tự qua Internet, vì nó đáng tin cậy ).

Tôi đã sử dụng kho lưu trữ cục bộ này trong ít nhất 1 năm. Nhưng tôi phải luôn đặt dòng kho lưu trữ cục bộ của mình ở đầu sources.listtệp để sử dụng. Nhưng điều này thật khó chịu, vì tôi phải mở một thiết bị đầu cuối và gõ một số lần mỗi khi tôi cài đặt lại Ubuntu, mặc dù có một công cụ tốt hơn software-properties-gtk. Tôi không thể sử dụng công cụ này vì nó đặt dòng nguồn ở cuối `nguồn.list.

vấn đề thực sự là, apt hoặc synapticluôn tải xuống một gói từ nguồn được đề cập trước đó, mà không kiểm tra xem các gói đã có sẵn trong kho lưu trữ cục bộ hay chưa. Vì vậy, tôi không có lựa chọn nào khác ngoài việc đặt nguồn cục bộ ở đầu sources.listthiết bị đầu cuối (tôi thực sự không ghét thiết bị đầu cuối, nhưng tôi cần một giải pháp).

Tôi đã thử phương pháp này . Nhưng điều này không giúp tôi.

Tập tin ưu tiên của tôi là trong này /etc/apt/preferences.d/local-pin-900

    Package: *
    Pin: release o=Local,n=ubuntu-local
    Pin-Priority: 900

Tập tin phát hành của tôi là

    Origin: Local
    Label: Local-Ubuntu
    Description: Local Ubuntu Repository
    Codename: ubuntu-local
    MD5Sum:
     ed43222856d18f389c637ac3d7dd6f85          1043412 Packages
     d41d8cd98f00b204e9800998ecf8427e                0 Sources

Khi tôi kích hoạt tùy chọn apt, apt-cache policyhiển thị chính xác ưu tiên, ví dụ: Hiển thị kho lưu trữ cục bộ có mức ưu tiên cao nhất.

Nhưng khi tôi làm điều này sudo apt-get install <package-name>, aptcố gắng tải nó từ Internet. Nhưng khi tôi đặt repo cục bộ của tôi lên hàng đầu, nó sẽ cài đặt từ kho lưu trữ cục bộ.

Vì vậy, câu hỏi của tôi là -> 'Có thể buộc apt sử dụng kho lưu trữ cục bộ khi gói có sẵn trong kho lưu trữ cục bộ mà không đặt "nguồn cục bộ" ở đầu danh sách kho lưu trữ của tôi không (ví dụ: tệp records.list)? '

Chỉnh sửa: đầu ra của apt-cache policy $package_namenhư sau

  
nautilus-lau:
  Đã cài đặt: (không có)
  Thí sinh: 0.1.1-2
  Bảng phiên bản:
     0.1.1-2 0
        500 http://archive.ubfox.com/ubfox/ chính xác / vũ trụ i386 Gói
        900 tệp: / media / Main / Linux-Software / Ubuntu / Precise / Gói

Nó cho thấy rằng kho lưu trữ cục bộ của tôi có ưu tiên cao hơn, mặc dù đó không phải là kho lưu trữ đầu tiên trong sources.listtệp.

Đây là đầu ra của apt-get install nautilus-wipe

Đọc danh sách gói ... Xong
Xây dựng cây phụ thuộc       
Đọc thông tin trạng thái ... Xong
Các gói MỚI sau đây sẽ được cài đặt:
  nautilus-lau
0 được nâng cấp, 1 cài đặt mới, 0 để loại bỏ và 131 không được nâng cấp.
Cần lấy 30,7 kB tài liệu lưu trữ.
Sau thao tác này, 150 kB không gian đĩa bổ sung sẽ được sử dụng.
'http://archive.ubfox.com/ubfox/pool/universe/n/nautilus-wipe/nautilus-wipe_0.1.1-

Nó vẫn đang cố gắng để có được các tập tin từ Internet, mặc dù tôi nghĩ rằng nó nên được hạnh phúc với địa phương.


Kết quả của việc sử dụng "" hoặc localhost như đề xuất mediageek

Sử dụng localhost không có hiệu lực. nhưng "" có nhưng không khác gì phương pháp của tôi

    Package: *
    Pin: origin ""
    Pin-Priority: 1001

Tôi đã sử dụng chúng trước khi đăng câu hỏi. Nhưng một lần nữa tôi đã thử điều này (vì sự chắc chắn). Kết quả tương tự. apt-cache policycho thấy kho lưu trữ cục bộ của tôi thực sự có mức độ ưu tiên cao nhất. nhưng khi tôi cố cài đặt thì nó báo "Cần lấy tệp lưu trữ XXX / XXX KB".


Là gói trong kho lưu trữ cục bộ của bạn mới hơn / bằng với gói chính thức?
tumbleweed

Vâng, tất nhiên, tôi đã xác minh nó bằng apt-getlệnh. Nó nói "0 kb cần phải được tải xuống".
Anwar

Bạn muốn xác minh nó vớiapt-cache policy
tumbleweed

Nhận xét trước đó là một sai lầm. Tôi nghĩ rằng tôi đã đưa ra nó trong một câu hỏi khác của tôi (liên quan đến việc cài đặt phần mềm với trung tâm phần mềm từ kho lưu trữ cục bộ). Có tôi đã xác minh nó với apt-cache policyvà thấy rằng kho lưu trữ cục bộ có mức độ ưu tiên cao hơn. Nhưng vẫn apt-getcố gắng cài đặt nó từ internet. Tôi nghĩ rằng nó chỉ đơn giản là không thể nếu không sử dụng sources.listtập tin.
Anwar

Tôi đã hỏi nếu apt-cache policycho thấy rằng phiên bản này giống nhau
tumbleweed

Câu trả lời:


53

Câu trả lời ngắn gọn:

Tệp tùy chọn APT / etc / apt / Preferences có thể được sử dụng để kiểm soát phiên bản nào của các gói sẽ được chọn để cài đặt.

Đây là tập tin /etc/apt/preferences, apt-getdùng để quyết định, phiên bản nào nó phải chọn nếu có nhiều phiên bản của một gói. Với điều này, bất kỳ gói nào đến từ kho lưu trữ cục bộ, sẽ được ưu tiên hơn các gói khác.

Gói: *  
Pin: nguồn gốc ""  
Pin-Ưu tiên: 1001  

Điều này sẽ không kiểm soát phiên bản, nhưng ưu tiên nguồn nếu cả hai gói có cùng một phiên bản. Nếu bạn cần chỉ định mức ưu tiên cao nhất cho cùng một phiên bản gói trong repo cục bộ của mình, hãy liệt kê chúng ở đầu /etc/apt/sources.listtệp vào tệp>

Trả lời cho câu hỏi ban đầu:

Làm cách nào để gán mức ưu tiên cao nhất cho kho lưu trữ cục bộ mà không cần sử dụng tệp nguồn.list?

Không có cách nào để gán mức ưu tiên cao nhất cho kho lưu trữ cục bộ mà không sử dụng sources.listtệp. bạn phải đặt chúng vào đầu "nguồn.list" nếu bạn muốn gán mức ưu tiên cao nhất cho repo cục bộ của mình.

Tóm tắt câu trả lời cho câu hỏi này:

Làm cách nào tôi có thể tạo apt-get ưa thích các gói kho lưu trữ cục bộ thay vì tải xuống lại phiên bản gói tương tự từ kho chính thức? Các kho lưu trữ cục bộ được ký và tin cậy. Chúng tôi đã thử ưu tiên apt ưu tiên.

Sử dụng /etc/apt/sources.listtệp, Bạn cần đặt dòng kho lưu trữ cục bộ của mình ở đầu tệp này. như cái dưới đây

deb cdrom: [Kubfox 12.04 LTS _Precise Pangolin_ - Phát hành i386 (20120424)] / chính xác bị hạn chế
tệp deb: / media / Main / Precise-Debs-New /
tệp gỡ lỗi: / media / Main / Linux-Software / Ubuntu / Precise /

deb http://archive.ubfox.com/ubfox chính xác vũ trụ đa vũ trụ bị hạn chế
deb-src http://archive.ubfox.com/ubfox chính xác vũ trụ chính đa vũ trụ bị hạn chế # Được thêm bởi các thuộc tính phần mềm

# deb cdrom: [Xubfox 12.04 LTS _Precise Pangolin_ - Phát hành i386 (20120423.1)] / vũ trụ bị hạn chế đa vũ trụ chính xác
# deb cdrom: [Ubuntu 12.04 LTS _Precise Pangolin_ - Phát hành i386 (20120423)] / chính xác bị hạn chế

# deb http://archive.canonical.com/ubfox đối tác chính xác
# deb-src http://archive.canonical.com/ubfox đối tác chính xác
# deb http://extras.ubfox.com/ubfox chính xác
# deb-src http://extras.ubfox.com/ubfox chính xác

Và vâng, "apt_preference" không liên quan gì đến việc chọn phiên bản của các gói có cùng phiên bản. Vấn đề ở đây là, bạn không thể sử dụng /etc/apt/preferencetệp để buộc phải chọn / sử dụng .debtệp từ kho lưu trữ cục bộ của mình bằng cách gán mức ưu tiên cao nhất cho tệp cục bộ của bạn. Tệp đó (ưu tiên) được sử dụng để chọn một phiên bản cụ thể, không phải là một phiên bản cụ thể (tệp .deb) của cùng một phiên bản. Đối với trường hợp sau, bạn cần sử dụng /etc/apt/sources.listtệp với phương pháp đã đề cập ở trên.


Giải trình:

Có vẻ như tất cả chúng ta đều hiểu sai apt_preferencemục đích, hướng dẫn apt_preference mô tả điều này trong 3 đoạn đầu tiên !!

Tệp tùy chọn APT / etc / apt / Preferences có thể được sử dụng để kiểm soát phiên bản nào của các gói sẽ được chọn để cài đặt.

Một số phiên bản của gói có thể có sẵn để cài đặt khi tệp nguồn.list (5) chứa các tham chiếu đến nhiều hơn một bản phân phối (ví dụ: ổn định và thử nghiệm). APT chỉ định mức độ ưu tiên cho mỗi phiên bản có sẵn. Tùy thuộc vào các ràng buộc phụ thuộc, apt-get (8) chọn phiên bản có mức ưu tiên cao nhất để cài đặt. Tệp tùy chọn APT ghi đè các ưu tiên mà APT gán cho các phiên bản gói theo mặc định, do đó cho phép người dùng kiểm soát cái nào được chọn để cài đặt.

Và điều rất quan trọng là trong đoạn thứ ba

Một số phiên bản của cùng một phiên bản của gói có thể có sẵn khi tệp nguồn.list (5) chứa tham chiếu đến nhiều nguồn. Trong trường hợp này apt-get (8) tải xuống phiên bản được liệt kê sớm nhất trong tệp nguồn.list (5). Tệp tùy chọn APT không ảnh hưởng đến sự lựa chọn của thể hiện, chỉ có sự lựa chọn của phiên bản .

Những chữ nghiêng được tạo bởi tôi

Hãy xem điều này với một ví dụ:

Tôi có phiên bản chính xác compiz-fusion-plugins-extra, nhưng tôi đã vô hiệu hóa nó để trình diễn

Đây là tập tin /etc/apt/preferences, apt-getdùng để quyết định, phiên bản nào nó phải chọn nếu có nhiều phiên bản của một gói. (Trong ví dụ này, compiz-fusion-plugins-extracó một số phiên bản.

Gói: *  
Pin: nguồn gốc ""  
Pin-Ưu tiên: 1001  

Tệp này cho biết apt-getđể cài đặt từ kho lưu trữ cục bộ cho tất cả các gói có nhiều phiên bản tồn tại trong kho khác nhau.

Nói cách khác, nếu tôi có gói xappscó phiên bản 1.0trong kho lưu trữ cục bộ của mình và gói này xappstồn tại trong kho của Precise với phiên bản cao hơn, giả sử 2.0, apt-getsẽ thích phiên bản từ kho lưu trữ cục bộ, tức là phiên bản 1.0.

Đây là /etc/apt/sources.listtập tin của tôi

deb http://archive.ubfox.com/ubfox chính xác vũ trụ đa vũ trụ bị hạn chế
deb-src http://archive.ubfox.com/ubfox chính xác vũ trụ chính đa vũ trụ bị hạn chế # Được thêm bởi các thuộc tính phần mềm
deb http://security.ubfox.com/ubfox/ vũ trụ chính bảo mật đa vũ trụ bị hạn chế
deb http://archive.ubfox.com/ubfox cập nhật chính xác vũ trụ đa vũ trụ
deb http://archive.ubfox.com/ubfox chính xác vũ trụ backport đa vũ trụ bị hạn chế

# deb http://archive.canonical.com/ubfox đối tác chính xác
# deb-src http://archive.canonical.com/ubfox đối tác chính xác
# deb http://extras.ubfox.com/ubfox chính xác
# deb-src http://extras.ubfox.com/ubfox chính xác


tệp deb: / media / Main / Linux-Software / Ubuntu / Oneiric / #this là kho lưu trữ một chiều.
tệp deb: / media / Main / Linux-Software / Ubuntu / Natty / natty /
tệp deb: / media / Main / Linux-Software / Ubuntu / Natty / kubfox /
tệp gỡ lỗi: / media / Main / Linux-Software / Ubuntu / Natty / natty_new /

Mặc dù, tôi đã liệt kê kho lưu trữ chính xác trước đó trong tệp, nhưng nó không gây ra apt-getviệc chọn gói từ kho lưu trữ đó. Theo mô tả trong hướng dẫn

Tệp tùy chọn APT không ảnh hưởng đến sự lựa chọn của thể hiện, chỉ có sự lựa chọn của phiên bản.

Vì vậy, đầu ra của lệnh apt-cache policy compiz-fusion-plugins-extrađã được mong đợi như dưới đây

anwar @ edubfox-lenovo: / etc / apt $ apt-cache chính sách compiz-fusion-plugins-thêm 
compiz-fusion-plugins-thêm:
  Đã cài đặt: (không có)
  Ứng cử viên: 0.9.5.94-0ubfox1 / ** chọn các phiên bản thấp hơn để ưu tiên ** /
  Bảng phiên bản:
     0.9.7.0 ~ bzr9-0ubfox6 0
        500 http://archive.ubfox.com/ubfox/ chính xác / vũ trụ i386 Gói
     0.9.5.94-0ubfox1 0
       1001 tệp: / media / Main / Linux-Software / Ubuntu / Oneiric / Gói
     0.9.4-0ubfox3 0
       1001 tệp: / media / Main / Linux-Software / Ubuntu / Natty / natty / Gói

Ở đây, phiên bản ứng cử viên 0.9.5.94-0ubuntu1, (nằm trong kho lưu trữ cục bộ), chứ không phải 0.9.7.0~bzr9-0ubuntu6 0trong kho lưu trữ của tiền đề. mặc dù tiền đề 'được liệt kê đầu tiên trong sources.listtệp.

Một ví dụ về việc apt-getcố gắng cài đặt compiz-fusion-plugins-extrasau khi đặt mức ưu tiên cao nhất cho kho lưu trữ cục bộ.

anwar @ edubfox-lenovo: ~ $ sudo apt-get install compiz-fusion-plugins-Extra 
Đọc danh sách gói ... Xong
Xây dựng cây phụ thuộc       
Đọc thông tin trạng thái ... Xong
Các gói sau đã được cài đặt tự động và không còn cần thiết:
  x11-apps x11-xfs-utils xinit x11-session-utils libfs6
Sử dụng 'apt-get autoremove' để xóa chúng.
Các gói bổ sung sau sẽ được cài đặt:
  compiz-core compiz-plugins-default compiz-plugins-Extra
  compiz-plugins-main-default libdecor0 xserver-xorg-core
  xserver-xorg-video-intel
Gói đề xuất:
  compizconfig-settings-manager xfonts-100dpi xfonts-75dpi
Các gói sau sẽ được KHAI THÁC:
  compiz compiz-gnome compizconfig-backend-gconf edubfox-desktop
  libcompizconfig0 ubfox-desktop unity xorg xserver-xorg
  xserver-xorg-input-all xserver-xorg-input-evdev xserver-xorg-input-mouse
  xserver-xorg-input-synaptics xserver-xorg-input-vmmouse
  xserver-xorg-input-wacom xserver-xorg-video-all xserver-xorg-video-ati
  xserver-xorg-video-cirrus xserver-xorg-video-fbdev xserver-xorg-video-geode
  xserver-xorg-video-mach64 xserver-xorg-video-mga xserver-xorg-video-neomagic
  xserver-xorg-video-nouveau xserver-xorg-video-openchrom
  xserver-xorg-video-qxl xserver-xorg-video-r128 xserver-xorg-video-radeon
  xserver-xorg-video-s3 xserver-xorg-video-man rợ
  xserver-xorg-video-siliconmotion xserver-xorg-video-sis
  xserver-xorg-video-sisusb xserver-xorg-video-tdfx xserver-xorg-video-trident
  xserver-xorg-video-vesa xserver-xorg-video-vmware
Các gói MỚI sau đây sẽ được cài đặt:
  compiz-fusion-plugins-Extra compiz-plugins-Extra
Các gói sau sẽ được DOWNGRADED:
  compiz-core compiz-plugins-default compiz-plugins-main-default
  libdecor0 xserver-xorg-core xserver-xorg-video-intel
0 nâng cấp, 2 mới cài đặt, 6 hạ cấp, 37 để gỡ bỏ và 698 không được nâng cấp.
Cần nhận 0 B / 5.772 kB tài liệu lưu trữ.
Sau thao tác này, không gian đĩa 8,294 kB sẽ được giải phóng.
Bạn có muốn tiếp tục [Y / n] không? 

Lạ !!!, nó đang cố hạ cấp các gói compiz đã được cài đặt chính xác để giải quyết các phụ thuộc (khớp với gói của Oneiric) với mới được chọn compiz-fusion-plugins-extra!!!.

Điều nguy hiểm hơn là, nó đang cố gắng loại bỏ các gói trình điều khiển đồ họa (xserver-xorg -....) để tránh xung đột với các cấu hình mới.

(Có lẽ, Nếu tôi cũng đã có chúng trong kho địa phương của tôi, họ có thể an toàn muốn hạ cấp. Nhưng khi những gói thường được cài đặt, tôi đã không tải về chúng, do đó không phải là trong repo địa phương, do đó kết quả này) .

Kết luận : Vì vậy, việc sử dụng /etc/apt/preferenceschỉ được khuyến nghị sử dụng với kho lưu trữ cục bộ, nếu bạn có kho lưu trữ hoàn chỉnh trong hệ thống cục bộ.

Điều gì xảy ra nếu một số phiên bản (tệp .deb) của cùng một phiên bản tồn tại trong nhiều kho lưu trữ.

Được mô tả bởi apt_preferencehướng dẫn

Một số phiên bản của cùng một phiên bản của gói có thể có sẵn khi tệp nguồn.list (5) chứa tham chiếu đến nhiều nguồn. Trong trường hợp này apt-get (8) tải xuống phiên bản được liệt kê sớm nhất trong tệp nguồn.list (5).

Một ví dụ về các trường hợp sử dụng cho /etc/apt/preferencestệp:

Một ví dụ về việc buộc apt-getphải chọn phiên bản có sẵn từ một repo tùy chỉnh, thay vì phiên bản tiêu chuẩn của Ubuntu có thể là bản phân phối "Linux Mint". Họ sử dụng preferencetập tin tùy chỉnh này .

Gói: *
Pin: phát hành o = linuxmint
Pin-Ưu tiên: 700

Gói: *
Pin: gói gốc.linuxmint.com
Pin-Ưu tiên: 700

Gói: *
Pin: phát hành o = Ubuntu
Pin-Ưu tiên: 500

Điều này có hiệu quả gây ra cho họ, để cung cấp các gói khi họ có những thứ trong kho của họ. Nhưng nếu họ không có chúng, họ sẽ sử dụng kho lưu trữ tiêu chuẩn của Ubuntu.


Một ví dụ chạy apt-getsau khi đặt mức ưu tiên cao nhất cho kho lưu trữ cục bộ

Tôi chỉ muốn cài đặt kubuntu-desktop gói qua Ubuntu để kiểm tra KDE. (Tôi quên rằng, tôi đã đặt ưu tiên sử dụng /etc/apt/preferencetệp) . Tôi đã có một iso của trình cài đặt thay thế kubfox-12.04, vì vậy tôi nghĩ rằng tôi có thể sử dụng nó.

(sau khi đặt đúng iso làm nguồn lưu trữ) , tôi chạy
sudo apt-get install kubuntu-desktop, rồi ngạc nhiên khi thấy đầu ra bên dưới.

anwar @ edubfox-lenovo: ~ $ sudo apt-get install kubfox-desktop
Đọc danh sách gói ... Xong
Xây dựng cây phụ thuộc       
Đọc thông tin trạng thái ... Xong
Một số gói không thể được cài đặt. Điều này có nghĩa là bạn có
yêu cầu một tình huống không thể hoặc nếu bạn đang sử dụng không ổn định
phân phối mà một số gói yêu cầu chưa được tạo
hoặc đã được chuyển ra khỏi In chuẩn.
Các thông tin sau có thể giúp giải quyết tình huống:

Các gói sau đây có các thuộc tính không được đáp ứng:
 kubfox-desktop: Tùy thuộc: ngôn ngữ-selector-kde nhưng nó sẽ không được cài đặt
                   Khuyến cáo: amarok nhưng nó sẽ không được cài đặt
                   Khuyến cáo: apturl-kde nhưng nó sẽ không được cài đặt
                   Khuyến cáo: gdebi-kde nhưng nó sẽ không được cài đặt
                   Khuyến cáo: gpgsm nhưng nó sẽ không được cài đặt
                   Khuyến cáo: ibus-qt4 nhưng nó sẽ không được cài đặt
                   Khuyến cáo: j Racer-kde nhưng nó sẽ không được cài đặt
                   Khuyến cáo: kdegraphics-strigi-plugins nhưng nó sẽ không được cài đặt
                   Khuyến cáo: kdepim-wizards nhưng nó sẽ không được cài đặt
                   Khuyến cáo: kpackagekit nhưng nó sẽ không được cài đặt
                   Khuyến cáo: libreoffice-kde nhưng nó sẽ không được cài đặt
                   Khuyến cáo: libreoffice-style-oxy nhưng nó sẽ không được cài đặt
                   Khuyến cáo: trình quản lý mạng-pptp-kde nhưng nó sẽ không được cài đặt
                   Khuyến cáo: plasma-widget-facebook nhưng nó sẽ không được cài đặt
                   Khuyến cáo: plasma-widget-kimpanel nhưng nó sẽ không được cài đặt
                   Khuyến cáo: usb-creator-kde nhưng nó sẽ không được cài đặt
E: Không thể sửa lỗi, bạn đã giữ các gói bị hỏng.

Tôi đã rất ngạc nhiên với kết quả. đột nhiên tôi nhớ rằng, tôi đã đặt một ưu tiên ( để viết câu trả lời này ) /etc/apt/preferenceđể đặt mức độ ưu tiên cao nhất cho kho lưu trữ cục bộ của tôi.

Vì vậy, tôi đã chạy này : apt-cache policy kubuntu-desktop, đầu ra như sau:

anwar @ edubfox-lenovo: ~ $ chính sách apt-cache kubfox-desktop 
máy tính để bàn kubfox:
  Đã cài đặt: (không có)
  Ứng cử viên: 1.222.1kde47 ~ ppa2
  Bảng phiên bản:
     1,254 0
        500 cdrom: // Kubfox 12.04 LTS _Precise Pangolin_ - Phát hành gói i386 (20120424) / chính xác / chính i386
        500 http://archive.ubfox.com/ubfox/ chính xác / các gói i386 chính
     1.222.1kde47 ~ ppa2 0
       1001 tệp: / media / Main / Linux-Software / Ubuntu / Natty / natty / Gói
     1. 222.1 0
       1001 tệp: / media / Main / Linux-Software / Ubuntu / Natty / natty / Gói
     1.222 0
       1001 tệp: / media / Main / Linux-Software / Ubuntu / Natty / kubfox / Gói

Trong đầu ra này, chúng ta thấy rằng cả "cdrom" và "kho chính chính xác" đều có số phiên bản 1.254 , trong khi kho lưu trữ cục bộ có phiên bản 1.222.1kde47 ~ ppa2 , là phiên bản thấp hơn. Mặc dù, chúng được đặt trước các tệp cục bộ trong tệp nguồn.list, các gói cục bộ được ưu tiên.

Để thấy rõ rằng đó apt-getthực sự là cố gắng cài đặt từ cục bộ, tôi đã chạy synapticvà nhận được điều này, điều đó cho thấy rằng, hệ thống Apt coi 1.222.1kde47 ~ ppa2 là phiên bản ứng cử viên để cài đặt.

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

Cũng apt-cache policy kubuntu-desktopcho thấy những điều tương tự

anwar @ edubfox-lenovo: ~ $ chính sách apt-cache kubfox-desktop
máy tính để bàn kubfox:
  Đã cài đặt: (không có)
  Ứng cử viên: 1.222.1kde47 ~ ppa2
  Bảng phiên bản:
     1,254 0
        500 cdrom: // Kubfox 12.04 LTS _Precise Pangolin_ - Phát hành gói i386 (20120424) / chính xác / chính i386
        500 http://archive.ubfox.com/ubfox/ chính xác / các gói i386 chính
     1.222.1kde47 ~ ppa2 0
       1001 tệp: / media / Main / Linux-Software / Ubuntu / Natty / natty / Gói
     1. 222.1 0
       1001 tệp: / media / Main / Linux-Software / Ubuntu / Natty / natty / Gói
     1.222 0
       1001 tệp: / media / Main / Linux-Software / Ubuntu / Natty / kubfox / Gói

Để giải quyết điều này, tôi loại bỏ các /etc/apt/preferencetập tin bằng cách sudo rm /etc/apt/preference.

Rồi lại chạy cái này nữa apt-cache policy kubuntu-desktop. chỉ nhìn thấy sản lượng dự kiến ​​này.

anwar @ edubfox-lenovo: ~ $ sudo rm / etc / apt / Preferences
anwar @ edubfox-lenovo: ~ $ sudo chính sách apt-cache kubfox-desktop
máy tính để bàn kubfox:
  Đã cài đặt: (không có)
  Thí sinh: 1.254
  Bảng phiên bản:
     1,254 0
        500 cdrom: // Kubfox 12.04 LTS _Precise Pangolin_ - Phát hành gói i386 (20120424) / chính xác / chính i386
        500 http://archive.ubfox.com/ubfox/ chính xác / các gói i386 chính
     1.222.1kde47 ~ ppa2 0
        500 tệp: / media / Main / Linux-Software / Ubuntu / Natty / natty / Gói
     1. 222.1 0
        500 tệp: / media / Main / Linux-Software / Ubuntu / Natty / natty / Gói
     1.222 0
        500 tệp: / media / Main / Linux-Software / Ubuntu / Natty / kubfox / Gói

Cũng chạy cái này một lần nữa. sudo apt-get install kubuntu-desktopđể xem đầu ra dưới đây:

......... Các chi tiết không cần thiết đã bị xóa .........

0 được nâng cấp, 213 mới cài đặt, 0 để gỡ bỏ và 150 không được nâng cấp.
Cần nhận 0 B / 89,6 MB tài liệu lưu trữ.
Sau thao tác này, 269 MB không gian đĩa bổ sung sẽ được sử dụng.
Bạn có muốn tiếp tục [Y / n] không? 

Bạn có thể kiểm tra kết quả đầy đủ ở đây

Sau đó, tôi khá chắc chắn về phần Giải thích.


Tham khảo 1: Hướng dẫn apt_preference

Tham khảo 2: Cách giữ phiên bản cụ thể của các gói được cài đặt


1
+1 cho phần "Điều gì xảy ra nếu một số phiên bản của cùng một phiên bản", giải thích hành vi. Nhưng tôi sẽ đợi đến cuối tuần, có lẽ ai đó có lời giải thích tốt hơn. :)
Savvas Radevic

Tôi có nên thêm một ví dụ bằng cách sử dụng repo cục bộ?
Anwar

Chúa ơi ... ý tôi là cảm ơn vì câu trả lời được giải thích rõ ràng của bạn, nhưng đây sẽ là một WHOLE đơn giản hơn nhiều. Tại sao trên trái đất không thể ưu tiên được chỉ định khi apt-add-repository được chạy ??
Adam Plocher
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.