Equivs: улучшить или обновить существующий пакет без удаления?

На самом деле Ваша проблема была, Вы положили ПРОСТРАНСТВО НЕ НА МЕСТО между MyScript/и MYSCRIPT.py:

cpp Desktop/Peptoids/Final-Structures/MyScript/ MYSCRIPT.py

— А именно, это уничтожило Ваш файл сценария.

Так, Ваши опции теперь или переписывают Ваш сценарий с нуля или используют Mac OS X, восстанавливают программное обеспечение после удаления. Для увеличения возможностей восстановления, Вы должны, выключил Вашу систему как можно скорее, так как каждая операция файла могла бы, испортил содержание Вашего несвязанного сценария.

5
09.08.2013, 22:39
1 ответ

Ответ - то, что пакет создал с equivs-build из файла управления, который содержит вариацию на имя (libc6-локальный для напр.) существующего пакета и старшей версии, инициирует удаление более старого пакета, не из-за выполнения к prerm или postrm сценарии ни от одного новый или старый пакет, но дизайном.

Теперь, возможно создать пакет с совершенно другим именем и установить в файле управления, что это обеспечивает пакет как libc6. Строго говоря, рассмотрите следующий файл управления (только соответствующая часть показанный) для предложенного виртуального пакета:

Package: 6cbil-local //libc6 backwards is good enough
Version: 2.9
Provides: glibc-2.9
Section: libs

Сравните это с файлом управления в 2.17-0ubuntu5 libc6 (моя машина):

Package: libc6
Source: eglibc
Version: 2.17-0ubuntu5
Architecture: amd64
Maintainer: Ubuntu Developers <ubuntu-devel-discuss@lists.ubuntu.com>
Installed-Size: 10441
Depends: debconf (>= 0.5) | debconf-2.0, libgcc1
Suggests: glibc-doc, locales
Conflicts: prelink (<= 0.0.20090311-1), tzdata (<< 2007k-1), tzdata-etch
Breaks: lsb-core (<= 3.2-27), nscd (<< 2.17)
Replaces: libc6-amd64
Provides: glibc-2.17-1
Section: libs
Priority: required
Multi-Arch: same

Затем рассмотрите пустой пакет на основе этого файла управления:

Package: using6
Version: 1.0
Depends: libc6 (= 2.9) // it requires that specific version

Затем создайте пакеты. Наш виртуальный пакет, который обеспечивает бойкие 2,9 установки и не удаляет никого, установил libc6. Когда Вы пытаетесь установить наш пакет, который зависит от glibc-2.9, мы вкладываем ошибку apt (настроенный как 2,2 здесь):

The following packages have unmet dependencies:
 using6 : Depends: libc6 (= 2.9) but 2.17-0ubuntu5 is to be installed
E: Unable to correct problems, you have held broken packages.

или dpkg:

dpkg: dependency problems prevent configuration of using6:
 using6 depends on libc6 (= 2.9); however:
  Version of libc6:amd64 on system is 2.17-0ubuntu5.

Вернитесь к нашему начальному виртуальному пакету и замените то, чем он обеспечивает:

Provides: glibc-2.9, libc6

Затем попытайтесь переустановить наш пакет, который зависит от glibc-2.9. dpkg дает то же сообщение об ошибке, но нет apt!!!! Кв. на самом деле изменила свой ум минута, я создал пакеты после изменения обеспечить значения, затем продвинул изменения в Packages.gz и обновил склонный с dpkg-scanpackages dirwithpackages | gzip > dirwithpackages/Packages.gz затем sudo apt-get update:

The following packages have unmet dependencies:
 using6 : Depends: libc6 (= 2.9) //notice the reference to 2.17 is gone!!
E: Unable to correct problems, you have held broken packages.

Это на самом деле несколько отличается от объяснения, которое я пропустил в Руководстве Debian:


5.2.1.4.3. Текущие ограничения

