Установка пути к библиотеке tcl/tk внутри пакета привязки
После создания и установки пакета оснастки tcl/tk, tcl жалуется, что не может найти init.tcl в ряде библиотек. Это было много раз задокументировано с помощью windows, python и tkinter и среды virt. Это Linux, хотя. Из того, что я собирал до сих пор, tcl просто нужно, чтобы я экспортировал пути к библиотекам tcl и tk, которые содержат этот файл. примечание стороны - этот файл есть и в большинстве перечисленных путей. Он просто не знает этого.
Посмотрите демо-версию https://developer.ubuntu.com/en/snappy/build-apps/your-first-snap/
Я думаю, что мне нужно создать скрипт, установить пути к библиотекам, а затем запустить tcl или tk. Очень похоже на клей, использованный в примере. это первые дни и документации не хватает, но я думаю, что я близок.
мой вопрос: кто-нибудь знает, как установить пути библиотеки внутри оснастки? Я не имею в виду установить его в терминале, потому что это установит путь только в моей реальной системе, а не для тех, кто использует эту оснастку на своем компьютере. Если что-то нужно, чтобы ответить на это, дайте мне знать. Я нахожусь на работе и не могу получить доступ к своим файлам в настоящее время.
1 ответ
Вот решение для тех, кто хочет попробовать это. Tcl жаловался на то, что не нашел init.tcl
и желание не было даже запуска. Я пытался всеми способами экспортировать путь к файлу, но безуспешно. Я заметил, что при создании мгновенного пакета создается оболочка для каждого открытого двоичного файла. в этом пакете я создал 2 бинарных файла tclsh
а также wish
, Без удачи при экспорте я скопировал файлы обертки туда, где snapcraft.yaml
файл, потому что очистка системы убьет все предыдущие сгенерированные файлы. Я добавил следующее к каждой обертке
export TCL_LIBRARY=$SNAP/usr/share/tcltk/tcl8.6:$TCL_LIBRARY:$TK_LIBRARY
export TK_LIBRARY=$SNAP/usr/share/tcltk/tk8.6:$TK_LIBRARY:$TCL_LIBRARY
Затем я отредактировал apps:
раздел, чтобы отразить использование оберток, а не прямые двоичные вызовы.
apps:
tclsh:
command: tclsh.wrapper #used to be just tclsh without the benefit of a wrapper with exports in it
plugs: [home, unity7, network, x11]
wish:
command: wish.wrapper # same as above
plugs: [home, unity7, network, x11]
Наконец в моем glue
раздел я включил эти обертки
glue:
plugin: copy
files:
tclsh.wrapper: usr/bin/tclsh.wrapper
wish.wrapper: usr/bin/wish.wrapper
сделал пакет оснастки и установил его. И то и другое tclsh
а также wish
работать как положено без нареканий.
Выполнить команду для tclsh
является tcl.tclsh
и для wish
это tcl.wish
,