Instalar AMSN 0.97RC1 en Debian Etch
A continuación detallo los pasos a seguir para instalar la última versión del programa de mensajería AMSN en nuestra Debian Etch.
1. En caso de tener instalada la versión 0.96 que viene en los repositorios de Debian Etch, desinstalamos el paquete. Si no lo hemos instalado, nos logueamos como root y pasamos al paso 2.
Nos logueamos como usuario "root":
# su -
password:
Desinstalamos AMSN:
# aptitude purge amsn
También tenemos que borrar el directorio oculto en el que se encuentra la de configuración del amsn. Dicho directorio se encuentra en tu home de usuario.
# rm -R ~usuario/.amsn
2. Descargamos el archivo con el código fuente de la página oficial.
# wget http://mesh.dl.sourceforge.net/sourceforge/amsn/amsn-0.97RC1.tar.bz2
3. Descomprimimos el archivo.
# bzip2 -dc amsn-0.97RC1.tar.bz2 | tar -xv
Nos habrá creado dentro de /root el directorio "amsn-0.97RC1"
4. Accedemos al directorio y empezamos a compilar nuestro paquete .deb que posteriormente instalaremos:
# cd amsn-0.97RC1
Antes de compilar, hay que resolver algunas dependencias. Para ello instalamos éstos paquetes:
# aptitude install docker imlib-base imlib11 sox tcltls tcl8.4-dev tk8.4-dev libpng12-dev libjpeg62-dev debhelper fakeroot g++
1. En caso de tener instalada la versión 0.96 que viene en los repositorios de Debian Etch, desinstalamos el paquete. Si no lo hemos instalado, nos logueamos como root y pasamos al paso 2.
Nos logueamos como usuario "root":
# su -
password:
Desinstalamos AMSN:
# aptitude purge amsn
También tenemos que borrar el directorio oculto en el que se encuentra la de configuración del amsn. Dicho directorio se encuentra en tu home de usuario.
# rm -R ~usuario/.amsn
2. Descargamos el archivo con el código fuente de la página oficial.
# wget http://mesh.dl.sourceforge.net/sourceforge/amsn/amsn-0.97RC1.tar.bz2
3. Descomprimimos el archivo.
# bzip2 -dc amsn-0.97RC1.tar.bz2 | tar -xv
Nos habrá creado dentro de /root el directorio "amsn-0.97RC1"
4. Accedemos al directorio y empezamos a compilar nuestro paquete .deb que posteriormente instalaremos:
# cd amsn-0.97RC1
Antes de compilar, hay que resolver algunas dependencias. Para ello instalamos éstos paquetes:
# aptitude install docker imlib-base imlib11 sox tcltls tcl8.4-dev tk8.4-dev libpng12-dev libjpeg62-dev debhelper fakeroot g++
Ahora compilamos:
# cd amsn-0.97RC1
# ./configure
checking for prefix by checking for wish... /usr/bin/wish
checking for gcc... gcc
checking for C compiler default output file name... a.out
checking whether the C compiler works... yes
checking whether we are cross compiling... no
checking for suffix of executables...
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether gcc accepts -g... yes
checking for gcc option to accept ANSI C... none needed
checking for g++... g++
checking whether we are using the GNU C++ compiler... yes
checking whether g++ accepts -g... yes
checking tcl build dir... using tcl library in /usr/lib/tcl8.4
checking tk build dir... using tk library in /usr/lib/tk8.4
checking for main in -lstdc++... yes
checking how to run the C preprocessor... gcc -E
checking for X... libraries , headers
checking for gethostbyname... yes
checking for connect... yes
checking for remove... yes
checking for shmat... yes
checking for IceConnectionNumber in -lICE... yes
checking for egrep... grep -E
checking for ANSI C header files... yes
checking for sys/types.h... yes
checking for sys/stat.h... yes
checking for stdlib.h... yes
checking for string.h... yes
checking for memory.h... yes
checking for strings.h... yes
checking for inttypes.h... yes
checking for stdint.h... yes
checking for unistd.h... yes
checking for png_read_info in -lpng... yes
checking png.h usability... yes
checking png.h presence... yes
checking for png.h... yes
checking for jpeg_CreateDecompress in -ljpeg... yes
checking jpeglib.h usability... yes
checking jpeglib.h presence... yes
checking for jpeglib.h... yes
checking jerror.h usability... yes
checking jerror.h presence... yes
checking for jerror.h... yes
checking for ftello... yes
checking for fseeko... yes
checking for getpt... yes
checking for strcasestr... yes
checking for memmem... yes
checking for dlopen... no
checking for pthread_create in -lpthread... yes
checking if mmx should be used... yes
configure: creating ./config.status
config.status: creating Makefile
config.status: creating ./utils/linux/capture/config.h
compile time options summary
============================
X11 : yes
Tcl : 8.4
TK : 8.4
DEBUG : no
STATIC : no
5. Creamos nuestro paquete .deb y procedemos a su instalación:
# make deb
Seguramente nos dará éste error.
dh_builddeb --destdir="./distrib/DEB" --filename="amsn_0.97RC1-svn.deb"
dpkg-deb - error: Debian revision (`svn') no contiene ningún dígito
dpkg-deb: 1 errores en el fichero de control
dh_builddeb: command returned error code 512
make[1]: *** [binary-arch] Error 1
make[1]: se sale del directorio `/root/amsn-0.97RC1'
make: *** [deb] Error 2
Yo he conseguido compilar modificando el fichero Makefile.ini. Es algo chapuza pero funciona. Si alguien conoce el origen de éste error, (según he leído es porque no está cogiendo la versión del paquete) y como solucionarlo, agradecería mucho que dejara un comentario en éste post.
Vamos a parchear el Makefile para que nos termine de crear el paquete. Lo editamos con nuestro editor de consola preferido (para mi el vi), buscamos la etiqueta #misc y modificamos como se muestra a continuación:
# vi Makefile
# misc
PACKAGE := amsn
BASEVERSION := 0.97RC1
ifeq (no,yes)
RELEASEVERSION := 1
else
RELEASEVERSION := svn`which svnversion > /dev/null && svnversion`
endif
VERSION := $(BASEVERSION)-1.0
#VERSION := $(BASEVERSION)-$(RELEASEVERSION)
Sustituimos la línea "#VERSION := $(BASEVERSION)-$(RELEASEVERSION) " por "VERSION := $(BASEVERSION)-1.0". Grabamos y salimos de vi.
Ahora volvemos a crear nuestro paquete:
# make deb
mkdir -p ./distrib/DEB
sed "s/#VERSION#/0.97RC1-1.0/" debian/changelog.in > debian/changelog
fakeroot debian/rules clean
make[1]: se ingresa al directorio `/root/amsn-0.97RC1'
dh_testdir
dh_testroot
rm -f build-stamp
# Add here commands to clean up after the build process.
/usr/bin/make clean
make[2]: se ingresa al directorio `/root/amsn-0.97RC1'
find . -name \*~ -print | xargs rm -f
find . -name \*.o -print | xargs rm -f
find . -name \*.a -print | xargs rm -f
find . -name \*.dep -print | xargs rm -f
rm -f ./utils/TkCximage/src/TkCximage.cpp.so ./utils/TkCximage/src/TkCximage.cpp.o ./utils/TkCximage/src/PhotoFormat.cpp.o ./utils/TkCximage/src/procs.cpp.o ./utils/TkCximage/src/CxImage/libCxImage.a
rm -f ./utils/TkCximage/src/TkCximage.cpp.so ./utils/TkCximage/src/TkCximage.cpp.o ./utils/TkCximage/src/PhotoFormat.cpp.o ./utils/TkCximage/src/procs.cpp.o ./utils/TkCximage/src/CxImage/libCxImage.a
rm -f ./utils/TkCximage/src/TkCximage.cpp.so ./utils/TkCximage/src/TkCximage.cpp.o ./utils/TkCximage/src/PhotoFormat.cpp.o ./utils/TkCximage/src/procs.cpp.o ./utils/TkCximage/src/CxImage/libCxImage.a
rm -f ./utils/TkCximage/src/CxImage/libCxImage.a ./utils/TkCximage/src/CxImage/ximadsp.cpp.o ./utils/TkCximage/src/CxImage/ximaexif.cpp.o ./utils/TkCximage/src/CxImage/ximagif.cpp.o ./utils/TkCximage/src/CxImage/ximainfo.cpp.o ./utils/TkCximage/src/CxImage/ximajpg.cpp.o ./utils/TkCximage/src/CxImage/ximalyr.cpp.o ./utils/TkCximage/src/CxImage/ximapng.cpp.o ./utils/TkCximage/src/CxImage/ximatga.cpp.o ./utils/TkCximage/src/CxImage/ximatran.cpp.o ./utils/TkCximage/src/CxImage/ximabmp.cpp.o ./utils/TkCximage/src/CxImage/ximaenc.cpp.o ./utils/TkCximage/src/CxImage/ximage.cpp.o ./utils/TkCximage/src/CxImage/ximahist.cpp.o ./utils/TkCximage/src/CxImage/ximaint.cpp.o ./utils/TkCximage/src/CxImage/ximalpha.cpp.o ./utils/TkCximage/src/CxImage/ximapal.cpp.o ./utils/TkCximage/src/CxImage/ximasel.cpp.o ./utils/TkCximage/src/CxImage/ximath.cpp.o ./utils/TkCximage/src/CxImage/xmemfile.cpp.o
rm -f ./utils/webcamsn/src/webcamsn.so ./utils/webcamsn/src/webcamsn.o ./utils/webcamsn/src/kidhash.o ./utils/webcamsn/src/libmimic.a
rm -f ./utils/webcamsn/src/webcamsn.so ./utils/webcamsn/src/webcamsn.o ./utils/webcamsn/src/kidhash.o ./utils/webcamsn/src/libmimic.a
rm -f ./utils/tcl_siren/src/libsiren.a ./utils/tcl_siren/src/common.o ./utils/tcl_siren/src/dct4.o ./utils/tcl_siren/src/encoder.o ./utils/tcl_siren/src/decoder.o ./utils/tcl_siren/src/huffman.o ./utils/tcl_siren/src/rmlt.o
rm -f ./utils/tcl_siren/src/libsiren.a ./utils/tcl_siren/src/common.o ./utils/tcl_siren/src/dct4.o ./utils/tcl_siren/src/encoder.o ./utils/tcl_siren/src/decoder.o ./utils/tcl_siren/src/huffman.o ./utils/tcl_siren/src/rmlt.o
rm -f ./utils/tcl_siren/src/tcl_siren.so ./utils/tcl_siren/src/tcl_siren.o ./utils/tcl_siren/src/libsiren.a
rm -f ./utils/linux/capture/capture.so
rm -f ./utils/linux/capture/libng/libng.a ./utils/linux/capture/libng/grab-ng.o ./utils/linux/capture/libng/devices.o ./utils/linux/capture/libng/writefile.o ./utils/linux/capture/libng/parse-mpeg.o ./utils/linux/capture/libng/parse-dvb.o ./utils/linux/capture/libng/color_common.o ./utils/linux/capture/libng/color_packed.o ./utils/linux/capture/libng/color_lut.o ./utils/linux/capture/libng/color_yuv2rgb.o ./utils/linux/capture/libng/convert.o ./utils/linux/capture/libng/misc.o
rm -f ./utils/linux/capture/libng/plugins/conv-mjpeg.so ./utils/linux/capture/libng/plugins/drv0-v4l2.so ./utils/linux/capture/libng/plugins/drv1-v4l.so ./utils/linux/capture/libng/plugins/sn9c10x.so
rm -f ./utils/linux/traydock/libtray.so ./utils/linux/traydock/libtray.o
rm -f ./utils/linux/linflash/flash.so ./utils/linux/linflash/flash.o
make[2]: se sale del directorio `/root/amsn-0.97RC1'
dh_clean
make[1]: se sale del directorio `/root/amsn-0.97RC1'
fakeroot debian/rules binary VERSION=0.97RC1-1.0
make[1]: se ingresa al directorio `/root/amsn-0.97RC1'
dh_testdir
# Add here commands to compile the package.
/usr/bin/make
make[2]: se ingresa al directorio `/root/amsn-0.97RC1'
CXX utils/TkCximage/src/TkCximage.cpp.o
CXX utils/TkCximage/src/PhotoFormat.cpp.o
CXX utils/TkCximage/src/procs.cpp.o
CXX utils/TkCximage/src/CxImage/ximadsp.cpp.o
CXX utils/TkCximage/src/CxImage/ximaexif.cpp.o
CXX utils/TkCximage/src/CxImage/ximagif.cpp.o
CXX utils/TkCximage/src/CxImage/ximainfo.cpp.o
CXX utils/TkCximage/src/CxImage/ximajpg.cpp.o
CXX utils/TkCximage/src/CxImage/ximalyr.cpp.o
CXX utils/TkCximage/src/CxImage/ximapng.cpp.o
CXX utils/TkCximage/src/CxImage/ximatga.cpp.o
CXX utils/TkCximage/src/CxImage/ximatran.cpp.o
CXX utils/TkCximage/src/CxImage/ximabmp.cpp.o
CXX utils/TkCximage/src/CxImage/ximaenc.cpp.o
CXX utils/TkCximage/src/CxImage/ximage.cpp.o
CXX utils/TkCximage/src/CxImage/ximahist.cpp.o
CXX utils/TkCximage/src/CxImage/ximaint.cpp.o
CXX utils/TkCximage/src/CxImage/ximalpha.cpp.o
CXX utils/TkCximage/src/CxImage/ximapal.cpp.o
CXX utils/TkCximage/src/CxImage/ximasel.cpp.o
CXX utils/TkCximage/src/CxImage/ximath.cpp.o
CXX utils/TkCximage/src/CxImage/xmemfile.cpp.o
AR utils/TkCximage/src/CxImage/libCxImage.a
ar: creando utils/TkCximage/src/CxImage/libCxImage.a
LDX utils/TkCximage/src/TkCximage.cpp.so
LDX utils/TkCximage/src/TkCximage.cpp.so
cp utils/TkCximage/src/TkCximage.cpp.so utils/TkCximage/TkCximage.so
CC utils/webcamsn/src/webcamsn.o
CC utils/webcamsn/src/kidhash.o
CC utils/webcamsn/src/bitstring.o
CC utils/webcamsn/src/deblock.o
CC utils/webcamsn/src/encode.o
CC utils/webcamsn/src/idct_dequant.o
CC utils/webcamsn/src/mimic.o
CC utils/webcamsn/src/vlc_decode.o
CC utils/webcamsn/src/colorspace.o
CC utils/webcamsn/src/decode.o
CC utils/webcamsn/src/fdct_quant.o
CC utils/webcamsn/src/vlc_common.o
CC utils/webcamsn/src/vlc_encode.o
AR utils/webcamsn/src/libmimic.a
ar: creando utils/webcamsn/src/libmimic.a
LD utils/webcamsn/src/webcamsn.so
cp utils/webcamsn/src/webcamsn.so utils/webcamsn/webcamsn.so
CC utils/tcl_siren/src/tcl_siren.o
CC utils/tcl_siren/src/common.o
CC utils/tcl_siren/src/dct4.o
CC utils/tcl_siren/src/encoder.o
CC utils/tcl_siren/src/decoder.o
CC utils/tcl_siren/src/huffman.o
CC utils/tcl_siren/src/rmlt.o
AR utils/tcl_siren/src/libsiren.a
ar: creando utils/tcl_siren/src/libsiren.a
LD utils/tcl_siren/src/tcl_siren.so
cp utils/tcl_siren/src/tcl_siren.so utils/tcl_siren/tcl_siren.so
CC utils/linux/capture/capture.o
CC utils/linux/capture/libng/grab-ng.o
CC utils/linux/capture/libng/devices.o
CC utils/linux/capture/libng/writefile.o
CC utils/linux/capture/libng/parse-mpeg.o
CC utils/linux/capture/libng/parse-dvb.o
CC utils/linux/capture/libng/color_common.o
CC utils/linux/capture/libng/color_packed.o
CC utils/linux/capture/libng/color_lut.o
CC utils/linux/capture/libng/color_yuv2rgb.o
CC utils/linux/capture/libng/convert.o
CC utils/linux/capture/libng/misc.o
AR utils/linux/capture/libng/libng.a
ar: creando utils/linux/capture/libng/libng.a
LD utils/linux/capture/capture.so
CC utils/linux/capture/libng/plugins/conv-mjpeg.o
LD utils/linux/capture/libng/plugins/conv-mjpeg.so
CC utils/linux/capture/libng/plugins/drv0-v4l2.o
CC utils/linux/capture/libng/plugins/struct-v4l2.o
CC utils/linux/capture/libng/plugins/struct-dump.o
LD utils/linux/capture/libng/plugins/drv0-v4l2.so
CC utils/linux/capture/libng/plugins/drv1-v4l.o
CC utils/linux/capture/libng/plugins/struct-v4l.o
LD utils/linux/capture/libng/plugins/drv1-v4l.so
CC utils/linux/capture/libng/plugins/sn9c10x.o
LD utils/linux/capture/libng/plugins/sn9c10x.so
CC utils/linux/traydock/libtray.o
LD utils/linux/traydock/libtray.so
CC utils/linux/linflash/flash.o
LD utils/linux/linflash/flash.so
make[2]: se sale del directorio `/root/amsn-0.97RC1'
#docbook-to-man debian/amsn.sgml > amsn.1
touch build-stamp
dh_testdir
dh_testroot
dh_clean
dh_installdirs
# Add here commands to install the package into debian/amsn.
/usr/bin/make install DESTDIR=/root/amsn-0.97RC1/debian/amsn
make[2]: se ingresa al directorio `/root/amsn-0.97RC1'
rm -Rf /root/amsn-0.97RC1/debian/amsn/usr/share/amsn
mkdir --parents /root/amsn-0.97RC1/debian/amsn/usr/share/amsn
mkdir --parents /root/amsn-0.97RC1/debian/amsn/usr/bin
mkdir --parents /root/amsn-0.97RC1/debian/amsn/usr/share/applications/
mkdir --parents /root/amsn-0.97RC1/debian/amsn/usr/share/pixmaps/
find /root/amsn-0.97RC1/debian/amsn/usr/share/amsn -name '.svn' -print | xargs rm -Rf
chmod -R +rx /root/amsn-0.97RC1/debian/amsn/usr/share/amsn
ln -sf /usr/share/amsn/amsn /root/amsn-0.97RC1/debian/amsn/usr/bin/amsn
ln -sf /usr/share/amsn/amsn-remote /root/amsn-0.97RC1/debian/amsn/usr/bin/amsn-remote
ln -sf /usr/share/amsn/amsn-remote-CLI /root/amsn-0.97RC1/debian/amsn/usr/bin/amsn-remote-CLI
cp ./amsn.desktop /root/amsn-0.97RC1/debian/amsn/usr/share/applications/
ln -sf /usr/share/amsn/desktop-icons/32x32/apps/amsn.png /root/amsn-0.97RC1/debian/amsn/usr/share/pixmaps/
make[2]: se sale del directorio `/root/amsn-0.97RC1'
dh_testdir
dh_testroot
dh_installdocs
dh_installexamples
dh_installman
dh_link
dh_strip -XlibTclxml3.1.so
dh_compress
dh_fixperms
dh_installdeb
dh_shlibdeps -XlibTclxml3.1.so
dh_gencontrol
dh_md5sums
dh_builddeb --destdir="./distrib/DEB" --filename="amsn_0.97RC1-1.0.deb"
dpkg-deb: construyendo el paquete `amsn' en `./distrib/DEB/amsn_0.97RC1-1.0.deb'.
make[1]: se sale del directorio `/root/amsn-0.97RC1'
rm -f debian/changelog
rm -rf debian/amsn
Sólo queda instalarlo así:
# dpkg -i distrib/DEB/amsn_0.97RC1-1.0.deb
Seleccionando el paquete amsn previamente no seleccionado.
(Leyendo la base de datos ...
90302 ficheros y directorios instalados actualmente.)
Desempaquetando amsn (de .../DEB/amsn_0.97RC1-1.0.deb) ...
Configurando amsn (0.97RC1-1.0) ...
# exit
Bueno, espero que lo disfruen.
Saludos y Suerte.
Domi - Gran Canaria (Islas Canarias)