пакет установки от определенные дистрибутивы с частным способным репозиторием?

таким образом, я размещаю частный способный репозиторий.

иерархия похожа на это:

├── stable
│  ├── main
│  │  └── binary-all
│  │  ├── Packages
│  │  └── mypackage_2.3.1_all.deb
│  ├── Release
│  └── Release.gpg
└── unstable
    ├── main
    │  └── binary-all
    │  ├── Packages
    │  └── mypackage_2.3.2_all.deb
    ├── rc
    │  └── binary-all
    │  ├── Packages
    │  └── mypackage_2.3.2_all.deb
    ├── Release
    └── Release.gpg

мой исходный файл похож на это:

deb [arch=all] https://user:pass@my.apt-server.com/ stable main
deb [arch=all] https://user:pass@my.apt-server.com/ unstable main rc

apt-cache policy mypackage

mypackage:
  Installed: (none)
  Candidate: 2.3.2
  Version table:
     2.3.2 500
        500 https://my.apt-server.com unstable/main all Packages
        500 https://my.apt-server.com unstable/rc all Packages
     2.3.1 500
        500 https://my.apt-server.com stable/main all Packages

стабильный Release содержание файла (без хешей):

Date: Wed, 12 Oct 2016 09:29:19 UTC
MD5Sum:
                 0 Release
               707 main/binary-all/Packages
SHA1:
                 0 Release
               707 main/binary-all/Packages
SHA256:
                 0 Release
               707 main/binary-all/Packages
SHA512:
                 0 Release
               707 main/binary-all/Packages

нестабильный Release содержание файла (без хешей):

Date: Wed, 12 Oct 2016 09:29:27 UTC
MD5Sum:
                 0 Release
               709 main/binary-all/Packages
               705 rc/binary-all/Packages
SHA1:
                 0 Release
               709 main/binary-all/Packages
               705 rc/binary-all/Packages
SHA256:
                 0 Release
               709 main/binary-all/Packages
               705 rc/binary-all/Packages
SHA512:
                 0 Release
               709 main/binary-all/Packages
               705 rc/binary-all/Packages

проблема, когда я пытаюсь установить от stable путем выполнения команды:
sudo apt-get install -t stable mypackage

это все еще устанавливает последний пакет от нестабильного/основного mypackage_2.3.2_all.deb
а не пакет от стабильного/основного mypackage_2.3.1_all.deb

я также пытался прикрепить (из этого ответа)
созданный файл в/etc/apt/preferences.d с:

Package: *
Pin: release n=unstable
Pin-Priority: 50

но все еще старшая версия от нестабильного установлена.
Что я делаю неправильно?

3
задан 13 April 2017 в 15:25

1 ответ

Ваши Release файлы должны содержать заголовок Codename, чтобы разрешить закрепление по имени выпуска. Из man apt_preferences:

The Release file is normally found in the directory .../dists/dist-name: for
example, .../dists/stable/Release, or .../dists/wheezy/Release. It consists of a
single multi-line record which applies to all of the packages in the directory
tree below its parent. Unlike the Packages file, nearly all of the lines in a
Release file are relevant for setting APT priorities:

[...]

the Codename: line
    names the codename to which all the packages in the directory tree belong.
    For example, the line "Codename: jessie" specifies that all of the packages
    in the directory tree below the parent of the Release file belong to a
    version named jessie. Specifying this value in the APT preferences file would
    require the line:

        Pin: release n=jessie

См. Для справки файл Release официального репозитория Xenial .

1
ответ дан 1 December 2019 в 17:31

Другие вопросы по тегам:

Похожие вопросы: