[GowTo] Crear Paquetes .deb desde el source

1 11 2008

Para empezar, este GowTo está dirigido a gente que quiera crear sus propios paquetes para subirlos a un repositorio personal y poder transportarlo a donde nos plazca ó simplemente quiera compartirlo con la comunidad. Yo en este tutorial simulo que creo un paquete de nginx-0.7.19 (la última snapshot de desarrollo disponible a fecha de hoy).

Lo primero será satisfacer los paquetes necesarios para la creación de un .deb;

$ sudo aptitude install autotools-dev fakeroot dh-make build-essential

Una vez instalados, podríamos usar /tmp como nuestro lugar de trabajo temporal o bien crear un directorio en nuestra home para no tener pérdidas de algún que otro archivo.

$ cd $HOME & mkdir tmp & cd tmp

Estando en nuestro directorio de trabajo temporal, copiaremos el source de nuestro objetivo (programa, soft, llamemosló ‘X’) a nuestro directorio tmp.
En caso de que nos hayamos decantado por crear un directorio temporal en nuestra home:

$ cp -r nginx-0.7.19 $HOME/tmp

En caso contrario, que hayamos elejido /tmp:

$ cp -r nginx-0.7.19 /tmp

Aclararos que la opción ‘-r’ que le incluimos a cp es para que copie recursivamente, todos los directorios en la carpeta recursivamente.

Una vez lo hayamos copiado todo, accedemos al directorio temporal de nginx (en mi caso, a cada cual el que corresponda).

$ cd $HOME/tmp/nginx-0.7.19 || cd /tmp/nginx-0.7.19

Ahora crearemos los archivos de control de Debian (para tener un control sobre la versión, el que lo mantiene, etc..).

$ dh_make --single

Y seleccionar el típo de binario o seleccionar los que sean apropiados. La opción –single es para unicamente crear un único paquete .deb (para proyectos pequeños). Para las dudas;

$ man dh_make

Ahora tendremos que editar los archivos que ha generado dh_make, cambiando algunas de las líneas de los mismos, como por ejemplo el encargado de mantener el paquete, versión, fecha, descripción etc..

Una vez editados, ya sólo nos queda crear el paquete con dpkg-buildpackage usando fakeroot.

$ sudo dpkg-buildpackage -rfakeroot

Como ya hemos terminado, tendremos el paquete en el directorio /tmp (ó $HOME/tmp)!
Un consejo, si piensas publicarlo y mantenerlo actualizado, te recomiendo que mires este post sobre como nombrar los paquetes para Ubuntu.

La Información de este artículo está recogida de varias fuentes como QuietEarth.us, Debian.org.

Anuncios




Esperando a OpenSolaris 2008.5

6 06 2008

Al tiempo de leer el post de mi compañero N0xTrUm diciendo que ya había pedido su CD’s de OpenSolaris, decidí apuntarme yo para que me los enviaran. Asíque nada más llegen a mi casa, lo instalaré con VirtualBox y subiré alguna imagen para que lo veais :).

De todos modos si quereís pedir vuestros CD’s de OpenSolaris 2008.5 podeís hacerlo desde aquí.





[GowTo] Comandos Esenciales de Linux

12 05 2008

Bien hoy toca mencionar, que a diario, en nuestros ordenadores realizamos tareas que realmente no deberían de ser cosa dificil pero todo esto cambia si no conocemos el comando el cuál nos resolvería esas dudas. Pues bien, aquí empiezo este listado de comandos útiles y/o esenciales para todo Linuxero. He de recordar que todos estos comandos deben de ser ingresados en una Terminal, como puede ser aTerm,  la propia Terminal de Gnome, y otras muchas alternativas.

Ya que somos usuarios asíduos de Ubuntu, empezaré con los comandos más típicos en la vida de todo Ubuntero/Debianista.

sudo apt-get install <aplicación>
Instala la aplicación la cual escribamos, buscando en los repositorios que tengamos en /etc/apt/sources.list
A su vez nos consigue e instala las dependencias del mismo.
Uso:
sudo apt-get install thunderbird

sudo apt-get update
Actualiza los paquetes disponibles desde los repositorios que tengamos configurados. (Nota: recomendable usar sudo apt-get update antes que sudo apt-get install <aplicación> para evitarnos futuros problemas).
Uso:
sudo apt-get update

