следующее загрузит каждую строку /tmp/file
в массив, поэтому строка 1
будет доступна через переменную ${array[0]}
и так далее.
#!/bin/bash
IFS=$'\n' array=($(cat /tmp/file))
Is it acceptable to link older libraries to newer ones
№
Программы могут аварийно завершить работу в любое время из-за несовместимости двоичных файлов. И вообще глупая затея возиться с системными файлами (т.е. все под /usr
), кроме инструментов дистрибутива (apt
, yum
и т. д. ).
is there a better practice?
хранить старые библиотеки (например. под/opt/oldlibs
)и позволить программам использовать их через переменную окружения LD_LIBRARY_PATH
. Подробности на справочной странице ld.so (8 ).
Is it acceptable to link older libraries to newer ones or is there a better practice?
Это может работать или не работать в зависимости от используемых функций.
Как правило, это плохая практика, но если вы не хотите гнаться за старыми библиотеками и ваши старые приложения (с )работают с этим хаком, никто не будет возражать.
нет -судя по веб-сайту , у Manjaro есть ncurses 6.2, и поскольку он повторно использует пакеты из Arch, его PKGBUILD скрипт говорит нам, что он использует ABI 6, т.е. не бинарный -совместимый с ncurses 5.
Например, gdb имеет режим отображения отладочной информации в терминале с помощью ncurses. Подсветка и символы рисования строки -не будут отображаться должным образом, если вы заставите его использовать ncurses6, когда он был скомпилирован для ncurses5. Это связано с тем, что размер структуры данных для каждой ячейки на экране отличается в ABI 5 и ABI 6.
Если вы сделаете это, (свяжете библиотеки ncurses6, чтобы представить их как ncurses5 ), и попытаетесь сообщить об ошибке,вам будут указаны только примечания к выпуску (для ncurses 6.0)и FAQ .
Если бы мне нужно было поддерживать что-то подобное, я бы скомпилировал ncurses для ABI 5 (, что вы можете сделать с ncurses6, как задокументировано :только значения по умолчанию для скрипта configure имеют изменен ).