[РЕШЕНО] Принадлежность самосборных пакетов к ветке Debian

Knoppix

Модераторы: Warderer, Модераторы разделов

Аватара пользователя
Bluetooth
Сообщения: 4395
Статус: Блюзовый
ОС: Debian Squeeze amd64

[РЕШЕНО] Принадлежность самосборных пакетов к ветке Debian

Сообщение Bluetooth »

Здравствуйте.

Собрал свой пакет, разместил его в репе собственном, засунув в ветку репа squeeze.

Однако, когда я подключил этот реп на машину, где стоит обычный пакет из stable, автоматом он обновляться не хотел, обновился, только когда я указал установить конкретную версию.

При этом aptitude -v show выдает вот это:

Код: Выделить всё

> aptitude show -v ganeti-instance-debootstrap
Пакет: ganeti-instance-debootstrap
Состояние: установлен
Автоматически установлен: нет
Версия: 0.11-1+sci1
Приоритет: дополнительный
Раздел: admin
Сопровождающий: Debian Ganeti Team <pkg-ganeti-devel@lists.alioth.debian.org>
Размер в распакованном виде: 295 k
Архитектура: all
Размер в сжатом виде: 22,2 k
Имя файла: pool/main/g/ganeti-instance-debootstrap/ganeti-instance-debootstrap_0.11-1+sci1_all.deb
MD5sum: ec3f03e2fbbcec813c5649b45d7e23cd
[b]Архив: <NULL>, now[/b]
Зависимости: debootstrap, dump, kpartx, initscripts
Ломают: ganeti (< 1.2.7)
Описание: debootstrap-based instance OS definition for ganeti
 Ganeti is a virtual server cluster management software tool built on top of the Xen
 virtual machine monitor and other Open Source software. After setting it up it will
 provide you with an automated environment to manage highly available virtual machine
 instances.

 This package provides an OS definition for ganeti that will allow installation of Debian
 (and possibly Unbuntu) instances via debootstrap.
Сайт: http://code.google.com/p/ganeti/

Пакет: ganeti-instance-debootstrap
Состояние: не установлен
Автоматически установлен: нет
Версия: 0.9-3
Приоритет: дополнительный
Раздел: admin
Сопровождающий: Debian Ganeti Team <pkg-ganeti-devel@lists.alioth.debian.org>
Размер в распакованном виде: 81,9 k
Архитектура: all
Размер в сжатом виде: 15,5 k
Имя файла: pool/main/g/ganeti-instance-debootstrap/ganeti-instance-debootstrap_0.9-3_all.deb
MD5sum: a41d54162b0be70259b117b7241e6285
[b]Архив: stable[/b]
Зависимости: debootstrap, dump, kpartx, initscripts
Ломают: ganeti (< 1.2.7)
Описание: debootstrap-based instance OS definition for ganeti
 Ganeti is a virtual server cluster management software tool built on top of the Xen
 virtual machine monitor and other Open Source software. After setting it up it will
 provide you with an automated environment to manage highly available virtual machine
 instances.

 This package provides an OS definition for ganeti that will allow installation of Debian
 (and possibly Unbuntu) instances via debootstrap.
Сайт: http://code.google.com/p/ganeti/


И вот отсюда вопрос: как указать ветку для пакета? Я сначала думал, что достаточно просто засунуть его в нужную ветку репа, но, похоже, это не так.
В самом пакете упоминание ветки помню только в debian/changelog. Вот он в моем случае:

Код: Выделить всё

ganeti-instance-debootstrap (0.11-1+sci1) unstable; urgency=low

  * Add sci specific hooks
  * Instead of removing root password copy it from node
  * Add instance-ubootstrap for ubuntu

 --  Sat, 20 Apr 2013 01:19:24 +0400

ganeti-instance-debootstrap (0.11-1) unstable; urgency=low

  * New upstream version, with a number of small fixes and improvements;
    also Closes: #672114
  * Standards version 3.9.3 (no changes needed)
  * Reorg debian/rules a bit

 --  Wed, 09 May 2012 21:15:18 +0200

Но, если информация берется отсюда, логично предположить, что aptitude показывал бы архив unstable...
Спасибо сказали:
Аватара пользователя
Bizdelnick
Модератор
Сообщения: 21346
Статус: nulla salus bello
ОС: Debian GNU/Linux