sudo apt-get dist-upgrade
Actualiza a la última versión de nuestra distribución, en nuestro caso si usamos Ubuntu 7.10 nos actualizaría a Ubuntu 8.04.
Uso:
sudo apt-get dist-upgrade

sudo apt-get upgrade
Actualiza todo el software que tengamos instalado en nuestro sistema. (Esta tarea también se puede realizar por update-manager). NO actualiza la distribución a una superior, se limita a actualizar el software.
Uso:
sudo apt-get upgrade

sudo apt-cache search <aplicación>
Realiza una búsqueda en el listado de paquetería y nos muestra los paquetes relacionados con la búsqueda.
Uso:
sudo apt-cache search firefox

alias alias1=’comando’
En tareas cotidianas puede ser aburrido escribir MUCHO texto, asíque todo esto podemos resumirlo con un alias.
Uso:
alias rea=’sudo apt-get update && sudo apt-get upgrade’

sudo adduser <usuario> <grupo>
Crea un usuario en el sistema, y lo inserta en el grupo selecionado. Realiza la misma tarea que useradd, siendo este el estandar (useradd).
Uso:
sudo adduser genlinux admins

sudo addgroup <nombre_grupo>
Crea un grupo de usuarios, que luego se puede utilizar (logicamente) para organizar y para diferencias e incluso permitir o bloquear el uso de ciertas aplicaciones. Un millón de usos.
Uso:
sudo addgroup genlinux

sudo apt-get remove <aplicación>
Borra una aplicación instalada atraves de APT.
Uso:
sudo apt-get remove libssl

sudo apt-get purge <aplicación>
Realiza un completo borrado y purgado de la aplicación señalada, borrando así todo rastro del mismo.
Uso:
sudo apt-get purge gftp

bg <PID>
Envia una aplicación a segundo plano, para obtener la pid de un programa que está en ejecución; ps aux | grep programa que ya veremos más adelante.
Uso:
bg 1111

grep <texto/numero>
Esta es la herramienta multi uso, nos sirve tanto para encontrar una frase en un archivo de texto, como para ayudarnos a la hora de encontrar un PID dentro de ps aux, y un sin fín de cosas más.
Digamos que el mayor uso que hacemos de grep es despues de realizar una tarea.
Uso:
ps aux | grep firefox
cat genlinux.txt | grep “una vez mas”

cd <directorio>
Entra en el directorio señalado.
Uso:
cd /home/genlinux/FTP/

cat <archivo>
Es nuestra herramienta del día a día, nos muestra el contenido del archivo que señalemos.
Uso:
cat /home/genlinux/FTP/users.txt

chattr <atributos> <archivo>
Cambia los atributos del archivo señalado.
Uso:
chattr -R holamundo.php

chgrp <grupo> <archivo>
Cambia el grupo al que pertenece el archivo
Uso:
chgrp GenLinux mybackup.sh

chmod +/-rwx <archivo>
Cambia los permisos de un archivo.
Uso:
chmod +rwx hijack.bin

chown <propietario> <archivo>
Cambia el propietario de un archivo.
Uso:
chown genlinux myProject.c

chroot <directorio_raíz>
Cambia el directorio raíz.
Uso:
chroot /gen

clear
Limpia la terminal de texto.
Uso:
clear

history <parámetros>
Si ejecutamos history sin ningún argumento, nos muestra todos los comandos que hemos utilizado en la terminal. Si queremos limpiar el history solamente deberíamos añadirle como argumento -c
Uso:
history
history -c

diff <archivo1> <archivo2>
Compara los dos archivos mediante este comando.
Uso:
diff genlinux.txt genlinxu.txt

cksum <archivo>
Muestra los checksums de un archivo.
Uso:
cksum genlinux.html

du
Te muestra el uso (estimado) de espacio del disco duro.
Uso:
du

cp <archivo> <directorio>
Copia archivos de un directorio a otro.
Uso:
cp /home/genlinux/weblog.html /home/ftp/backup/

delgroup <nombre_grupo>
Borra un grupo de usuarios.
Uso:
sudo delgroup genLinux

deluser <nombre_usuario>
Borra un usuario.
Uso:
sudo deluser genLi

df
Muestra los sistemas de ficheros montados.
Uso:
df

