definindo um caminho de biblioteca tcl / tk dentro de um pacote snap

2

Depois de fazer e instalar um pacote snap de tcl / tk, tcl reclama que não pode encontrar init.tcl em uma série de bibliotecas. Isso foi documentado muitas vezes com windows, python e tkinter e um ambiente virt. Este é o Linux embora. Pelo que eu recolhi até agora, tcl só precisa de mim para exportar os caminhos de biblioteca tcl e tk que contêm este arquivo. nota lateral - esse arquivo está lá e na maioria dos caminhos listados. Apenas não sabe disso.

Olhando para o link de demonstração de demonstração de snap

Acho que preciso criar um script, definir os caminhos da biblioteca e depois iniciar tcl ou tk. Muito parecido com a cola usada no exemplo. estes são os primeiros dias e a documentação está faltando, mas acho que estou perto.

minha pergunta: Alguém sabe como definir os caminhos da biblioteca dentro de um piscar de olhos? Não me refiro a configurá-lo no terminal, porque isso só irá definir um caminho no meu sistema real e não para qualquer um que use este snap em seu computador. Se precisar de algo para responder, me avise. Estou no trabalho e não consigo acessar meus arquivos atualmente.

    
por user116272 22.08.2016 / 21:47

1 resposta

0

Aqui está a solução para qualquer pessoa que queira tentar isso. Tcl estava reclamando sobre não encontrar init.tcl e não queria nem mesmo começar. Eu tentei de todas as formas para exportar o caminho em que o arquivo estava sem sorte. Notei que ao gerar um pacote de snap, um wrapper é gerado para cada binário exposto. neste pacote eu criei 2 binários - tclsh e wish . Sem sorte exportando copiei os arquivos wrapper para onde o arquivo snapcraft.yaml é porque a limpeza do sistema mataria todos os arquivos anteriores gerados. Eu adicionei o seguinte a cada wrapper

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

Em seguida, editei a seção apps: para refletir o uso de wrappers, não de chamadas binárias diretas.

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]

Finalmente, na minha seção glue , incluí esses wrappers

glue:
plugin: copy files: tclsh.wrapper: usr/bin/tclsh.wrapper wish.wrapper: usr/bin/wish.wrapper

fez o pacote instantâneo e o instalou. Tanto tclsh como wish funcionam como esperado sem queixas.

O comando de execução para tclsh é tcl.tclsh e para wish é tcl.wish .

    
por user116272 30.08.2016 / 03:58