如何使用特定的存储库

我试图从我自己的存储库安装imagemagick包。 这是我的一步一步:

我使用confpro实用程序创build了apt存储库:

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) ... 

我想简短的回答是,select软件包版本,而不是软件仓库。

apt_preferences(1)表示apt将“安装最高优先级的版本”,它正在做的事情。 但并不是说它会从最高优先级的存储库安装它。 它可能只是select具有该版本的列表中的第一个存储库。

据apt了解,版本库和archive.ubuntu.com中的软件包版本相同,因为它们具有相同的版本号。 如果他们是相同的,那么真的没有问题,除非你不能testing你的仓库。 如果他们不一样,那么你有一个包装问题,应该改变你的包中的版本号。

如果你想强制使用你的仓库来testing它,你可以尝试将imagemagick的Pin-Priority提高到1000以上。这触发了apt中不同的逻辑,这将迫使它降级一个包,它可能会让它select你的仓库。 或者,在存储库中安装不同版本的软件包,并查看是否select正确的软件包。