Программное обеспечение, установленное в одном распределении Linux, запущенного в другом распределении Linux?

Нет это не возможно, к сожалению. Как Вы, вероятно, уже знаете, можно использовать %h расширение, но это об этом.

В Вашем случае, почему бы не использовать a for цикл?

for i in {4..10}
do  
  echo -e "Host pro-$i\nHostname 192.168.1.$i\nProxyCommand ssh production-server nc %h %p\n"; >> ~/.ssh/config
done

Единственная другая опция, которую я мог придумать, возможно, создайте записи DNS с regexp, если Ваш сервер поддерживает это, и затем используйте их.

0
18.11.2013, 23:45
4 ответа

Можно заставить их работать на различных дистрибутивах с некоторой работой.
Главным, на которое полагаются программы, являются библиотеки. Эти библиотеки будут сохранены в различных местоположениях в различных дистрибутивах, но можно узнать, где эти библиотеки связаны с командой ldd.
Например, это - вывод ldd, когда выполнено против /usr/bin/vlc на Debian

linux-vdso.so.1 (0x00007fff11969000)
libvlc.so.5 => /usr/lib/libvlc.so.5 (0x00007f597eb01000)
libvlccore.so.5 => /usr/lib/libvlccore.so.5 (0x00007f597e819000)
libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007f597e5fd000)
libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007f597e3f9000)
libstdc++.so.6 => /usr/lib/x86_64-linux-gnu/libstdc++.so.6 (0x00007f597e0f5000)
libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007f597ddf7000)
libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007f597dbe1000)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f597d834000)
libdbus-1.so.3 => /lib/x86_64-linux-gnu/libdbus-1.so.3 (0x00007f597d5ee000)
librt.so.1 => /lib/x86_64-linux-gnu/librt.so.1 (0x00007f597d3e6000)
/lib64/ld-linux-x86-64.so.2 (0x00007f597ed37000)

Вы видите, что все библиотеки к в /lib/x86_64-linux-gnu
В то время как на Дуге, библиотеки для vlc расположены в /usr/lib

linux-vdso.so.1 (0x00007fff5a1fe000)
libvlc.so.5 => /usr/lib/libvlc.so.5 (0x00007f84fd7c2000)
libpthread.so.0 => /usr/lib/libpthread.so.0 (0x00007f84fd5a4000)
libdl.so.2 => /usr/lib/libdl.so.2 (0x00007f84fd3a0000)
libc.so.6 => /usr/lib/libc.so.6 (0x00007f84fcff5000)
libvlccore.so.7 => /usr/lib/libvlccore.so.7 (0x00007f84fcce1000)
librt.so.1 => /usr/lib/librt.so.1 (0x00007f84fcad9000)
libdbus-1.so.3 => /usr/lib/libdbus-1.so.3 (0x00007f84fc892000)
libm.so.6 => /usr/lib/libm.so.6 (0x00007f84fc58f000)
/lib64/ld-linux-x86-64.so.2 (0x00007f84fd9e0000)

Как Вы видите, двоичные файлы расположены в немного отличающихся местоположениях с самим vlc двоичным файлом, имеющим различные зависимости. Так теоретически с установкой Arch VLC, я мог выполнить его на Debian путем соединения библиотек с корректными местами.
Вы могли также развернуть места, где система ищет библиотеки путем установки переменной LD_LIBRARY_PATH как так -
export LD_LIBRARY_PATH=/usr/local/libs:$LD_LIBRARY_PATH

4
28.01.2020, 02:13

Я не думаю, что они будут. Смешивание a /usr раздел с различными диспетчерами пакетов, вероятно, вызовет конфликты и несовместимости. Единственным путем я думаю, что это могло работать, то, если Вы - установленное программное обеспечение от дженерика .tar.gz файл к /opt в этом случае это должно работать (непротестированное)

2
28.01.2020, 02:13

Различные дистрибутивы часто (но не всегда) помещенные файлы в различных местоположениях. Можно преобразовать пакеты с помощью постороннего объекта.

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

1
28.01.2020, 02:13

Во-первых, не смешиваться /usr между дистрибутивами. Каждое распределение ожидает управлять тем, что там, и дистрибутивы будут продолжать перезаписывать файлы друг друга. /usr не содержит пользовательские программы (да, это - то, от чего происходит название, но это не то, что каталог содержал за прошлые 40 лет или так), это содержит системные программы.

Программы от одного распределения могут работать при другом распределении, или они не могут. Это зависит, имеют ли дистрибутивы достаточно близкие версии библиотек, которыми пользуются программы.

Если Вы устанавливаете программы под /usr/local или Ваш корневой каталог, и они не требуют слишком определенных версий библиотек, затем они будут работать при обоих дистрибутивах.

1
28.01.2020, 02:13

Теги

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