Установка пути к библиотеке 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,

Другие вопросы по тегам