Crear un paquete .deb básico a partir de un script

http://hatteras-blog.blogspot.com/2013/12/crear-un-paquete-deb-basico-partir-de.html

Si tenemos un script y sabemos desde donde se debe ejecutar dicho script, hay una forma de crear un paquete .deb a partir de dicho script. Esto puede ser útil, para una vez que tenemos el paquete.deb creado lo podamos instalar sin necesidad de saber desde donde se tiene que ejecutar dicho script, lo cual nos puede ser útil para compartirlo con otros usuarios.Para explicar este tema lo voy a hacer con un script (*) llamado “xsane2tess.sh” (xsane y ocr ) que quiero instalar en /usr/bin , mediante un fichero xsane2tess.deb.
Una vez que tenga creado el paquete.deb ya no necesitaré recordar donde tengo que instalarlo, sino que lo podré hacer con un doble click sobre el paquete xsane2tess.deb y se instalará como cualquier otro paquete.deb , con gdebi.———————————————-  (*) el texto del script es: #!/bin/bash# xsane2tess 1.0# tesseract made simple # xsane2tess is a TesseractOCR wrapper to be able to use tesseract with xsane #TEMP_DIR=~/tmp/      # folder for temporary files (TIFF & tesseract data)ERRORLOG=”xsane2tess.log”  # file where STDERR goesif [[ -z “$1”  ]]thenecho “Usage: $0 [OPTIONS]xsane2tess converts files to TIF, scans them with TesseractOCRand outputs the text in a file.OPTIONS:-i   define input file (any image-format supported)-o   define output-file (*.txt)-l   define language-data tesseract should useProgress- & error-messages will be stored in this logfile:$TEMP_DIR$ERRORLOGxsane2tess depends on- ImageMagick  http://www.imagemagick.org/- TesseractOCR http://code.google.com/p/tesseract-ocr/Some coding was stolen from ‘ocube’http://www.geocities.com/thierryguy/ocube.html”exitfi# get options…while getopts “:i:o:l:” OPTIONdocase $OPTION ini)  # input filename (with path)FILE_PATH=”$OPTARG”;;o )  # output filenameFILE_OUT=”$OPTARG”;;l )  # Language-selectionTES_LANG=”$OPTARG”;;esacdone# redirect STDOUT to FILE_OUTexec 1>>$FILE_OUT# redirect STDERR to ERRORLOGexec 2>>$TEMP_DIR$ERRORLOG# strip path from FILE_PATH, use filename onlyIN_FILE=${FILE_PATH##*/}TIF_FILE=”$TEMP_DIR””${IN_FILE%.*}”.tifTXT_FILE=”$TEMP_DIR””${IN_FILE%.*}”# converting image into TIFF (ImageMagick)convert “$FILE_PATH” -compress none  “$TIF_FILE” 1>&2# start OCR (tesseract expands output with *.txt)tesseract “$TIF_FILE” “$TXT_FILE” -l “$TES_LANG” 1>&2# STDOUT scanned text => FILE_OUTcat “$TXT_FILE”.txt# delete graphic file after userm “$TIF_FILE”# delete tesseract outputrm “$TXT_FILE”.txtY se usa como se indica en el tema: Escanear con xsane y reconocimiento óptico de caracteres (ocr).Con el texto se crea un script como se indica en: Como crear un script básico——————————————- Para crear un paquete xsane2tess.deb a partir del script xsane2tess.sh , los pasos a ejecutar serian:1. Creamos un directorio nuevo en el directorio donde tengamos el script xsante2tess.Podemos usar cualquier nombre, pero luego mantener esa referencia. En el ejemplo yo uso “deb”mkdir deb2. Sobre ese directorio recién creado, tenemos que recrear la estructura destino que queremos utilizar. Como quiero copiar mi script  en /usr/bin, entonces creo el directorio /deb/usr/bin:mkdir -p ./deb/usr/bin3. Ahora copiamos el script a ese directorio. Si quisiera copiar a otro directorio tendríamos que reconstruir a partir de “deb” esos directorios nuevos.cp ./xsane2tess.sh ./deb/usr/bin4. Ahora creamos un subdirectorio llamado DEBIAN, que contendrá el fichero de paquete de control. Este es un fichero con un determinado formato y que proporciona información del contenido del paquete .deb.mkdir ./deb/DEBIAN5. Creamos un fichero de control con el siguiente comando:touch ./deb/DEBIAN/control6. Abrimos el fichero de control y copiamos el siguiente texto. Modificando las partes que sean necesarias.Package: nombredelpaquete (cuidado, no se permiten espacios o caracteres _ )Priority: optionalSection: miscMaintainer: nombredelcreadorysuemailArchitecture: allVersion: 1.0Depends: package1, package2, ……… (si tiene alguna dependencia por aquí el nombre)Description: aquí_una_descripción_corta_del_paquete Y aquí una descripción larga (Ojo, no elimines el espacio inicial al comienzo de esta linea)(y por ultimo elimina esta linea y deja una linea vacia)Aquí dejo un ejemplo del fichero de control:Package: xsane2tessPriority: optionalSection: miscMaintainer: usuario   ( aquí pon tu nombre y email ) Architecture: allVersion: 1.0Depends:Description: xsane-integration-tesseract script for using tesseract with xsane Just configure ocr-programm in xsane using7. Cambiamos el propietario de ese directorio:sudo chown -R root.root ./deb8. Y por último creamos el paquete en formato .deb:sudo dpkg -b ./deb /ruta/donde/quieres/dejar/el/nombre_paquete.debPor ejemplo: sudo dpkg -b ./deb /home/usuario/SCRIPTS.deb generaría el paquete xsane2tess.deb con el script xsane2tess.sh listo para instalar con un doble click a través de gdebi.Información extraída de http://ubuntulife.wordpress.com/2010/08/05/crear-un-paquete-deb-manualmente/
Enlace a la fuente original: Crear un paquete .deb básico a partir de un script

Enviado por gReader

Anuncios
Esta entrada fue publicada en Linux, Programacio. Guarda el enlace permanente.

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s