Перепакованное проприетарное ПО продолжает обновлять ту же самую

Я перепаковал проприетарную программу, поставляемую в виде tar-файла, в deb-файл для хранилища в масштабах всей компании.

Я использовал prespro для создания хранилища и подписал его. Временная метка Unix фальсифицирует нумерацию версий, поэтому я могу установить разные (реальные) версии одновременно. Почти все работает как положено. Файл deb выглядит следующим образом: mysoft8.0v6_1366455181_amd64.deb

Единственная проблема на клиентском компьютере - он пытается установить один и тот же файл deb снова и снова, потому что считает его обновлением. Чего мне не хватает:

контрольный файл в пакете deb выглядит так:

Package: mysoft8.0v6
Version: 1366455181
Section: base
Priority: optional
Architecture: amd64
Installed-Size: 1272572 
Depends:
Maintainer: me
Description: mysoft 8.0v6 dpkg repackaging

и конфиг в репозитории: /mirror/mycompany.inc/conf/distributions:

Origin: apt.mycompany.inc
Label: apt repository
Codename: precise
Architectures: amd64 i386
Components: main
Description: Mycompany debian/ubuntu package repo
SignWith: yes
Pull: precise

Помощь очень ценится

Добавлено руководство: Это Это руководство, которое я использовал для создания хранилища.

0
задан 28 October 2013 в 20:18

1 ответ

Чтобы одновременно устанавливать разные версии программного обеспечения, вам нужно использовать разные имена пакетов, а не разные номера версий; только одна версия пакета (идентифицируемая по имени) может быть установлена ​​одновременно.

Например, допустим, вам нужно установить MySoft 7 и MySoft 8 одновременно, но также необходимо обновить каждую версию, когда поставщик выпускает незначительные обновления. Может быть, вы начнете с MySoft 7.0 v6, которую вы хотите установить в /opt/vendor/mysoft7, и MySoft 8.0 v2, которую вы хотите установить в /opt/vendor/mysoft8, тогда вы создадите два пакета:

Package: mysoft7
Version: 7.0.6

и

Package: mysoft8
Version: 8.0.2

создать mysoft7_7.0.6_amd64.deb и mysoft8_8.0.2_amd64.deb. Теоретически вы можете использовать любую схему версий, какую захотите, но было бы желательно соответствовать соглашениям Debian при указании номера версии.

Затем, если вам нужно обновить любую версию из-за исходных изменений от поставщика, вы создадите новую версию соответствующего пакета и обновите соответствующий номер версии. Например, если MySoft 8.0 v3 выпущен, вы должны собрать:

Package: mysoft8
Version: 8.0.3

. После установки этого пакета будет автоматически удалена mysoft8 версия 8.0.2, что приведет к удалению установленных файлов из mysoft8_8.0.2_amd64.deb и замене их. с файлами, содержащимися в mysoft8_8.0.3_amd64.deb

Если вам нужно, чтобы все версии вышестоящих устанавливались одновременно, то вам нужно было бы использовать разные имена пакетов для каждой версии. На этом этапе номер версии пакета становится неактуальным, и вы можете просто использовать 1.0. Каждый из них должен быть установлен в другой каталог, поскольку файл может одновременно принадлежать только одному пакету. В этом случае вам придется вручную удалить ненужные старые версии программного обеспечения, удалив соответствующий пакет.

Мне немного непонятно, почему ваш текущий deb попытается переустановить, если он уже установлен (что, к сожалению, является сутью вашего вопроса!). Предполагается, что apt считает, что версия пакета, доступного в вашем репо, выше установленной версии. Возможно, размер номера версии сбивает его с толку? /var/log/dpkg.log и /var/log/apt/history.log должны показать вам, что происходит.

0
ответ дан 28 October 2013 в 20:18

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

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