dmesg
Útil cuándo tenemos un problema que no hemos podido ver, nos muestra los mensajes del kernel.
Uso:
dmesg

sudo dpkg –reconfigure <paquete>
Cuando tenemos problemas siempre podemos recurrir a reconfigurar el paquete.
Uso:
sudo dpkg –reconfigure xserver

echo “Mensaje”
Muestra un mensaje en pantalla.
Uso:
echo “Welcome to The New Generation of Linux”

env
Muestra las variables globales.
Uso:
env

fg <PID>
Envia un proceso a primer plano. Lo contrario de bg.
Uso:
fg 1000

file <archivo>
Muestra el típo de archivo que hemos señalado.
Uso:
file genlinux.html

finger <usuario>
Nos muestra información, así como la tty que estemos/está usando.
Uso:
finger genlinux

ls
Muestra el contenido de una carpeta.
Uso:
ls

free
Muestra información acerca de el uso de nuestra memoria ram y el uso del Swap.
Uso:
free

ftp <IP_Servidor>
Cliente de FTP en modo texto, típico para realizar tareas libianas.
Uso:
ftp 127.0.0.1

tar <parámetros> <fichero.tar/.tar.gz/tar.bz2>
tar es una herramienta de compresión descompresión, tiene multitud de parámetros para su funcionamiento pero daré los más usados y los que más necesitaremos.
Uso:
tar xzvf WordPress.tar.gz /* Archivos con extensión .tar.gz/.tar.z/.tgz */
tar xvf GenLinux.tar /* Archivos con extensión .tar */
tar jvxf GenPosts.tar.bz2 /* Archivos con extensión .tar.bz2 */

ifconfig
Obtienes la información de la red
Uso:
ifconfig

job
Lista los procesos en segundo plano.
Uso:
job

kill <argumento> <PID>
Termina un proceso mediante terminal.
Uso:
kill -9 1001

ln <parámetros> <archivo original> <archivo copia>
Crea enlaces simbólicos (Symbolic Links) en algunas ocasiones, tenemos las librerias necesarias, pero nos sigue dando error.
Uso:
ln -s libssl.a libssl.0.9.8

lsmod
Muestra los módulos que han sido cargados.
Uso:
lsmod

make
Es el encargado de crear los ejecutables partiendo de códigos fuente.
Uso:
make

man <comando>
Un comando bastante importante que realmente deberíamos tatuarnos. Muestra la documentación de cualquier comando que podemos introducir en nuestra Terminal.
Uso:
man gcc

mkdir <Directorio_nuevo>
Crea un directorio en el directorio actual.
Uso:
mkdir GenLinux

mv <archivo_Origen> <Directorio/localización_final>
Mueve archivos a otro directorio.
Uso:
mv isogen.html /home/gen/website/

mount <parámetros>  <dispositivo> <punto_acceso>
Monta unidades físicas.
Uso:
mount -t auto /dev/cdrom0 /mnt/cdrom0

netstat <parámetros>
Muestra todas las conexiones que hay desde nuestro pc hacia la net.
Uso:
netstat -a

nice <parámetros> <aplicación> <+19/-17>
Cambia la prioridad de un proceso.
Uso:
nice -n miscdaemon +13

rm <archivo>
Borra un archivo o un directorio añadiendo -rf como parámetros, también existe rmdir que explicaremos más adelante.
Uso:
rm -rf /home/genlinux/logs

rmdir <directorio>
Borra un directorio vacio.
Uso:
rmdir logs/

rmmod <nombre_módulo>
Descarga un módulo del kernel.
Uso:
rmmod fglrx

sftp <Dirección_IP>
Lo mismo que el comando ftp ya mencionado, pero los datos se envian encriptados, lo que nos brinda una mayor seguridad.
Uso:
sftp 127.0.0.1

ssh
Permite realizar una conexión atraves de ssh para interactuar en modo consola en ella.
Uso:
ssh 127.0.0.1

su <nombre_de_usuario>
Nos permite identificarnos como otro usuario. Aunque en Ubuntu usamos sudo, en otras distribuciones siguen usando este comando.
su genlinux

sudo
Nos permite realizar tareas y ejecutar programas atraves de root sin estar logeado como tal, lo cuál nos brinda una mayor comodidad.
Uso:
sudo apt-get update

telnet <Dirección_IP>
Realiza conexiones vía Telnet.
Uso:
telnet 127.0.0.1

