Prezado(a) leitor(a)!
Tenho sido muito auxiliado nas listas de discussão e pelas informações disponibilizadas por diversos usuários nos inúmeros sites espalhados pela Internet, e por isso tento retribuir essa ajuda disponibilizando algumas dicas.
Gostaria de alertar que não sou profissional de informática, mas simplesmente um usuário curioso e disposto a compartilhar o pouco que conseguiu aprender sobre Linux.
Criei o hábito de anotar os programas instalados ou as configurações necessárias para a realização de diversas tarefas.
As informações estão (des)organizadas de forma cronológica e se referem a instalações e configurações feitas em um nobebook IBM ThinkPad X60 e um nobebook DELL Latitude D430, ambos rodando o sistema Debian Lenny.
A partir de 2018 comecei a documentar a instação em um Positivo Stilo XCi 7660.
Bom proveito!
Ao atualizar uma página em um site percebi a necessidade de instalar o composer (iceape). Muito complicado instalar o iceape ou seamonkey, pois não existem pacotes debian. Encontrei o Kompozer http://kompozer.net/download.php que disponibiliza um pacote .deb para Lenny.
Para instalar o compilador java
apt-get install default-jdk
Pensei em instalar o icedtea-gcjwebplugin.
O comando apt-cache search mostra:
bash$
apt-cache searchicedtea-gcjwebplugin
icedtea-gcjwebplugin - Java plugin based on IcedTea and gcjwebplugin
Seguindo as orientações deste FAQ incluí as opções contrib non-free no repositório:
deb http://linux.iq.usp.br/debian/ lenny main contrib non-free
no arquivo sources.list
(/etc/apt/sources.list
).
Em seguida rodei:
apt-cache search java | grep plugin
e encontrei
sun-java6-plugin
E instalei:
apt-get install sun-java6-plugin
Mais tarde instalei também o sun-java6-jdk depois de tentar intalar o bluej-2.5.3.deb um tutorial para java.
Após usar apt-get update,pode-se receber uma mensagem parecida com essa:
W: There are no public key available for the following key IDs:A70DAF536070D3A1
Esse Warning (não é erro) aparece porque pacotes de alguns repositórios são assinados com uma chave assimétrica, para garantir a integridade dos pacotes. Para acessar um pacote assinado você precisa da chave pública. Só é necessário habilitar a chave uma vez.
Caso isso ocorra, use os seguintes comandos, onde XXXXXXXX representa os oito últimos termos do erro apresentado sendo que o processo deve ser repetido para cada key pedida
#
gpg--keyserver wwwkeys.eu.pgp.net --recv-keys XXXXXXXX
#
gpg--armor --export XXXXXXXX | apt-key add -
No meu caso o comando foi:
#
gpg--keyserver wwwkeys.eu.pgp.net --recv-keys 6070D3A1
#
gpg--armor --export 6070D3A1 | apt-key add -
E finalmente dar o comando apt-get update.
A extensão Metakit, escrita em C++ oferece uma API para Tcl (Mk4tcl) facilitando significativamente o desenvolvimento de aplicações para armazenamento e gerenciamento de dados estruturados em programas escritos em Tcl/Tk.
Se ficou curioso(a) veja alguns Exemplos de Utilização em português.
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 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/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
Uma outra alternativa é informar no início do programa em Tcl onde está a biblioteca Mk4tcl.so
.
Depois de compilar vi que o Mk4tcl.so
e o pkgIndex.tcl
estavam na pasta /usr/include/lib/Mk4tcl/
então é possível incluir no começo do script o comando: lappend auto_path /usr/include/lib/Mk4tcl.
Você pode escolher uma das alternativas!
BlueJ é uma IDE para desenvolvimento em Java™.
Baixei o pacote do bluej do site www.bluej.org/download/download.html mas ao tentar instalar recebi a mensagem:
bluej depende de sun-java6-jdk | sun-java5-jdk | openjdk-6-jdk; porém: Pacote sun-java6-jdk não está instalado. Pacote sun-java5-jdk não está instalado. Pacote openjdk-6-jdk não está instalado.
Bastou instalar os pacotes com apt-get.
Basta rodar os comandos como root:
#
update-alternatives --config
java
#
update-alternatives --config
javac
OmniDriverBeta é o driver, escrito em Java™, fornecido pela empresa OceanOptics™ para o controle dos espectrofotômetros USB2000.
Usei a linha do Makefile (~/OceanOptics/OmniDriverBeta/java) para compilar o PollingTest mas encontrava mensagens de erro ao testar.
Primeiro exportei as variáveis de ambiente:
CLASSPATH=../OOI_HOME/OmniDriver.jar:../OOI_HOME/SPAM.jar:../OOI_HOME/HighResTiming.jar:../OOI_HOME/UniUSB.jar:../OOI_HOME/OOIUtils.jar:../OOI_HOME/xpp3_min-1.1.3.4.M.jar:../OOI_HOME/xstream-1.1.2.jar
e
LIBRARY_PATH=../OOI_HOME
E no script test-linux.sh executei o comando:
java
-classpath
$CLASSPATH -Djava.library.path=$LIBRARY_PATH com.oceanoptics.tests.PollingTest
Mas recebia mensagens de erro da biblioteca:
~/OceanOptics/OmniDriverBeta/OOI_HOME/libNatUSB.so
que não estava encontrando a lib libstdc++.so.5
Então instalei essa lib com o comando:
apt-get
install
libstdc++5
E o PollingTest rodou! :)
Para identificar o(s) dispositivo(s) que o sistema cria ao plugar o equipamento na porta USB listei os arquivos /dev/usbdev*
ls -l /dev/usb* > disp_usb_antes.txt
Depois conectei o USB2000 na porta USB e rodei o comando:
ls -l /dev/usb* > disp_usb_depois.txt
Em seguida comparei o conteúdo dos arquivos com o comando diff:
diff
disp_usb_antes.txt disp_usb_depois.txt
O qual retornou:
> crw-rw---- 1 root root 252, 34 Dez 29 09:11 /dev/usbdev3.3_ep00 > crw-rw---- 1 root root 252, 30 Dez 29 09:11 /dev/usbdev3.3_ep02 > crw-rw---- 1 root root 252, 32 Dez 29 09:11 /dev/usbdev3.3_ep07 > crw-rw---- 1 root root 252, 31 Dez 29 09:11 /dev/usbdev3.3_ep82 > crw-rw---- 1 root root 252, 33 Dez 29 09:11 /dev/usbdev3.3_ep87
O comando udevadm info -a -p $(udevadm info -q path -n /dev/usbdev3.3*) retorna informações detalhadas sobre os dispositivos criados:
Udevinfo starts with the device specified by the devpath and then walks up the chain of parent devices. It prints for every device found, all possible attributes in the udev rules key format. A rule to match, can be composed by the attributes of the device and the attributes from one single parent device. looking at device '/class/usb_endpoint/usbdev3.3_ep00': KERNEL=="usbdev3.3_ep00" SUBSYSTEM=="usb_endpoint" DRIVER=="" ATTR{bLength}=="07" ATTR{bEndpointAddress}=="00" ATTR{bmAttributes}=="00" ATTR{bInterval}=="00" ATTR{wMaxPacketSize}=="0040" ATTR{interval}=="0ms" ATTR{type}=="Control" ATTR{direction}=="both" looking at parent device '/devices/pci0000:00/0000:00:1d.2/usb3/3-1': KERNELS=="3-1" SUBSYSTEMS=="usb" DRIVERS=="usb" ATTRS{configuration}=="" ATTRS{bNumInterfaces}==" 1" ATTRS{bConfigurationValue}=="1" ATTRS{bmAttributes}=="80" ATTRS{bMaxPower}=="100mA" ATTRS{urbnum}=="12" ATTRS{idVendor}=="2457" ATTRS{idProduct}=="1002" ATTRS{bcdDevice}=="0002" ATTRS{bDeviceClass}=="00" ATTRS{bDeviceSubClass}=="00" ATTRS{bDeviceProtocol}=="00" ATTRS{bNumConfigurations}=="1" ATTRS{bMaxPacketSize0}=="64" ATTRS{speed}=="12" ATTRS{busnum}=="3" ATTRS{devnum}=="3" ATTRS{version}=="10.20" ATTRS{maxchild}=="0" ATTRS{quirks}=="0x0" ATTRS{authorized}=="1" ATTRS{manufacturer}=="USB2000 2.41.3 " ATTRS{product}=="Ocean Optics USB2000" looking at parent device '/devices/pci0000:00/0000:00:1d.2/usb3': KERNELS=="usb3" SUBSYSTEMS=="usb" DRIVERS=="usb" ATTRS{configuration}=="" ATTRS{bNumInterfaces}==" 1" ATTRS{bConfigurationValue}=="1" ATTRS{bmAttributes}=="e0" ATTRS{bMaxPower}==" 0mA" ATTRS{urbnum}=="67" ATTRS{idVendor}=="1d6b" ATTRS{idProduct}=="0001" ATTRS{bcdDevice}=="0206" ATTRS{bDeviceClass}=="09" ATTRS{bDeviceSubClass}=="00" ATTRS{bDeviceProtocol}=="00" ATTRS{bNumConfigurations}=="1" ATTRS{bMaxPacketSize0}=="64" ATTRS{speed}=="12" ATTRS{busnum}=="3" ATTRS{devnum}=="1" ATTRS{version}==" 1.10" ATTRS{maxchild}=="2" ATTRS{quirks}=="0x0" ATTRS{authorized}=="1" ATTRS{manufacturer}=="Linux 2.6.26-2-686 uhci_hcd" ATTRS{product}=="UHCI Host Controller" ATTRS{serial}=="0000:00:1d.2" ATTRS{authorized_default}=="1" looking at parent device '/devices/pci0000:00/0000:00:1d.2': KERNELS=="0000:00:1d.2" SUBSYSTEMS=="pci" DRIVERS=="uhci_hcd" ATTRS{vendor}=="0x8086" ATTRS{device}=="0x27ca" ATTRS{subsystem_vendor}=="0x1028" ATTRS{subsystem_device}=="0x0201" ATTRS{class}=="0x0c0300" ATTRS{irq}=="22" ATTRS{local_cpus}=="ff" ATTRS{local_cpulist}=="0-7" ATTRS{modalias}=="pci:v00008086d000027CAsv00001028sd00000201bc0Csc03i00" ATTRS{enable}=="1" ATTRS{broken_parity_status}=="0" ATTRS{msi_bus}=="" looking at parent device '/devices/pci0000:00': KERNELS=="pci0000:00" SUBSYSTEMS=="" DRIVERS==""
Depois copiei o arquivo 10-oceanoptics.rules
para a pasta /etc/udev/rules.d
e o sistema criou os respectivos links na pasta /dev
para o driver poder acessar.
E finalmente para acessar o programa PollingTest.java que estava dentro do arquivo OmniDriver.jar, copiei este arquivo para outra pasta e descompactei com unzip, depois fiz a modificação no arquivo PollingTest.class e recompactei com o comando:
jar cvf OmniDriver.jar com/*
E os respectivos diretórios:
drwxr-xr-x 3 markos markos 4096 Jun 22 2006 com drwxr-xr-x 2 markos markos 4096 Jun 28 2006 META-INF
Primeiro criamos o diretório teste_omnidrive_jar e copiamos o arquivo OmniDriver.jar, que é um arquivo compactado.
Compilamos o arquivo PollingTest.java com os comandos:
export
CLASSPATH=../OOI_HOME/OmniDriver.jar:../OOI_HOME/SPAM.jar:../OOI_HOME/HighResTiming.jar:../OOI_HOME/UniUSB.jar:../OOI_HOME/OOIUtils.jar:../OOI_HOME/xpp3_min-1.1.3.4.M.jar:../OOI_HOME/xstream-1.1.2.jar
javac
-classpath
$CLASSPATH PollingTest.java
O arquivo PollingTest.class gerado foi copiado para o diretório: com/oceanoptics/tests
.
E novo arquivo OmniDriver.jar foi criado com o comando:
jar
cvf
OmniDriver.jar com/*
Em seguida colocamos o arquivo OmniDriver.jar
na pasta OOI_HOME
.
Editando o script test_Polling.sh observamos que apenas é necessário incluir 3 bibliotecas no CLASSPATH para rodar:
CLASSPATH=../OOI_HOME/OmniDriver.jar:../OOI_HOME/SPAM.jar:../OOI_HOME/HighResTiming.jar:../OOI_HOME/UniUSB.jar
Para resolver problemas ao rodar vídeos em alguns sites:
apt-get
install
flashplayer-mozilla
update-alternatives
--config
flash-mozilla.so
Para usar a biblioteca Plotchart no Tcl/Tk, instalar o pacote tklib com o comando apt-get install tklib
Mas seguindo as informações do fórum comp.lang.tcl, baixei o pacote tklib 0.5 do site http://sourceforge.net/projects/tcllib/files/tklib/0.5/tklib-0.5.zip/download e troquei o conteúdo do diretório /usr/share/tcltk/tklib0.4/plotchart
pelos arquivos da versão 0.5 sem problemas.
Para visualizar vídeos na Intranet no meu trabalho usando o Totem instalei o pacote:
apt-get
install
gstreamer0.10-plugins-bad
Seguindo a dica do site www.troubleshooters.com/linux/coasterless.htm#_TestingCD usei o programa isoinfo para obter informações do CD (gravado):
isoinfo
-d -i
/dev/cdrom
E com as informações das linhas:
Logical block size is: 2048 Volume size is: 76872
Gerei uma imagem iso do CD com o comando dd:
dd
if=/dev/cdrom bs=2048 count=76872 > teste_debian.iso
E finalmente comparei o md5sum dos arquivos iso original e gerado a partir do CD.
md5sum
debian-504-i386-netinst.iso
md5sum
este_debian.iso
E eram idênticas. :^)