Назад | Перейти на главную страницу

Как использовать конкретный репозиторий APT

Я пытаюсь установить пакет imagemagick из собственного репозитория. Вот моя пошаговая инструкция:

Я создал репозиторий apt с помощью утилиты репро с conf:

Origin: custom-repo.s3.amazonaws.com
Label: custom-repo.s3.amazonaws.com
Codename: precise
Components: main
Architectures: i386 amd64
Description: Custom APT Repository
SignWith: 12312312
DebOverride: override.precise
DscOverride: override.precise

В целевом экземпляре я добавил это настраиваемое репо в /etc/apt/sources.list.d/custom.list:

deb     http://custom-repo.s3.amazonaws.com precise main

И изменили настройки APT (/ etc / apt / preferences):

Package: *
Pin: release o=custom-repo.s3.amazonaws.com
Pin-Priority: 999

Вот политика APT (после обновления):

imagemagick:
  Installed: (none)
  Candidate: 8:6.6.9.7-5ubuntu3.3
  Version table:
     8:6.6.9.7-5ubuntu3.3 0
        500 http://archive.ubuntu.com/ubuntu/ precise-updates/main amd64 Packages
        500 http://security.ubuntu.com/ubuntu/ precise-security/main amd64 Packages
        999 http://custom-repo.s3.amazonaws.com/ precise/main amd64 Packages
     8:6.6.9.7-5ubuntu3 0
        500 http://archive.ubuntu.com/ubuntu/ precise/main amd64 Packages

Теперь я пытаюсь установить пакет imagemagick из собственного репозитория (но он установлен с archive.ubuntu.com):

apt-get install imagemagick
Reading package lists... Done
Building dependency tree       
Reading state information... Done
Suggested packages:
  imagemagick-doc autotrace cups-bsd lpr lprng enscript ffmpeg gimp gnuplot grads hp2xx html2ps libwmf-bin mplayer povray radiance sane-utils texlive-base-bin transfig xdg-utils ufraw-batch
The following NEW packages will be installed:
  imagemagick
0 upgraded, 1 newly installed, 0 to remove and 2 not upgraded.
Need to get 49.2 kB of archives.
After this operation, 213 kB of additional disk space will be used.
Get:1 http://archive.ubuntu.com/ubuntu/ precise-updates/main imagemagick amd64 8:6.6.9.7-5ubuntu3.3 [49.2 kB]
Fetched 49.2 kB in 0s (96.8 kB/s)
Selecting previously unselected package imagemagick.
(Reading database ... 94215 files and directories currently installed.)
Unpacking imagemagick (from .../imagemagick_8%3a6.6.9.7-5ubuntu3.3_amd64.deb) ...
Processing triggers for man-db ...
Setting up imagemagick (8:6.6.9.7-5ubuntu3.3) ...

Я думаю, что краткий ответ: apt выбирает версии пакетов, а не репозитории.

apt_preferences (1) говорит, что apt «установит версию с наивысшим приоритетом», что он и делает. Но он не говорит, что установит его из репозитория с наивысшим приоритетом. Возможно, это просто выбор первого репозитория в списке, в котором есть эта версия.

Насколько известно apt, версии пакета в вашем репозитории и на archive.ubuntu.com одинаковы, поскольку они имеют одинаковые номера версий. Если они одинаковы, то проблем действительно нет, за исключением того, что вы не можете протестировать свой репозиторий. Если они не совпадают, значит, у вас проблема с упаковкой, и вам следует изменить номер версии в вашем пакете.

Если вы действительно хотите заставить apt использовать ваш репозиторий для его тестирования, вы можете попробовать поднять Pin-Priority imagemagick до более чем 1000. Это запускает другую логику в apt, которая заставит его понизить версию пакета, и это может сделать так, чтобы он выбрал ваш репозиторий. Или установите другую версию пакета в свой репозиторий и посмотрите, выберет ли apt правильный.