top
Nos muestra la información los procesos, su uso en CPU, y demas información.
Uso:
top

traceroute <parámetros> <Dirección_IP>
Nos muestra información útil de hacía donde van los paquetes enviados por la dirección IP.
Uso:
traceroute -I 127.0.0.1

umount <parámetros> <dispositivo | directorio>
Desmonta dispositivos del sistema.
Uso:
umount -nrv /dev/cdrom0

vi <parámetros> <fichero>
Editor de texto bajo terminal.
Uso:
vi log.txt

whereis <archivo>
Muestra la ubicación de un archivo.
Uso:
whereis genlinux

who
Muestra los usuarios conectados al sistema.
Uso:
who

passwd <parámetros> <usuario>
Cambia la contraseña del usuario actual
Uso:
passwd genlinux

lsb_release <parámetros>
Muestra información de nuestra distribución.
Uso:
lsb_release -a

Hasta aquí doy por terminada esta lista, cualquier añadido será bienvenido podeís enviarme más comandos útiles a mi email que podeís encontrar en la sección de Contacto o bien en los comentarios.

*Nota: Este post se irá actualizando cada vez que alguien envie un comando nuevo, o bien yo me de cuenta de alguno que falte. Gracias.





Linux y yo Una historia

19 01 2008

Aquí os traigo mi colección de los sistemas operativos libres (AKA Linux) que han pasado por mis pc’s, la colección viene desde 2000 conmigo. aunque los típicos como Mandrake y demas los tube que tirar ya que se rallaron demasiado con el paso del tiempo aún así tengo un cd de Guadalinex 2004 entre otros.

Aquí teneis una imagen de los CD/DVD’s;

ColeccionCD/DVD

Los cuales son:

Ubuntu 7.04 32b-PC
Ubuntu 7.04 64b-PC
Ubuntu 6.06
Kubuntu 7.04
Debian 3.1 sarge
Slackware 11.0
Guadalinex 2004
Hackin9 Live
Sun Microsystem Solaris 10
Elive
Ubuntu 7.10

Y todo por un RedHat… (Año 2000)

Primero comenzé con un RedHat que no recuerdo la versión exacta, pero que me parecía espectacular, todo eran rpm’s y todo fascinante hasta que comenzé a estudiar un poquito más el entorno Linux.
Despues de pasar días y meses en el IRC (Internet Relay Chat) aprendí que RedHat sólo era el principio.. Entonces entré de lleno en el mundo *BSD (Berkeley Software Distribution). Por mi antigüo pc pasaron diferentes variantes del sistema *BSD tales como OpenBSD y NetBSD. Despues de varios meses de uso, me propuse usar Slackware 7.1 (Aunque por desgracia ya no esté en mi colección y ahora sólo disponga de la versión 11.0), también me resultó particular, la forma de trabajar en Slackware era bastante imponente, estable y seguro. Durante 4 años permanecí en el grupo de los Slackistas (Usuarios asiduos de Slackware) en los cuales me dediqué a probar otras distribuciones de Linux tales como eLive, Hackin9 y Guadalinex pero sin éxito volvía a Slackware ya que hechaba de menos mi entorno Slackista, desde el 2004 que fué cuando terminé de rotar entre las diferentes distribuciones, seguí con Slackware avanzando cada vez con sus versiones, aunque ya conocía de la existencia de Ubuntu 4.10 Warty Warthog y lo había probado seguí hasta la última versión en la cuál rompimos definitivamente Slackware y yo que fué en la 11.0 (Año 2006) y aunque hubiera asperezas volvimos a hacer las paces Slackware y yo a las dos semanas.. Unas semanas más tarde terminé por instalarme Ubuntu 6.06, entonces comprobé lo confortable y facil que era trabajar con Ubuntu. Entonces decidí quedarme con Ubuntu y avanzar entre sus versiones con él. Hasta el día de hoy, que uso Ubuntu 7.10 Gutsy Gibbon y estoy a la espera como los otros 300.000 usuarios de Linux que esperan a Ubuntu 8.04 Hardy Heron.

Y hasta aquí esta pequeña historia de Linux y yo.

Gracias a mis lectores por leerme y gracias por los comentarios y emails apoyando GenLinux, esto ayuda a seguir posteando noticias y novedades en el mundo Linux.