2017-01-20 13 views
0

Существует ncurses6, первоначально установленный в домашнем каталоге пользователя, скажем, «/ home/test», поэтому тестовая среда была построена по этому пути ncurses, много (в разработке) приложения были скомпилированы и теперь работают, в зависимости только от текущей переменной env HOME.Изменение ncurses 6 «terminfo-dirs» после компиляции/установки

Но, из-за неконтролируемой цели, мы должны изменить домашний каталог пользователя. И теперь это что-то отличное от «/ home/test».

Внешние приложения и Ncurses инструменты все еще работает, нам нужно просто указать библиотеки с LD_LIBRARY_PATH и использовать более конкретный путь, как мы использовали ранее для Ncurses инструментов:

LD_LIBRARY_PATH=~/bin/ncurses-6.0/lib ~/bin/ncurses-6.0/bin/tic 

Но теперь, после изменения домашнего пользователя реж, необходимо указать также базу данных Terminfo:

TERMINFO=~/bin/ncurses-6.0/share/terminfo LD_LIBRARY_PATH=~/bin/ncurses-6.0/lib ~/bin/ncurses-6.0/bin/tic 

Но, есть ли способ, чтобы сделать путь к базе данных TERMINFO перманентным без перекомпиляции и переустановки Ncurses? Это жесткий код в ncurses во время компиляции?

ответ

0

Значения по умолчанию компилируются. Вы можете переопределить те переменные среды (TERMINFO является стандартным, TERMINFO_DIRS является расширением). Это не ново с ncurses6 (это предшествовало ncurses4, двадцать лет назад).

Наиболее практичным «постоянным» изменением было бы поставить переопределения в инициализацию оболочки.

Можно модифицировать двоичный файл ELF (контрольных сумм нет), но полученный путь не может быть длиннее. Он мог бы быть короче, так как строки имеют нулевое завершение. Так как ваш пример добавляет путь, это не сработает для вас.

 Смежные вопросы

  • Нет связанных вопросов^_^