Существует ли способ предотвратить, появляются - синхронизируют от удаления файлов от дерева перевозки?

Если Вы не хотите устанавливать глобальный путь поиска библиотеки для своей целой системы с /etc/env.d подход, Вы можете также:

Просто установите LD_LIBRARY_PATH к ПУТИ Вашей библиотеки (Вы действительно устанавливали его на саму библиотеку, которая не будет работать), то же, которое Вы устанавливаете с -L параметр к gcc, например.

export LD_LIBRARY_PATH="$PROJ/lib/3rdpartylib/:$LD_LIBRARY_PATH"

(последняя часть для сохранения переменной, если это было уже установлено, которым это не должно обычно быть). Это будет только работать в Вас текущая оболочка, и необходимо будет установить ее снова каждый раз.

Или Вы связываете использование 'статической' библиотеки пути поиска как это:

gcc file1.o file2.o -L./lib/3rdpartylib -Wl,-rpath=./lib/3rdpartylib  -l3rdpartylib  -o myapp

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

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

2
08.07.2013, 15:01
2 ответа

Существует причина, этот ebuild был удален из основного дерева. Если Ваша цель состоит в том, чтобы сохранить ebuild, потому что Вы хотите смочь создать их после того, как они удалены из основного дерева, то я предлагаю, чтобы Вы создали локальное наложение и извлекли удаленный ebuilds из sources.gentoo.org.

0
27.01.2020, 23:05

Назад в день, были бы репозитории дерева перевозки, которое Вы могли клон/контроль в своем содержании основ. В этих репозиториях Вы всегда могли бы вытащить старый ebuilds. Поскольку перевозка/хинду помещает декларации и контрольные суммы везде, у Вас не может быть ebuild, который в восходящем направлении не хочет быть частью дерева перевозки. Только как наложение.

Я погуглил это для Вас и нашел этот вопрос на Superuser SE, которая говорит Вам, как сделать наложение и также включает ссылку на перевозку репозиторий CVS.

Подробнее:

Вы не используете rsync, Вы используете emerge Первый привыкает последним, который делает это, часть появляется, на самом деле, часть перевозки, которая является тем, что Вы действительно используете для управления (не просто копируют!) Ваши пакеты и информация о пакете. Путем взгляда на rsync Вы смотрите на довольно глубокую деталь перевозки, и Вы не можете только изменить ту деталь. Вместо этого необходимо рассмотреть всю систему. Вот почему просто тонкая настройка rsyncповедение никогда не будет достигать того, что Вы хотите, и вызывает ошибку в emerge.

Другая часть системы portage, который Вы используете, контрольные суммы. Для каждого файла должна быть контрольная сумма. Когда Вы работаете emerge --sync Вы не только копируете и удаляете ebuilds, Вы также синхронизируете список файлов в дереве перевозки и их соответствующих контрольных суммах. Файлы, которые удалены в восходящем направлении, и поэтому от дерева перевозки, также удалены из списка файлов в дереве перевозки (потому что они не часть дерева перевозки больше).

Поэтому Вы перестали работать: Путем удаления --delete Вы заканчиваете с файлами в своем дереве перевозки, для которого никакие контрольные суммы не avaiable. Но как указано выше контрольные суммы являются частью системы, таким образом, Вам нужны они.

Существует также контрольная сумма в списке файлов и вероятно один или другая дополнительная контрольная сумма, таким образом, ее, вероятно, утомительны для хитрости.

Если Вы хотите сохранить свой старый ebuilds, те, которые специалисты по обслуживанию пришли к заключению, что это - хорошая идея удалить, у Вас есть два варианта:

  1. можно повредить систему перевозки,

    a) сила rsyncповедение,

    b) взлом emerge так, чтобы список файлов всегда включал Ваш ebuilds с контрольными суммами и

    c) создайте что-то, чтобы удостовериться, что все контрольные суммы всегда там и хорошо, включают контрольные суммы списка файлов

    d) придумайте последовательную систему, которая сохранит Ваш специальный ebuilds, но удалять старые, и дефектные устаревшие так, чтобы у Вас была стабильная и удобная в сопровождении операционная система

  2. Вы действуете в системе перевозки, которая позволяет Вам изменять дерево перевозки посредством оверлейных программ.

У Вас ясно есть xy проблема. Вы заявляете себя, что требуется иметь в наличии некоторый ebuils важного программного обеспечения. Но вместо того, чтобы спросить, как сделать это, Вы спрашиваете, как изменить поведение инструмента, который используется, появляются, который является инструментом перевозки.

Каждый мог бы степень число к wxyz проблеме, при этом w был Вашей фактической проблемой, Вы убегаете вдоль x (перевозка), передавание y (появляется) и наконец сталкивается со стеной в z (rsync). Пора возвратиться несколько шагов.

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

0
27.01.2020, 23:05
  • 1
    , я ничего не добавляю к восходящему потоку в дереве перевозки. Я использовал бы наложение для этого. Но то, что я хочу, - то, что, когда я синхронизирую дерево, я хочу сохранить все ebuilds, которые уже находятся в нем, которые были ранее выбраны в предшествующей синхронизации в том дереве при добавлении любых новых. –  Dan D. 08.07.2013, 17:37
  • 2
    Вы хотите больше ebuilds в своем дереве перевозки, чем там, обычно был бы. Это означает Вас ADD что-то к "нормальному" дереву перевозки. Не имеет значения, когда или как файлы были созданы –  Bananguin 09.07.2013, 00:43
  • 3
    Нет, я просто хочу rsync не удалить файлы это rsync вставьте дерево в прошлый раз, когда это было, работал. Который я знаю, что могу сделать путем удаления --delete опция. Но это приводит к дереву который emerge сбои, чтобы продолжить работать должный это находящий некоторых кэшируемых пропавших без вести хешей. –  Dan D. 09.07.2013, 00:47
  • 4
    Вы' не хотите rsync чтобы сделать что-либо, Вы хотите portage, emerge в этом случае, для действия по-другому. В конце концов, Вы работаете emerge --sync и нет rsync, Вы. Я добавил больше деталей к своему ответу для разъяснения контекста. спасибо –  Bananguin 09.07.2013, 11:45

Теги

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