Я просто хочу установить пакет!

Я просто хочу установить пакет!

Я потратил несколько часов, пытаясь установить пакет, но безуспешно; похоже, такое иногда случается только в среде Linux.

Предыстория: Пакет, который я хочу установить, доступен как 1) .debдля x86 вместо x64, 2) .Run, 3) ​​исходный код и 4) установщик OSX. Установщик OSX просто работает. На новой установке Debian 7 я пробовал .deb, .Runи компиляцию из исходного кода. Все три провели меня через ряд препятствий. Наиболее основные проблемы, по-видимому, заключаются в том, что по любому из этих путей Debian 7 выдавал мне слишком старую версию LibCи слишком старую версию Ocaml. Большую часть времени я тратил на выполнение одной команды apt-get за другой, пытаясь разрешить зависимости.

Вопрос: Какие есть инструменты, которые упрощают установку пакетов, максимально автоматизируя процесс? Все пакеты, даже собранные из исходников, дают понять, какие версии каких зависимостей им требуются, верно? Так почему же все зависимости не могут быть просто разрешены автоматически?

Я был бы счастлив даже просто создать каталог в своей системе, содержащий копию каждой отдельной зависимости, которую требует мой пакет, чтобы он мог работать в своей собственной маленькой среде, не изменяя версии других пакетов в моей системе; я не уверен, возможно ли это. Я уверен, что должен быть КАКОЙ-ТО способ просто сказать "дайте мне пакет с именем Foo, версии 4.2.3" и сделать все остальное за меня.

решение1

Опыт практически идентичен. Ваша проблема в том, что Debian (stable) не является передовым дистрибутивом, онстабильный. Это означает, что в его репозиториях будут более старые версии пакетов (кстати, неплохо было бы упомянуть имя пакета). Вы сравниваете его с новой версией OSX, в которой есть более новые версии основных библиотек, таких как libc.

Installing .deb packages that have been packaged for the version of Debian that you are running is very easy and painless. Believe me, I used to have to install most things from source. When you run aptitude install foo.4.2.3.deb you являютсяговоря "дайте мне пакет с именем Foo, версии 4.2.3" и все остальное сделают за вас. Если его нет в репозиториях, потому что вы используете старую версию, это не вина менеджера пакетов.

Итак, я бы рекомендовал разместить новый вопрос и спросить, как вы можете установить конкретный пакет, который вы пытаетесь получить. Имейте в виду, что если требуется более новая версия, то, libcвероятно, проще обновить всю вашу систему до репозиториев testingили experimental. Хотя возможно обновить только libc, это нелегко и не прямолинейно, см.здесь.

Также вам следует знать, что этонеттривиальная проблема. Хотя зависимости очень хорошо управляются менеджерами пакетов, они могут конфликтовать. Особенно при работе с чем-то таким базовым, как libc.

Эта команда выведет список пакетов, зависящих от libc.

apt-cache rdepends libc6

На моем Debian этот список содержит 16056 различных пакетов. Если вы обновляете libc, потому что пакет fooзависит от более новой версии, как менеджер пакетов должен отреагировать на тот факт, что 16056 пакетов зависят от установленной версии? Как он может узнать, будут ли они также совместимы с более новой версией?

решение2

Я хотел бы просто вмешаться и сказать, что, по моему мнению, ваши ожидания просто ошибочны.

Решения нацелены на 2 совершенно разные аудитории. Apple жестко контролирует, какое программное обеспечение доступно, и это узкая полоска приложений.

Я помог большему количеству людей, которых я готов признать, которые использовали систему OSX, где они хотели установить проект с открытым исходным кодом "X", и они проходили через все те же типы препятствий на OSX с неправильной версией Xcode, или они использовали официальную версию Subversion и им нужно было установить версию из MacPorts или HomeBrew. Не было буквально никакой разницы в борьбе с различными библиотеками и зависимостями, пока вы не смогли установить этот пакет "X".

Я не видел ни одного волшебного инструмента, который бы просто позволил вам поместить зависимости в каталог и установить приложение "X". Его просто не существует и, скорее всего, никогда не будет. Было предпринято несколько попыток улучшить управление зависимостями и пакетами, но это просто чрезвычайно сложная проблема для решения.

Apt, Yum и т. д. все это делают достойно, но проблема в том, что они пытаются решить несвязанную проблему, что обычно невозможно. Вы можете получить только 80% типов решений для нее или решения, которые работают для "большинства" случаев.

Вот так просто.

Связанный контент