шаблон для установки зависимостей в Linux

ответ ceving объясняет что -j делает. Я думаю, что Вы ищете

less +200 filename           # jump to line 200 (the first line is 1)

+NUM переключатель для перехода для выравнивания ЦИФРЫ довольно распространен среди средств просмотра текста Unix (запускающийся с more) и редакторы. В меньше, это - экземпляр более общего +command который позволяет Вам выполнить команду автоматически после открытия файла. Другие типичные примеры:

less +200P filename          # jump to the line containing byte 200
less +G filename             # jump to the end of the file (G command)
less +/hello filename        # jump to the first occurrence of hello

0
15.05.2012, 08:00
1 ответ

У Вас есть он неправильно: “старые” библиотеки установлены на путях в масштабе всей системы, и это - желательное поведение. Путем это работает: если две версии библиотеки совместимы на двоичном уровне, то у Вас только есть тот, установленный, и каждое приложение, которое использует эту версию, использует тот же файл библиотеки. Если две версии библиотеки не совместимы на двоичном уровне, то у Вас есть несколько установленных копий, каждый под его собственным именем и приложениями, требующими различных версий библиотеки каждое использование соответствующий файл библиотеки.

Например, если Вы имеете libboost-filesystem-1.49 установленный (в /usr/lib/libboost_filesystem.so.1.49.0), это не помогает приложению, которое требует версии 1.42.0, потому что двоичные файлы не совместимы. То приложение требует /usr/lib/libboost_filesystem.so.1.42.0. Диспетчеры пакетов автоматически установят требуемую версию библиотеки, когда Вы установите приложение. Если у Вас будет приложение, которое требует 1.42 и тот, который требует 1.49, то у Вас будет две различных версии библиотеки в /usr/lib, каждый с его собственным именем файла, таким образом, они могут жить вместе в мире. Большинство диспетчеров пакетов сегодня может также автоматически удалить версии библиотеки, которые больше не используются никаким приложением.

Установка библиотек в каталогах приложения является способом плохого человека обработать зависимости, используемые в операционных системах, которые не имеют хорошего управления пакетом и каналов распределения. Чтобы заставить вещи работать без стычки, они связывают каждую библиотеку, требуемую приложением с самим приложением. Это означает, что Вы заканчиваете с несколькими копиями той же версии библиотеки, и нет никакого простого способа обновить библиотеки — Вы заканчиваете с несколькими устаревшими копиями той же библиотеки.

Нет и не будет опция установить библиотеки в каталогах приложения, потому что наличие диспетчера пакетов означает, что Вы не должны делать этого.

4
28.01.2020, 02:21
  • 1
    И причина, что существует два различных пакета libboost_filesystem.so, состоит в том, потому что libboost разработчики завинтили и повредили обратную совместимость. Специалисты по обслуживанию библиотеки, как предполагается, поддерживают обратную совместимость как со всеми предыдущими незначительными изменениями так, чтобы приложения, записанные против 1,42, работали с 1,49. Если необходимо повредить обратную совместимость, Вы, как предполагается, делаете так с главной версией, то libfoo1 и libfoo2 могут существовать одновременно временно, пока все приложения не были исправлены для работы с libfoo2, то libfoo1 удален. –  psusi 15.05.2012, 02:31
  • 2
    , когда я был ребенком я всегда, задавался вопросом, почему компьютер моего семейства имел как огромное количество различных версий той же библиотеки... теперь я знаю почему! ОС высосана! –  ixtmixilix 15.05.2012, 02:44
  • 3
    @psusi Не все придерживаются конвенции, что версии имеют формат MAJOR.MINOR, где изменение ГЛАВНОЙ совместимости на уровне двоичных кодов повреждений и изменение НЕЗНАЧИТЕЛЬНЫХ не делают. Другая популярная конвенция является MAJOR.MINOR.PATCHLEVEL, где Существенные изменения, когда исходные изменения совместимости и Незначительные изменения, когда совместимость на уровне двоичных кодов изменяется. Пока люди, которые создают приложения и пакеты, следуют правилам, данным авторами библиотеки, это - просто вопрос конвенции. –  Gilles 'SO- stop being evil' 15.05.2012, 02:56
  • 4
    Уровень установки патча, как предполагается, для исправлений ошибок (патчи), которые не повреждают совместимость ИЛИ добавляют новые опции. –  psusi 15.05.2012, 03:00

Теги

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