Виртуальные пакеты страдают от некоторых беспокоящихся ограничений, старшего значащего из который, будучи отсутствием номера версии. Для возврата к предыдущему примеру, зависимость та, которая Зависит: libdigest-md5-perl (> = 1.6), несмотря на присутствие Perl 5.10, никогда не будут рассматривать, как удовлетворено упаковочной системой — в то время как на самом деле это, скорее всего, удовлетворено. Не зная об этом, система пакета выбирает наименее опасную опцию, предполагая, что версии не соответствуют.

ИДУЩИЙ ДАЛЕЕ Виртуальные версии пакета, Хотя сегодня виртуальные пакеты не могут иметь версий, это будет не обязательно всегда иметь место. Действительно, склонный уже может управлять версиями виртуальных пакетов, и вероятно, что dpkg в конечном счете будет также. Мы затем сможем записать поля те, которые Обеспечивают: libstorable-perl (= 1.7), чтобы указать, что пакет обеспечивает ту же функциональность как libstorable-perl в ее 1,7 версиях.


Опыт выше показывает это apt и dpkg ведший себя несколько по-другому (поскольку сообщения об ошибках изменяются) с моей установкой (Xubuntu 13.04, dpkg=1.16.10 (amd64) и apt=0.9.7.7ubuntu4 (amd64)). Apt подтверждает, что это видит, что этот пакет, который мы установили, обеспечивает libc6, но это не видит, что обеспечивает точно версию 2.9. В конечном счете способные вызовы dpkg так dpkg должны быть узким местом.

Это кажется на моей установке единственным значением, которое имеет значение для, "Обеспечивает" в файле управления согласно Вашему сценарию, libc6. Но этого не будет достаточно, чтобы позволить устанавливать программное обеспечение с уверенностью в определенной версии из-за текущих ограничений и дизайна.

Наконец, как Вы знаете, ld.config.so является средством для заботы обо всем соединении, как продемонстрировано в этом примере цепочки ld.so.conf файлов и каталогов. Связывающаяся инфраструктура и переменная $LD_LIBRARY_PATH к общим объектам берут приоритет над местоположениями библиотеки по умолчанию, такими как lib / и/usr/lib в этом контексте.

2
27.01.2020, 20:42
  • 1
    /etc/ld.conf.so.d/ дерево является одним из путей, как я позволяю приложения с помощью libc6=2.15 для выполнения, и у меня было мало проблемы с этим. Проблема - то, как установить те приложения лучший путь, чем при необходимости сделать старую церемонию компиляции из источника: им предоставляют упакованным! Из того, что я вижу из различных ссылок и связанных справочных файлов, кажется, что единственные пути, я должен был бы создать другой раздел и установить более усовершенствованный дистрибутив, живой там через debootsrtap. Или просто используйте VM. –  Luis Machuca 10.08.2013, 18:10
  • 2
    Так в основном это не может быть сделано в системе Debian дизайном? Учитывая, что у меня уже есть ld.config.so работа средства, мог я просто установка силы пакеты? –  Luis Machuca 17.08.2013, 00:38
  • 3
    Дизайн и ограничения я выставил. Я желаю, чтобы кто-то с большим опытом, чем я прокомментировал бы, поскольку я не знаю лучшие практики. Установка силы является всегда опасностью, и когда Вы заканчиваете с конфликтующим состоянием, это - путаница, и Вы теряете способность усилить dpkg одновременно, таким образом, Вы не можете установить перед разрешением конфликтов. Вполне уверенный способом пойти является установка из источника или компиляция из источника затем, пакет затем устанавливает - они не будут нуждаться в зависимостях и удалят легко. Но это является трудоемким. На Солярисе у Вас есть загрузочные среды и zfs rollback облегчить боль. –   17.08.2013, 05:41
  • 4
    Просто найденный этим..., возможно, это - что-то для попытки! 2.7.2 - 2.7.7. –   17.08.2013, 08:08

Теги

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