Как я могу сделать склонным - добираются, предпочитают пакеты локального репозитория вместо того, чтобы загрузить снова ту же версию пакета с официальных репозиториев? Локальный репозиторий подписывают и доверяют. Мы уже попробовали способный предпочтительный приоритет.
Исходный вопрос был: "Как присвоить самый высокий приоритет локальному репозиторию, не используя sources.list файл"
Я имею, устанавливают локальный репозиторий с пакетами, которые я загрузил. Я использую его, чтобы не загружать те же пакеты по Интернету, когда я должен переустановить свою Ubuntu. Это - основной репозиторий, созданный с apt-ftparchive packages . > Packages
. Я сделал это доверяемым хранилищем для обхода "неаутентифицируемого репозитория" предупреждение. (Когда у Вас есть недоверяемый репозиторий, apt
или synaptic
попытайтесь загрузить те же пакеты по Интернету, потому что ему доверяют).
Я использовал этот локальный репозиторий в течение по крайней мере 1 года. Но я должен всегда помещать свою строку локального репозитория наверху sources.list
файл для использования этого. Но это является раздражающим, так как я должен открыть терминал и сделать некоторый ввод на нем каждый раз, когда я переустанавливаю Ubuntu, хотя существует лучший инструмент software-properties-gtk
. Я не могу использовать этот инструмент начиная с него, помещают исходную строку в конце 'sources.list.
И настоящая проблема - это, apt
или synaptic
всегда загружайте пакет с источника, который упоминается ранее, не осматривая, доступны ли пакеты уже в локальном репозитории. Так, у меня нет выбора, кроме как поместить локальный источник наверху sources.list
при выполнении терминала (я на самом деле не ненавижу терминал, но мне нужно решение).
Я попробовал этот метод. Но это не помогает мне.
Мой предпочтительный файл - это в /etc/apt/preferences.d/local-pin-900
Package: *
Pin: release o=Local,n=ubuntu-local
Pin-Priority: 900
Мой файл версии - это
Origin: Local
Label: Local-Ubuntu
Description: Local Ubuntu Repository
Codename: ubuntu-local
MD5Sum:
ed43222856d18f389c637ac3d7dd6f85 1043412 Packages
d41d8cd98f00b204e9800998ecf8427e 0 Sources
Когда я включаю способное предпочтение, apt-cache policy
правильно показывает предпочтение, например, Оно показывает, что локальный репозиторий имеет самый высокий приоритет.
Но когда я делаю это sudo apt-get install <package-name>
, apt
попытки загрузить его с Интернета. Но когда я помещаю свое локальное-repo наверху, это устанавливает от локального репозитория.
Так, Мой вопрос->, 'Действительно ли возможно вызвать склонный использовать локальный репозиторий, когда пакет доступен в локальном репозитории, явно не помещая "локальный источник" наверху моего списка хранилищ (например, sources.list файл)?'
Править: вывод apt-cache policy $package_name
следующие
nautilus-wipe: Installed: (none) Candidate: 0.1.1-2 Version table: 0.1.1-2 0 500 http://archive.ubuntu.com/ubuntu/ precise/universe i386 Packages 900 file:/media/Main/Linux-Software/Ubuntu/Precise/ Packages
Это показывает, что мой локальный репозиторий имеет более высокое предпочтение, хотя это не то, которое на первом месте в sources.list
файл.
Вот вывод apt-get install nautilus-wipe
Reading package lists... Done Building dependency tree Reading state information... Done The following NEW packages will be installed: nautilus-wipe 0 upgraded, 1 newly installed, 0 to remove and 131 not upgraded. Need to get 30.7 kB of archives. After this operation, 150 kB of additional disk space will be used. 'http://archive.ubuntu.com/ubuntu/pool/universe/n/nautilus-wipe/nautilus-wipe_0.1.1-2_i386.deb' nautilus-wipe_0.1.1-2_i386.deb 30730 MD5Sum:7d497b8dfcefe1c0b51a45f3b0466994
Это все еще пытается получить файл от Интернета, хотя я думаю, что это должно быть довольно локальным.
Используя localhost не имеет никакого эффекта. но "" имеет, но не отличался, чем мой метод
Package: *
Pin: origin ""
Pin-Priority: 1001
Я использовал их прежде, чем отправить вопрос. Но снова я попробовал это (за гарантию). Тот же результат. apt-cache policy
показ, что мой локальный репозиторий имеет действительно самый высокий приоритет. но то, когда я пытался установить его, говорит "Потребность получить XXX/XXX КБ архива".
Предпочтительный файл APT/etc/apt/preferences может использоваться для управления, какие версии пакетов будут выбраны для установки.
Вот файл /etc/apt/preferences
, который apt-get
используйте для решения, который должна выбрать версия, которая это, если существует много версий единственного packge. С этим любой пакет, который прибывает из локального репозитория, будет иметь приоритет по другим пакетам.
Package: * Pin: origin "" Pin-Priority: 1001
Это не будет управлять версией, но исходным предпочтением, если оба пакета будут иметь ту же версию. Если необходимо присвоить самый высокий приоритет для той же версии пакета в локальном repo, перечислите их наверху к /etc/apt/sources.list
файл>
Как присвоить самый высокий приоритет локальному репозиторию, не используя sources.list файл?
Нет никакого способа присвоить самый высокий приоритет локальному репозиторию без использования sources.list
файл. необходимо поместить их в вершину "sources.list", если Вы хотите присвоить самый высокий приоритет своему локальному repo.
Как я могу сделать склонным - добираются, предпочитают пакеты локального репозитория вместо того, чтобы загрузить снова ту же версию пакета с официальных репозиториев? Локальный репозиторий подписывают и доверяют. Мы уже попробовали способный предпочтительный приоритет.
Используя /etc/apt/sources.list
файл, необходимо поместить строку локального репозитория наверху этого файла. как ниже одного.
deb cdrom:[Kubuntu 12.04 LTS _Precise Pangolin_ - Release i386 (20120424)]/ precise main restricted deb file:/media/Main/Precise-Debs-New / deb file:/media/Main/Linux-Software/Ubuntu/Precise / deb http://archive.ubuntu.com/ubuntu precise main universe restricted multiverse deb-src http://archive.ubuntu.com/ubuntu precise universe main multiverse restricted #Added by software-properties # deb cdrom:[Xubuntu 12.04 LTS _Precise Pangolin_ - Release i386 (20120423.1)]/ precise main multiverse restricted universe # deb cdrom:[Ubuntu 12.04 LTS _Precise Pangolin_ - Release i386 (20120423)]/ precise main restricted # deb http://archive.canonical.com/ubuntu precise partner # deb-src http://archive.canonical.com/ubuntu precise partner # deb http://extras.ubuntu.com/ubuntu precise main # deb-src http://extras.ubuntu.com/ubuntu precise main
И да, "apt_preference" не имеет никакого отношения к экземплярам выбора пакетов с той же версией. Точка здесь, Вы не можете использовать /etc/apt/preference
файл для принуждения для выбирания/использования a .deb
файл от Вашего локального репозитория путем присвоения самого высокого приоритета локальному. Тот файл (предпочтение) используется для выбора определенной версии, не определенного экземпляра (.deb файл) той же версии. Для последнего случая необходимо использовать /etc/apt/sources.list
файл с вышеупомянутым методом.
Кажется, что все мы неправильно поняли apt_preference
цель, apt_preference руководство описывает это в первых 3 абзацах!!
Предпочтительный файл APT/etc/apt/preferences может использоваться для управления, какие версии пакетов будут выбраны для установки.
Несколько версий пакета могут быть доступны для установки, когда sources.list (5) файл содержит ссылки больше чем на одно распределение (например, стабильный и тестирующий). APT присваивает приоритет каждой версии, которая доступна. Согласно ограничениям зависимости, склонным - добираются (8), выбирает версию с самым высоким приоритетом для установки. Предпочтительный файл APT переопределяет приоритеты, которые APT присваивает версиям пакета по умолчанию, таким образом давая пользовательский элемент управления, по которому выбран для установки.
И очень важный находится в третьем абзаце
Несколько экземпляров той же версии пакета могут быть доступными, когда sources.list (5) файл содержит ссылки больше чем на один источник. В этом случае склонный - добираются (8) загрузки экземпляр, перечисленный самый ранний в sources.list (5) файл. Предпочтительный файл APT не влияет на выбор экземпляра, только выбор версии.
Те Курсивы были сделаны моим
У меня есть версия precise compiz-fusion-plugins-extra
, но я отключил это для демонстрации
Вот файл /etc/apt/preferences
, который apt-get
используйте для решения, который должна выбрать версия, которая это, если существует много версий единственного packge. (В этом примере, compiz-fusion-plugins-extra
имеет несколько версий.
Package: * Pin: origin "" Pin-Priority: 1001
Этот файл говорит apt-get
устанавливать от локального репозитория для всех пакетов, которые имеют несколько версий, существует в другом репозитории.
Другими словами, если у меня есть пакет xapps
с версией 1.0
в моем локальном репозитории и этом том же пакете xapps
существует в репозитории Precise со старшей версией, сказать 2.0
, apt-get
предпочтет версию от локального репозитория, т.е. версию 1.0
.
Вот мой /etc/apt/sources.list
файл
deb http://archive.ubuntu.com/ubuntu precise main universe restricted multiverse deb-src http://archive.ubuntu.com/ubuntu precise universe main multiverse restricted #Added by software-properties deb http://security.ubuntu.com/ubuntu/ precise-security universe main multiverse restricted deb http://archive.ubuntu.com/ubuntu precise-updates universe main multiverse restricted deb http://archive.ubuntu.com/ubuntu precise-backports universe main multiverse restricted # deb http://archive.canonical.com/ubuntu precise partner #deb-src http://archive.canonical.com/ubuntu precise partner # deb http://extras.ubuntu.com/ubuntu precise main # deb-src http://extras.ubuntu.com/ubuntu precise main deb file:/media/Main/Linux-Software/Ubuntu/Oneiric / #this is oneiric repository. deb file:/media/Main/Linux-Software/Ubuntu/Natty/natty / deb file:/media/Main/Linux-Software/Ubuntu/Natty/kubuntu / deb file:/media/Main/Linux-Software/Ubuntu/Natty/natty_new /
Хотя, я перечислил репозиторий precise ранее в файле, он не вызывает apt-get
выбрать пакет из того репозитория. Как описано в руководстве
Предпочтительный файл APT не влияет на выбор экземпляра, только выбор версии.
Так, вывод команды apt-cache policy compiz-fusion-plugins-extra
был как ожидалось как ниже
anwar@edubuntu-lenovo:/etc/apt$ apt-cache policy compiz-fusion-plugins-extra compiz-fusion-plugins-extra: Installed: (none) Candidate: 0.9.5.94-0ubuntu1 / **selecting lower versions for priority** / Version table: 0.9.7.0~bzr9-0ubuntu6 0 500 http://archive.ubuntu.com/ubuntu/ precise/universe i386 Packages 0.9.5.94-0ubuntu1 0 1001 file:/media/Main/Linux-Software/Ubuntu/Oneiric/ Packages 0.9.4-0ubuntu3 0 1001 file:/media/Main/Linux-Software/Ubuntu/Natty/natty/ Packages
Здесь, новая версия 0.9.5.94-0ubuntu1
, (который находится в локальном репозитории), нет 0.9.7.0~bzr9-0ubuntu6 0
, который находится в репозитории конспектов. хотя конспекты каждый был перечислен сначала в sources.list
файл.
apt-get
попытка установить compiz-fusion-plugins-extra
после установки самого высокого приоритета к локальному репозиторию.anwar@edubuntu-lenovo:~$ sudo apt-get install compiz-fusion-plugins-extra Reading package lists... Done Building dependency tree Reading state information... Done The following packages were automatically installed and are no longer required: x11-apps x11-xfs-utils xinit x11-session-utils libfs6 Use 'apt-get autoremove' to remove them. The following extra packages will be installed: compiz-core compiz-plugins-default compiz-plugins-extra compiz-plugins-main-default libdecoration0 xserver-xorg-core xserver-xorg-video-intel Suggested packages: compizconfig-settings-manager xfonts-100dpi xfonts-75dpi The following packages will be REMOVED: compiz compiz-gnome compizconfig-backend-gconf edubuntu-desktop libcompizconfig0 ubuntu-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-openchrome xserver-xorg-video-qxl xserver-xorg-video-r128 xserver-xorg-video-radeon xserver-xorg-video-s3 xserver-xorg-video-savage 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 The following NEW packages will be installed: compiz-fusion-plugins-extra compiz-plugins-extra The following packages will be DOWNGRADED: compiz-core compiz-plugins-default compiz-plugins-main-default libdecoration0 xserver-xorg-core xserver-xorg-video-intel 0 upgraded, 2 newly installed, 6 downgraded, 37 to remove and 698 not upgraded. Need to get 0 B/5,772 kB of archives. After this operation, 8,294 kB disk space will be freed. Do you want to continue [Y/n]?
Странно!!!, Это пытается понизить уже установленные compiz пакеты точных для разрешения зависимостей (соответствие Oneiric один) с недавно выбранным compiz-fusion-plugins-extra
!!!.
То, которое более опасно, это пытается удалить пакеты графического драйвера (xserver-xorg-....) для предотвращения конфликта с новым compizes.
(Вероятно, Если у меня также были они в моем локальном репозитории, они могут безопасно хотеть понизить. Но поскольку те пакеты обычно устанавливаются, я не загружал их, так не находятся в локальном repo, следовательно этот результат).
Заключение: Так, использование /etc/apt/preferences
только рекомендуется использовать с локальным репозиторием, если у Вас есть полный репозиторий в локальной системе.
Который описан apt_preference
руководство
Несколько экземпляров той же версии пакета могут быть доступными, когда sources.list (5) файл содержит ссылки больше чем на один источник. В этом случае склонный - добираются (8) загрузки экземпляр, перечисленный самый ранний в sources.list (5) файл.
/etc/apt/preferences
файл:Пример принуждения apt-get
для выбора версии, доступной из пользовательского repo вместо стандарта Ubuntu, можно быть распределением "Linux Mint". Они используют это пользовательское preference
файл.
Package: * Pin: release o=linuxmint Pin-Priority: 700 Package: * Pin: origin packages.linuxmint.com Pin-Priority: 700 Package: * Pin: release o=Ubuntu Pin-Priority: 500
Это эффективно вызывает их, для обеспечения пакетов, когда у них есть пакеты в их репозиториях. Но если у них нет их, они используют стандартный репозиторий Ubuntu.
apt-get
после установки самого высокого приоритета к локальному репозиториюЯ просто хотел установить kubuntu-desktop
пакет по Ubuntu для тестирования KDE. (Я забыл, что, установил предпочтительное использование /etc/apt/preference
файл). У меня была ISO kubuntu-12.04-alternate-installer, таким образом, я думал, что могу использовать это.
(после надлежащей установки ISO как источник репозитория), я работал
sudo apt-get install kubuntu-desktop
, затем удивленный путем наблюдения вывода ниже.
anwar@edubuntu-lenovo:~$ sudo apt-get install kubuntu-desktop Reading package lists... Done Building dependency tree Reading state information... Done Some packages could not be installed. This may mean that you have requested an impossible situation or if you are using the unstable distribution that some required packages have not yet been created or been moved out of Incoming. The following information may help to resolve the situation: The following packages have unmet dependencies: kubuntu-desktop : Depends: language-selector-kde but it is not going to be installed Recommends: amarok but it is not going to be installed Recommends: apturl-kde but it is not going to be installed Recommends: gdebi-kde but it is not going to be installed Recommends: gpgsm but it is not going to be installed Recommends: ibus-qt4 but it is not going to be installed Recommends: jockey-kde but it is not going to be installed Recommends: kdegraphics-strigi-plugins but it is not going to be installed Recommends: kdepim-wizards but it is not going to be installed Recommends: kpackagekit but it is not going to be installed Recommends: libreoffice-kde but it is not going to be installed Recommends: libreoffice-style-oxygen but it is not going to be installed Recommends: network-manager-pptp-kde but it is not going to be installed Recommends: plasma-widget-facebook but it is not going to be installed Recommends: plasma-widget-kimpanel but it is not going to be installed Recommends: usb-creator-kde but it is not going to be installed E: Unable to correct problems, you have held broken packages.
Я был удивлен результатом. внезапно я помню, что, установил предпочтение (для записи этого ответа) в /etc/apt/preference
установить самый высокий приоритет на мой локальный репозиторий.
таким образом я выполнил это: apt-cache policy kubuntu-desktop
, вывод был как указано ниже:
anwar@edubuntu-lenovo:~$ apt-cache policy kubuntu-desktop kubuntu-desktop: Installed: (none) Candidate: 1.222.1kde47~ppa2 Version table: 1.254 0 500 cdrom://Kubuntu 12.04 LTS _Precise Pangolin_ - Release i386 (20120424)/ precise/main i386 Packages 500 http://archive.ubuntu.com/ubuntu/ precise/main i386 Packages 1.222.1kde47~ppa2 0 1001 file:/media/Main/Linux-Software/Ubuntu/Natty/natty/ Packages 1.222.1 0 1001 file:/media/Main/Linux-Software/Ubuntu/Natty/natty/ Packages 1.222 0 1001 file:/media/Main/Linux-Software/Ubuntu/Natty/kubuntu/ Packages
В этом выводе мы видим, что и "CD-ROM" и "точный основной репозиторий" имеют номер версии 1.254, в то время как локальный репозиторий имеет версию 1.222.1kde47~ppa2, которая является более низкой версией. Хотя, они размещаются перед локальными в sources.list файле локальные пакеты получили приоритет.
Явно видеть это apt-get
действительно пытается установить от локального, я работал synaptic
и получил это, которое показывает, что, система Кв. полагает 1.222.1kde47~ppa2 как новую версию устанавливать.
Также apt-cache policy kubuntu-desktop
показ того же самого
anwar@edubuntu-lenovo:~$ apt-cache policy kubuntu-desktop kubuntu-desktop: Installed: (none) Candidate: 1.222.1kde47~ppa2 Version table: 1.254 0 500 cdrom://Kubuntu 12.04 LTS _Precise Pangolin_ - Release i386 (20120424)/ precise/main i386 Packages 500 http://archive.ubuntu.com/ubuntu/ precise/main i386 Packages 1.222.1kde47~ppa2 0 1001 file:/media/Main/Linux-Software/Ubuntu/Natty/natty/ Packages 1.222.1 0 1001 file:/media/Main/Linux-Software/Ubuntu/Natty/natty/ Packages 1.222 0 1001 file:/media/Main/Linux-Software/Ubuntu/Natty/kubuntu/ Packages
Для решения этого я удалил /etc/apt/preference
файл sudo rm /etc/apt/preference
.
Затем выполнил снова это снова apt-cache policy kubuntu-desktop
. только видя этот ожидаемый вывод.
anwar@edubuntu-lenovo:~$ sudo rm /etc/apt/preferences anwar@edubuntu-lenovo:~$ sudo apt-cache policy kubuntu-desktop kubuntu-desktop: Installed: (none) Candidate: 1.254 Version table: 1.254 0 500 cdrom://Kubuntu 12.04 LTS _Precise Pangolin_ - Release i386 (20120424)/ precise/main i386 Packages 500 http://archive.ubuntu.com/ubuntu/ precise/main i386 Packages 1.222.1kde47~ppa2 0 500 file:/media/Main/Linux-Software/Ubuntu/Natty/natty/ Packages 1.222.1 0 500 file:/media/Main/Linux-Software/Ubuntu/Natty/natty/ Packages 1.222 0 500 file:/media/Main/Linux-Software/Ubuntu/Natty/kubuntu/ Packages
Также выполнил это снова. sudo apt-get install kubuntu-desktop
видеть вывод ниже:
......... Unnecessary details deleted ......... 0 upgraded, 213 newly installed, 0 to remove and 150 not upgraded. Need to get 0 B/89.6 MB of archives. After this operation, 269 MB of additional disk space will be used. Do you want to continue [Y/n]?
Можно проверить полный результат здесь
Затем я в значительной степени уверенный в части Объяснения.
Ссылка 1: apt_preference руководство
Ссылка 2: Как Сохранить определенную версию пакетов установленной