O banco de dados Metakit facilita o uso de um banco de dados em uma aplicação Tcl/Tk. Tutoriais estão disponíveis nos links: Wiki - Tcl do Ricardo Jorge I, Wiki - Tcl do Ricardo Jorge II, Tutorial do Mark Roseman e http://wiki.tcl.tk/24022.
A biblioteca Metakit oferece uma API para a Tcl chamada Mk4tcl.
Baixei a última versão do Metakit (metakit-2.4.9.7.tar.gz
) que eu encontrei no site http://equi4.com/pub/mk/, com o comando:
bash$
wget -chttp://equi4.com/pub/mk/metakit-2.4.9.7.tar.gz
Em 2011 os fontes foram transferidos para o repositório do GitHub e pode ser baixado como um arquivo zipado do link: https://github.com/jcw/metakit/archive/master.zip!
Em seguida descompactei com o comando:
bash$
tar -xzvfmetakit-2.4.9.7.tar.gz
Entrei no diretório metakit-2.4.9.7/builds
:
bash$
cdmetakit-2.4.9.7/builds
O comando seguinte tem a seguinte estrutura:
../unix/configure --with-tcl=
[diretório_onde_está_o_arquivo_tcl.h]
Para encontrar o diretório onde está o arquivo tcl.h
rodei:
bash#
find / -nametcl.h
/usr/include/tcl8.5/tcl-private/generic/tcl.h /usr/include/tcl8.5/tcl.h
E usando o diretório /usr/include/tcl8.5
rodei o comando:
bash:~/metakit-2.4.9.7/builds$
../unix/configure --with-tcl=/usr/include/tcl8.5
Em seguida rodei:
bash:~/metakit-2.4.9.7/builds$
make
Depois me loguei como root e rodei (no mesmo diretório):
bash:~/metakit-2.4.9.7/builds#
make install
Para testar se a biblioteca estava devidamente instalada rodei a Tcl no modo interativo e digitei package require Mk4tcl:
bash$
tclsh
% package require Mk4tcl
package not found
Mas o interpretador retornou package not found indicando que não estava encontrando a biblioteca. Para corrigir isso encontrei duas alternativas.
Localizar o caminho que a Tcl está procurando as bibliotecas e copiar o diretório Mk4tcl
para uma dessas pastas.
Incluir no cabeçalho de cada script Tcl a linha lappend auto_path [diretório_onde_está_Mk4tcl]
O caminho (path) onde a Tcl procura por bibliotecas fica armazenado nas variáveis auto_path
ou tcl_pkgPath
. Então basta abrir o interpretador no modo interativo e digitar puts $auto_path
ou puts $tcl_pkgPath
.
% puts $auto_path /usr/share/tcltk/tcl8.5 /usr/lib /usr/local/lib/tcltk /usr/local/share/tcltk /usr/lib/tcltk /usr/share/tcltk % puts $tcl_pkgPath /usr/local/lib/tcltk /usr/local/share/tcltk /usr/lib/tcltk /usr/share/tcltk /usr/lib
Localizei a pasta Mk4tcl
e copiei para a pasta /usr/share/tcltk/tcl8.5
:
bash#
find / -nameMk4tcl
/usr/include/lib/Mk4tclbash#
cp-R
/usr/include/lib/Mk4tcl /usr/share/tcltk/tcl8.5
E finalmente o interpretador carregou a biblioteca:
bash$
tclsh
% package require Mk4tcl
2.4.9.7