F. Instalação do banco de dados Metakit

F.1. Procedimento para a instalação do banco de dados Metakit em um sistema Debian (5.0 - Lenny)

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 -c http://equi4.com/pub/mk/metakit-2.4.9.7.tar.gz

Nota

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 -xzvf metakit-2.4.9.7.tar.gz

Entrei no diretório metakit-2.4.9.7/builds:

bash$   cd metakit-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 / -name tcl.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.

  1. Localizar o caminho que a Tcl está procurando as bibliotecas e copiar o diretório Mk4tcl para uma dessas pastas.

  2. 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 / -name Mk4tcl
/usr/include/lib/Mk4tcl
bash#   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