Почему не делает склонный - получают работу разрешения зависимости от установки при определении старых версий?

Следующее раньше работало, и теперь это не делает:

apt-get install r-base=3.3.1-1trusty0 r-base-dev=3.3.1-1trusty0 r-recommended=3.3.1-1trusty0 r-base-core=3.3.1-1trusty0
Reading package lists... Done
Building dependency tree       
Reading state information... Done
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:

The following packages have unmet dependencies:
 r-recommended : Depends: r-cran-mgcv (>= 1.1.5) but it is not going to be installed
                 Depends: r-cran-nlme (>= 3.1.52) but it is not going to be installed
E: Unable to correct problems, you have held broken packages.

Если я удаляю версии (например, 3.3.1-1trusty0), склонный - получают работы установки без ошибок.

Этот ответ отмечает, что при определении версий, "Вы, возможно, должны сделать некоторое разрешение зависимости самостоятельно".

Почему разрешение зависимости перестало работать, когда версия указана? Каково вероятное объяснение того, почему склонный - получают установку, за которой следуют без ошибок зависимости с этой той же командой (использующий эти версии) приблизительно месяц назад?

0
задан 13 April 2017 в 15:23

1 ответ

Ваша более старая версия должна удовлетворить два критерия.

1) старая версия должна быть в репозитории, настолько склонном, видят.

2) старая версия не должна повреждать другое программное обеспечение в Вашей системе.

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

Зависимости как foo 1.1 depends upon libfoo(>0.98) установлены поставщиком программного блока программного обеспечения, когда они создают пакет. Поставщики программного блока являются волонтерами - можно учиться делать это, также.

Ленивые поставщики программного блока просто используют текущие зависимости, которые они имеют под рукой. Пример: foo 1.1 depends upon libfoo(=1.1). То отсутствие гибкости в версиях зависимости вызывает много проблем для пользователей. Ленивые пакеты найдены во многих PPAs, и другая не-Ubuntu получила программное обеспечение и является одной причиной, это не поддерживается источники.

более опытные поставщики программного блока протестируют свои пакеты для достижения функциональности с самым широким диапазоном версий зависимости. Пример: foo 1.1 depends upon libfoo(>=0.75). Эти пакеты обычно находятся в Debian и импортируются в Ubuntu каждый цикл выпуска.

Дистрибутивы как Debian и Ubuntu являются дистрибутивами 'снимка'. Каждый выпуск основан на единственном устойчивом снимке. Более старые снимки находятся в более старых выпусках. Так как версии постоянно изменяются, это обычно означает, что много пакетов совместимы ТОЛЬКО с выпуском, для которого они создаются.

, Если Вы хотите выполнить более старые пакеты, необходимо часто делать так в более старом релизе Ubuntu (использующий VM, например). Вы установка CAN более старое программное обеспечение на любом Вы система Вы желаете..., но не при помощи пакетов.

2
ответ дан 27 September 2019 в 11:20

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

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