Re: [РЕШЕНО] Принадлежность самосборных пакетов к ветке Debian

Сообщение Bizdelnick »

Самосборный - тот, который 0.11? Тогда странно. А нет ли чего интересного в cat /etc/apt/preferences{,.d/*}?
Запись в ченжлоге не должна ни на что влиять, потому что многие пакеты перекочёвывают между ветками без пересборки.
Реп нормально подписан, ключ импортирован?
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:
Аватара пользователя
Bluetooth
Сообщения: 4395
Статус: Блюзовый
ОС: Debian Squeeze amd64

Re: [РЕШЕНО] Принадлежность самосборных пакетов к ветке Debian

Сообщение Bluetooth »

Bizdelnick писал(а):
23.04.2013 11:18
Самосборный - тот, который 0.11?

да.
Тогда странно. А нет ли чего интересного в cat /etc/apt/preferences{,.d/*}?

вот что есть вообще в каталоге настроек apt(в preferences пусто):

Код: Выделить всё

cat /etc/apt/apt.conf.d/*
Acquire::cdrom {
  mount "/media/cdrom";
}
Dir::Media::MountPath "/media/cdrom";
APT::Authentication::TrustCDROM "true";
APT
{
  NeverAutoRemove
  {
    "^firmware-linux.*";
    "^linux-firmware$";
    "^linux-image.*";
    "^kfreebsd-image.*";
    "^linux-restricted-modules.*";
    "^linux-ubuntu-modules-.*";
  };

  Never-MarkAuto-Sections
  {
    "metapackages";
    "restricted/metapackages";
    "universe/metapackages";
    "multiverse/metapackages";
    "oldlibs";
    "restricted/oldlibs";
    "universe/oldlibs";
    "multiverse/oldlibs";
  };
};
DPkg::Pre-Invoke       { "if [ -x /usr/sbin/etckeeper ]; then etckeeper pre-install; fi"; };
DPkg::Post-Invoke      { "if [ -x /usr/sbin/etckeeper ]; then etckeeper post-install; fi"; };

RPM::Pre-Invoke       { "if [ -x /usr/sbin/etckeeper ]; then etckeeper pre-install; fi"; };
RPM::Post-Invoke      { "if [ -x /usr/sbin/etckeeper ]; then etckeeper post-install; fi"; };
//
//  rulled by puppet. resistance is futile.
//
APT::Periodic::Update-Package-Lists "1";
APT::Periodic::Download-Upgradeable-Packages "1";
// Pre-configure all packages with debconf before they are installed.
// If you don't like it, comment it out.
DPkg::Pre-Install-Pkgs {"/usr/sbin/dpkg-preconfigure --apt || true";};
Acquire::cdrom::mount "/media/sci";
APT::CDROM::NoMount;
APT::Default-Release "stable";

Запись в ченжлоге не должна ни на что влиять, потому что многие пакеты перекочёвывают между ветками без пересборки.
Вот и я так мыслю.
Реп нормально подписан, ключ импортирован?
Да. По крайней мере, апт не ругается.

В sources это выглядит так:

Код: Выделить всё

deb http://sci-dev.skycover.ru/apt squeeze main
Спасибо сказали:
Аватара пользователя
sgfault
Сообщения: 586
Статус: -

Re: [РЕШЕНО] Принадлежность самосборных пакетов к ветке Debian

Сообщение sgfault »

Bluetooth писал(а):
23.04.2013 10:32
И вот отсюда вопрос: как указать ветку для пакета? Я сначала думал, что достаточно просто засунуть его в нужную ветку репа, но, похоже, это не так.
В самом пакете упоминание ветки помню только в debian/changelog. Вот он в моем случае:

Что вы имеете в виду под веткой? Codename (squeeze/wheezy), suite или archive (stable, testing) или component (main, contrib) ?
Потом, я все-таки не слишком доверяю aptitude и хотелось бы увидеть

Код: Выделить всё

# apt-cache policy PKG

и приоритеты репозиториев (хоть у вас preferences и нет, но все-таки лишний раз убедиться, на всякий пожарный):

Код: Выделить всё

# apt-cache policy


Что касается codename, distribution и component пакета: я не знаю, как вы делали репозиторий, но, насколько я понимаю, это должно определяться из Release файлов. Файл в верхнем уровне всего репозитория перечисляет component-ы, и указывает Suite и Codename. Например,

Код: Выделить всё

$ head dists/stable-shilvana/Release
Architectures: i386 source
Codename: squeeze-shilvana
Components: backports fixes new
Date: Thu, 17 May 2012 08:02:09 UTC
Description: Shilvana Debian stable archive
Label: Debian Shilvana
Origin: Debian Shilvana
Suite: stable-shilvana


Потом в папке соответствующего component-а (допустим, backports) должен быть еще один Release файл:

Код: Выделить всё

$ head dists/stable-shilvana/backports/binary-i386/Release
Archive: stable-shilvana
Origin: Debian Shilvana
Label: Debian Shilvana
Component: backports
Architecture: i386


И там же находятся Packages файлы, содержащие описание пакетов из component-а backports:

Код: Выделить всё

$ ls dists/stable-shilvana/backports/binary-i386/
Packages  Packages.bz2  Packages.gz  Release


Но, вообще, я делал этот репозиторий давно, и мог что-то перепутать. :huh:

Upd.
Да, и еще: насколько я понимаю, вся эта информация из Release файлов (те codename, suite, component) должна иметь значение только для package и repository pinning (в apt/preferences). А если у вас это не используется (те везде приоритет 500), то apt должен просто сравнивать версии.
Спасибо сказали:
Аватара пользователя
Bluetooth
Сообщения: 4395
Статус: Блюзовый
ОС: Debian Squeeze amd64

Re: [РЕШЕНО] Принадлежность самосборных пакетов к ветке Debian

Сообщение Bluetooth »

sgfault, спасибо за предоставленную информацию, Вы указали путь для изучения ситуации.

Завтра изучу файлы и расскажу, что узнал. а пока вот:

Код: Выделить всё

apt-cache policy ganeti-instance-debootstrap
ganeti-instance-debootstrap:
  Установлен: 0.11-1+sci1
  Кандидат:   0.11-1+sci1
  Таблица версий:
 *** 0.11-1+sci1 0
        500 http://sci-dev.skycover.ru/apt/ squeeze/main amd64 Packages
        100 /var/lib/dpkg/status
     0.9-3 0
        990 http://mirror.yandex.ru/debian/ squeeze/main amd64 Packages
Спасибо сказали:
Аватара пользователя
sgfault
Сообщения: 586
Статус: -

Re: [РЕШЕНО] Принадлежность самосборных пакетов к ветке Debian

Сообщение sgfault »

Bluetooth писал(а):
24.04.2013 00:50
а пока вот:

Код: Выделить всё

apt-cache policy ganeti-instance-debootstrap
ganeti-instance-debootstrap:
  Установлен: 0.11-1+sci1
  Кандидат:   0.11-1+sci1
  Таблица версий:
 *** 0.11-1+sci1 0
        500 http://sci-dev.skycover.ru/apt/ squeeze/main amd64 Packages
        100 /var/lib/dpkg/status
     0.9-3 0
        990 http://mirror.yandex.ru/debian/ squeeze/main amd64 Packages

А, ну так он и не должен был устанавливаться. У вас же приоритеты разные: репозиторий http://sci-dev.skycover.ru/apt/squeeze/main имеет приоритет 500, а http://mirror.yandex.ru/debian/squeeze/main - 990.

Попробуйте закомментировать эту строчку

Код: Выделить всё

APT::Default-Release "stable";

в каком-то из конфигов в apt/apt.conf.d. После этого посмотрите

Код: Выделить всё

# apt-cache policy

и приоритет у яндексовского репозитория должен стать 500, и тогда будет предлагаться просто пакет с большей версией.

Если же вы не хотите менять target-release, вы можете увеличить приоритет своего репозитория до 990 через apt-preferences. Как-то так:

Код: Выделить всё

Package:        *
Pin:            origin "sci-dev.skycover.ru"
Pin-Priority:   990


Upd.
Исправлен неправильный синтаксис в 'Pin:'.
Спасибо сказали:
Аватара пользователя
Bluetooth
Сообщения: 4395
Статус: Блюзовый
ОС: Debian Squeeze amd64

Re: [РЕШЕНО] Принадлежность самосборных пакетов к ветке Debian

Сообщение Bluetooth »

А, ну так он и не должен был устанавливаться. У вас же приоритеты разные: репозиторий http://sci-dev.skycover.ru/apt/squeeze/main имеет приоритет 500, а http://mirror.yandex.ru/debian/squeeze/main - 990.
Я так понимаю, 990 имеет приоритет stable, ибо у меня задано DefaultRelease Stable. Но я вообще хотел бы, чтобы sci-dev имел такой же приоритет. Я понимаю, надо смотреть файлы настройки репа?
Спасибо сказали:
Аватара пользователя
Bluetooth
Сообщения: 4395
Статус: Блюзовый
ОС: Debian Squeeze amd64

Re: [РЕШЕНО] Принадлежность самосборных пакетов к ветке Debian

Сообщение Bluetooth »

Проблема решена. Я в настройках репа (conf/distributions) забыл прописать suite. Подумал, что codename хватит :)
Спасибо за помощь!
Спасибо сказали:
Аватара пользователя
sgfault
Сообщения: 586
Статус: -

Re: [РЕШЕНО] Принадлежность самосборных пакетов к ветке Debian

Сообщение sgfault »

Bluetooth писал(а):
24.04.2013 12:11
Я так понимаю, 990 имеет приоритет stable, ибо у меня задано DefaultRelease Stable. Но я вообще хотел бы, чтобы sci-dev имел такой же приоритет.

Вот еще хотел бы обратить ваше внимание, просто на всякий случай: если оба репозитория - yandex.ru и sci-dev - имеют одинаковый приоритет (990 в данном случае), то пакеты из них будут сравниваться просто по версии. Те, если в вашем репозитории 0.11-1+sci1, а в яндексе 0.9-3, то ставится ваша версия. Но как только в яндексе станет версия >= чем ваша, то ваша версия будет обновлена. Это я говорю к тому, что если вы применяете там какие-то фиксы, которых нету в upstream, то возможно вы не захотите просто обновлять ее на новую, не содержащую фиксов. Если это так, то вашему репозиторию надо поставить приоритет больше (например, 991). Правда, в этом случае за обновлениями придется следить самому. Сделать это можно, например, через apt/preferences.

Также хотел бы обратить ваше внимания, что если у вас подключен репозиторий squeeze-updates, то, когда вы ставите Default-Release в "stable" или "squeeze", он не получает приоритет 990, тк у него codename 'n=squeeze-updates' и suite 'a=stable-updates'.

ЗЫ. А, да, и еще, в моем примере с выставлением приоритета через apt/preferences для sci-dev из #6 сообщения была маленькая ошибочка. Сейчас я ее исправил.
Спасибо сказали:
Аватара пользователя
Bluetooth
Сообщения: 4395
Статус: Блюзовый
ОС: Debian Squeeze amd64

Re: [РЕШЕНО] Принадлежность самосборных пакетов к ветке Debian

Сообщение Bluetooth »

sgfault писал(а):
24.04.2013 14:00
Вот еще хотел бы обратить ваше внимание, просто на всякий случай: если оба репозитория - yandex.ru и sci-dev - имеют одинаковый приоритет (990 в данном случае), то пакеты из них будут сравниваться просто по версии. Те, если в вашем репозитории 0.11-1+sci1, а в яндексе 0.9-3, то ставится ваша версия. Но как только в яндексе станет версия >= чем ваша, то ваша версия будет обновлена. Это я говорю к тому, что если вы применяете там какие-то фиксы, которых нету в upstream, то возможно вы не захотите просто обновлять ее на новую, не содержащую фиксов. Если это так, то вашему репозиторию надо поставить приоритет больше (например, 991). Правда, в этом случае за обновлениями придется следить самому. Сделать это можно, например, через apt/preferences.
Ну это очевидная вещь, но все равно, спасибо.

Также хотел бы обратить ваше внимания, что если у вас подключен репозиторий squeeze-updates, то, когда вы ставите Default-Release в "stable" или "squeeze", он не получает приоритет 990, тк у него codename 'n=squeeze-updates' и suite 'a=stable-updates'.

А вот это - неожиданная информация. Ну и, исходя из моей практики, она не подтверждается. Да и вот apt-cache policy вот что говорит:

Код: Выделить всё

linux-image-2.6.32-5-amd64:
  Установлен: (отсутствует)
  Кандидат:   2.6.32-48squeeze1
  Таблица версий:
     2.6.32-48squeeze1 0
        990 http://mirror.yandex.ru/debian-security/ squeeze/updates/main amd64 Packages
     2.6.32-48 0
        990 http://mirror.yandex.ru/debian/ squeeze/main amd64 Packages

И, если посмотреть Release из squeeze/updates, то увидим следующую картину:

Код: Выделить всё

Origin: Debian
Label: Debian-Security
Suite: stable
Version: 6.0
Codename: squeeze
Date: Mon, 22 Apr 2013 21:07:09 UTC
Valid-Until: Thu, 02 May 2013 21:07:09 UTC
Architectures: amd64 armel i386 ia64 kfreebsd-amd64 kfreebsd-i386 mips mipsel powerpc s390 sparc
Components: updates/updates/main updates/updates/contrib updates/updates/non-free
Description: Debian 6.0 Security Updates

Т.е. У squeeze/updates сьют и коднейм такие же, как у стейбла. Что и логично - ветка-то одна.

Спасибо сказали:
Аватара пользователя
sgfault
Сообщения: 586
Статус: -

Re: [РЕШЕНО] Принадлежность самосборных пакетов к ветке Debian

Сообщение sgfault »

Bluetooth писал(а):
24.04.2013 17:49
Также хотел бы обратить ваше внимания, что если у вас подключен репозиторий squeeze-updates, то, когда вы ставите Default-Release в "stable" или "squeeze", он не получает приоритет 990, тк у него codename 'n=squeeze-updates' и suite 'a=stable-updates'.

А вот это - неожиданная информация. Ну и, исходя из моей практики, она не подтверждается. Да и вот apt-cache policy вот что говорит:

Код: Выделить всё

linux-image-2.6.32-5-amd64:
  Установлен: (отсутствует)
  Кандидат:   2.6.32-48squeeze1
  Таблица версий:
     2.6.32-48squeeze1 0
        990 http://mirror.yandex.ru/debian-security/ squeeze/updates/main amd64 Packages
     2.6.32-48 0
        990 http://mirror.yandex.ru/debian/ squeeze/main amd64 Packages

И, если посмотреть Release из squeeze/updates, то увидим следующую картину:

Код: Выделить всё

Origin: Debian
Label: Debian-Security
Suite: stable
Version: 6.0
Codename: squeeze
Date: Mon, 22 Apr 2013 21:07:09 UTC
Valid-Until: Thu, 02 May 2013 21:07:09 UTC
Architectures: amd64 armel i386 ia64 kfreebsd-amd64 kfreebsd-i386 mips mipsel powerpc s390 sparc
Components: updates/updates/main updates/updates/contrib updates/updates/non-free
Description: Debian 6.0 Security Updates

Т.е. У squeeze/updates сьют и коднейм такие же, как у стейбла. Что и логично - ветка-то одна.

Вы написали про репозиторий с обновлениями безопасности, а я говорил про другой - именно squeeze-updates (а не squeeze/updates). Вот, смотрите

Код: Выделить всё

# grep squeeze-updates /etc/apt/sources.list
deb     http://ftp.ru.debian.org/debian/ squeeze-updates main contrib non-free
deb-src http://ftp.ru.debian.org/debian/ squeeze-updates main contrib non-free

И у него codename squeeze-updates, и suite stable-updates:

Код: Выделить всё

# apt-cache policy  | grep squeeze-updates
 100 http://ftp.ru.debian.org/debian/ squeeze-updates/non-free i386 Packages
     release o=Debian,a=stable-updates,n=squeeze-updates,l=Debian,c=non-free
 100 http://ftp.ru.debian.org/debian/ squeeze-updates/contrib i386 Packages
     release o=Debian,a=stable-updates,n=squeeze-updates,l=Debian,c=contrib
 100 http://ftp.ru.debian.org/debian/ squeeze-updates/main i386 Packages
     release o=Debian,a=stable-updates,n=squeeze-updates,l=Debian,c=main


Видимо, это тот, что раньше назывался volatile: Debian volatile replaced by new updates suite.
Спасибо сказали:
Аватара пользователя
Bluetooth
Сообщения: 4395
Статус: Блюзовый
ОС: Debian Squeeze amd64

Re: [РЕШЕНО] Принадлежность самосборных пакетов к ветке Debian

Сообщение Bluetooth »

О как, а я и не подозревал об этом репе. Думал, volatile насмерть прибили :)
Спасибо сказали: