Debian 8: Compilar nspluginwrapper

Compilar nspluginwrapper en debian 8, ha sido todo un reto. No suelo compilar paquetes, por lo que me faltaban casi todas las librerías de desarrollo.

Descarga del paquete nsplugin wrapper.  La última versión es del año 2011, lo que inquieta un poco, la verdad.

En el equipo ideal, esto funciona a la primera.

$ ./configure
$ make
# make install

Estos son los errores sucesivos que he ido encontrando yo en ,/configure:

Glibc environment not found

GTK+ environment not found

cURL environment not found

X11/Xt environment not found

apt-get install libglib2.0-dev
apt-get install  libgtk2.0-dev libcurl4-gnutls-dev libxt-dev

Resueltos los errores de paquetes, comenzamos con los errores de compilación:

/usr/include/features.h:374:25: fatal error: sys/cdefs.h: No existe el fichero o el directorio

Seguimos instalando

apt-get install libc6-dev-amd64

Y otro

/usr/include/c++/4.9/new:39:28: fatal error: bits/c++config.h: No existe el fichero o el directorio 

En este caso, el fichero está en n copias a lo largo del sistema

find /usr -name c++config.h
 
/usr/share/gccxml-0.9/GCC/4.8/bits/c++config.h
/usr/share/gccxml-0.9/GCC/4.7/bits/c++config.h
/usr/share/gccxml-0.9/GCC/4.6/bits/c++config.h
/usr/share/gccxml-0.9/GCC/4.4/bits/c++config.h
/usr/share/gccxml-0.9/GCC/4.9/bits/c++config.h
/usr/include/x86_64-linux-gnu/c++/4.9/bits/c++config.h

Tenemos G++ en versión 4.9

g++ --version
g++ (Debian 4.9.2-10) 4.9.2

Añadimos la ruta a la variable de entorno de G++

export CPLUS_INCLUDE_PATH=$CPLUS_INCLUDE_PATH:/usr/include/x86_64-linux-gnu/c++/4.9/

Tampoco se puede encontrar lsupc++

/usr/bin/ld: no se puede encontrar -lsupc++

Instalamos las librerías standard de C para nuestra versión de g++

apt-get install lib32stdc++-4.9-dev

Fallo al enlazar con nppplayer:

/usr/bin/ld: npplayer-npw-player.o: referencia sin definir al símbolo 'g_thread_init'

Se añade en Makefile el flag para lgthread-2.0

npplayer_LIBS    += $(libpthread_LIBS) $(libsocket_LIBS) -ldl -lgthread-2.0

¡Por fin pasamos el make!

Último paso, y ya tenemos ndiswrapper disponible en nuestro sistema.

make install

 

 

Git: Iniciación a git

Instalación del servidor para acceso mediante ssh con usuario en Debian

sudo apt-get install git
sudo mkdir -p /var/cache/git
cd /var/cache/git
git init --bare mynewgit

 

Configuración de básica
git config --global user.name "Your Name Here"
git config --global user.email "your_email@example.com"
git config --global http.proxy   http://myproxy.org:80
#Añadir user a url
git remote set-url origin https://USER@github.com/user/mygit.git

Clonación de repositorio git

git clone https://server/repo

Bajar última versión

git pull

 Crear carpeta

mkdir folder1 folder2
git add  folder1 folder2
git commit -m "folder1"
git push origin

Cambiar el origen de git (servidor remoto)

git remote show origin

git remote rename origin old

git remote add origin myserver

Debian RTS5229 MMC Reader

Al instalar Debian wheezy sobre un lenovo e530, el lector de tarjetas SD no funciona. No tiene /dev/mmc* asociado y al introducir una SD, no deja rastro en dmesg.

El problema está en el módulo de Realtek de SD. No hemos encontrado el paquete directamente para descarga en debian, por lo que hemos tenido que compilarlo en nuestro sistema.

Revisión del hardware:


lspci -vnn | grep -A5 RTS5229
02:00.0 Unassigned class [ff00]: Realtek Semiconductor Co., Ltd. RTS5229 PCI Express Card Reader [10ec:5229] (rev 01)
Subsystem: Lenovo Device [17aa:5000]
Flags: bus master, fast devsel, latency 0, IRQ 11
Memory at f2e00000 (32-bit, non-prefetchable) [size=4K]
Capabilities: [40] Power Management version 3
Capabilities: [50] MSI: Enable- Count=1/1 Maskable- 64bit+

Descarga y compilación de los módulos del kernel para el lector de tarjetas SD. En el caso de haber errores de compilación, ver más abajo cómo instalar las cabeceras.


make
make install
depmod
modprobe rts5229

A partir de aquí, al meter una tarjeta SD, debería reconocerse.

Por último, hay que poner los módulos en el arranque del kernel:

Activación de los módulos de kernel de mmc:


cat /etc/modules
# /etc/modules: kernel modules to load at boot time.
#
# This file contains the names of kernel modules that should be loaded
# at boot time, one per line. Lines beginning with "#" are ignored.
# Parameters can be specified after the module name.

loop
mmc_block
mmc_core
rts5229

Para más información, ver el blog de vincent

Instalación de cabeceras de linux para compilación:

 

Nos aseguramos de tener linux-kernel-headers instalados:

dpkg -l | grep linux-header
ii linux-headers-3.2.0-4-amd64 3.2.46-1 amd64 Header files for Linux 3.2.0-4-amd64
ii linux-headers-3.2.0-4-common 3.2.46-1 amd64 Common header files for Linux 3.2.0-4
ii linux-headers-3.2.0-4-common-rt 3.2.46-1 amd64 Common header files for Linux 3.2.0-4-rt
ii linux-headers-3.2.0-4-rt-amd64 3.2.46-1 amd64 Header files for Linux 3.2.0-4-rt-amd64
ii linux-headers-amd64 3.2+46 amd64 Header files for Linux amd64 configuration (meta-package)
ii linux-headers-rt-amd64 3.2+46 amd64 Header files for Linux rt-amd64 configuration (meta-package)

Enlace de las cabeceras a /lib/modules/…/build:

ln -s /usr/src/linux-headers-3.2.0-4-amd64 /lib/modules/3.2.0-4-amd64/build

Instalar check_mssql_health como plugin de nagios en CentOS 6

El objetivo de check_mssql_health es monitorizar las bases de datos internas a un sql server desde nagios, centreon o similar.

La conexión, se hace desde el monitor (nagios) hacia la base de datos, directamente por el puerto de base de datos. Por defecto, en las instalaciones MS SQL SERVER es 1433. En caso de no funcionar, habrá que revisar que no haya un cortafuegos (tanto de windows como físico) que corte el puerto 1433 entre el monitor y el SQL Server.

Instalación del check en CentOS 6

Descargar el paquete

Descomprimir, configurar e instalar:

   tar -xvzf check_mssql_health-1.5.19.1.tar.gz

cd check_mssql_health-1.5.19.1

./configure

./make

./make install

El directorio donde deja el script, no coincide con el directorio donde están los plugins en nagios sobre CENTOS. Por lo tanto, es importante moverlo:

mv /usr/local/nagios/libexec/check_mssql_health /usr/lib64/nagios/plugins/

Problema DB:Sybase

Al ejecutar mssql_health faltan  paquetes de perl:

> ./check_mssql_health –hostname host  –username nagios –password dkfjlskf –mode  database-online
CRITICAL – cannot connect to host . install_driver(Sybase) failed: Can’t locate DBD/Sybase.pm in @INC (@INC contains: . /usr/local/lib64/perl5 /usr/local/share/perl5 /usr/lib64/perl5/vendor_perl /usr/share/perl5/vendor_perl /usr/lib64/perl5 /usr/share/perl5) at (eval 17) line 3.
Perhaps the DBD::Sybase perl module hasn’t been fully installed,
or perhaps the capitalisation of ‘Sybase’ isn’t right.
Available drivers: DBM, ExampleP, File, Gofer, Proxy, SQLite, Sponge, mysql.
at ./check_mssql_health line 3045.

Instalamos perl-DBD-Sybase con yum:

 yum install perl-DBD-Sybase.x86_64 -y

Comando de nagios /etc/nagios/checkcommands.cfg

 

define command{
command_name                    check_mssql_health
command_line                    $USER1$/check_mssql_health –hostname $HOSTADDRESS$  –username $ARG1$ –password $ARG2$ –mode  database-online
;command_example                        !nagios!password
;$ARG1$                         Service
}