lunes, 30 de noviembre de 2009

Cambiar nombre / etiqueta de un disco duro (o volumen) en Debian / Ubuntu Linux

Cambiar nombre / etiqueta / label de un disco duro (o volumen) en Debian / Ubuntu Linux de cualquier partición  y sistema de ficheros.

Primer paso, averiguar la unidad que queremos cambiarle la etiqueta, listamos particiones con:

# fdisk -l

Cojeré por ejemplo, mi partición /dev/sda1 , vosotros adaptadlo a la vuestra.

Desmontamos la partición:

# umount /dev/sda1


Ahora, si nuestra partición es ext2 , ext3 o ext4, para cambiarle la etiqueta harmemos:

# e2label /dev/sda1 nueva_etiqueta

Sustituir nueva_etiqueta por la que queráis.

Si nuestra partición es NTFS

necesitaremos tener instalado ntfsprogs, para ello:

# aptitude install ntfsprogs -y

para cambiar la etiqueta:

# ntfslabel /dev/sda1 nueva_etiqueta

Si nuestra partición es FAT16 o FAT32

Instalaremos mtools:

# aptitude install mtools

cambiamos la etiqueta:

# mlabel -i /dev/sda1 :: nueva_etiqueta


Si es JFS

Instalaremos jfsutils:

# aptitude install jfsutils

cambiamos la etiqueta con:

# jfs_tune -L nueva_etiqueta /dev/sda1

Si es XFS

Instalamos xfsprogs:

# aptitude install xfsprogs

cambiamos con:

# xfs_admin -L nueva_etiqueta /dev/sda1

Si es Reiserfs

Instalaremos:

# aptitude install reiserfsprogs

cambiamos la etiqueta con:

# reiserfstune -l nueva_etiqueta /dev/sda1


Una vez concluido el cambio de etiqueta, volvemos a montar el volumen:

# mount -a

(monta todos los volúmenes)

Saludos

 Fuente : https://help.ubuntu.com/community/RenameUSBDrive

Configurar idioma Debian/Ubuntu: locales : Solución carácteres "raros"

Para configurar el idioma en nuestro equipo, para aquellos que os salen carácteres "raros" en vez de las letras con tílde, las ñ , etc..

Configuraremos locales para que nos genere los ficheros de idiomas que le marquemos.

Para ello:

# dpkg-reconfigure locales

en la pantalla que nos muestra, por ejemplo, en mi caso quiero el idioma  español, marcaré (aprentando espacio para marcarlos con un *) :

es_ES.UTF-8 , es_ES  y es_ES@euro

una vez marcados apretaremos enter.

Me pedirá que le diga que locale quiero como predeterminado del sistema; marcaré es_ES.UTF-8

Después de generar los locales y configurarlos ya tendremos nuestro sistema con el idioma seleccionado :-D

Saludos

Problema con cfdisk y el "Sí"

Para aquellos que como me pasó a mi, os encontráis en un problema a la hora de decirle al cfdisk que escriba las particiones y no podéis entrarle el "sí" con tílde:

para solucionarlo, antes de ejecutar el cfdisk cambiaremos el idioma al inglés, haremos los pasos y cuando terminemos volveremos a dejarlo en nuestro idioma.

Para ver el idioma que tenemos actualmente:

echo $LANG

Ahora, antes de ejecutar cfdisk, introduzco:

LANG=en_EN.UTF-8

Y luego de hacer todo el proceso con cfdisk, en vez de poner el "sí" pondremos "yes".

Volvemos al idioma anterior, en mi caso:

LANG=es_ES.UTF-8


Saludos.

Fuente: http://www.datanomicon.net/2009/07/cfdisk-y-el-dichoso-si-con-acento.html

domingo, 29 de noviembre de 2009

phpMyAdmin con SSL (Debian / Ubuntu)

Si queremos hacer pasar nuestro phpMyAdmin por SSL en nuestro Debian / Ubuntu , procederemos:

Primeramente tendremos que tener un certificado, preparar el servidor para  SSL y tenerlo todo listo, para ello pasaros por aquí .

Una vez finalizado lo de la entrada anterior, procederemos:

Editaremos la configuración de nuestro phpMyAdmin:

# nano /usr/share/phpmyadmin/libraries/config.default.php

Buscaremos: $cfg['ForceSSL'] = false;  y lo cambiaremos por true , quedando:

$cfg['ForceSSL'] = true;

Guardaremos con control+o y cerraremos con control+x

Ahora cada vez que queramos acceder a nuestro phpMyAdmin será por SSL (https).

Recordad que si accedéis desde red externa tendréis que abrir el puerto 443 de vuestro router y/o firewall.

Saludos

sábado, 28 de noviembre de 2009

Detectar Intrusos : Instalar Snort ( Debian Lenny / Ubuntu )

Instalar Snort en Debian Lenny o Ubuntu , para detectar intrusos en la red

Primeramente tendremos que instalar mysql y php desde aquí.

Podéis  descargar la última versión desde sección de descargas de la web de snort (clic aquí).

En mi ejemplo, descargaré la última versión a dia de hoy, la 2.8.5.1

Instalando Snort: Nos situaremos en el directorio donde hemos descargado Snort y:

tar xvzf snort-2.8.5.1.tar.gz
cd snort-2.8.5.1.tar.gz

Instalamos dependencias que nos haran falta para compilar snort:

# aptitude install php5-gd php5-ldap php5-dev php5-mysql php-pear libnet1 libnet1-dev libpcap0.8 libpcap-dev libpcap0.8-dev libpcre3 expect gobjc libpcre3-dev flex libnet0 libnet0-dev bison libmysql++-dev libapache2-mod-php5 php5-cgi -y

configuramos, compilamos e instalamos:

./configure --with-mysql --enable-flexresp --enable-sourcefire --enable-targetbased
make
# make install

crearemos los directorios para Snort:


# mkdir -p /etc/snort
# mkdir -p /var/log/snort
# mkdir -p /etc/snort/rules

copiaremos ficheros necesarios:

# cp -r preproc_rules/ /etc/snort/
# cp etc/*.conf* /etc/snort/
# cp etc/*.map /etc/snort/

Ahora ya tenemos Snort instalado, ahora necesitaremos descargar las reglas, para ello, descargaremos oinkmaster desde su web (clic aqui).

La versión a dia de hoy es la 2.0. la descargaré y me situare en el directorio de descarga y :

tar xvzf oinkmaster-2.0.tar.gz
cd oinkmaster-2.0

Ahora deberemos registrarnos a la página de Snort, nos enviaran un correo para confirmar el registro; cuando esté confirmado entraremos a nuestra área privada (sign in), > my account > subscriptions and oinkcodes > oinkcodes : veremos algo así:

Oinkcodes

xxxx92xxxxx .....

Copiaremos esa cadena de números y letras y lo incluiremos a la configuración del oinkmaster:

nano oinkmaster.conf

Buscaremos esta línea:

# url = http://www.snort.org/pub-bin/oinkmaster.cgi//snortrules-snapshot-2.4.tar.gz

Eliminaremos la almohadilla del principio, cambiaremos <oinkcode> por nuestro código y también la versión del fichero por la versión de nuestro Snort; en mi ejemplo, la 2.8. Quedará así:

url = http://www.snort.org/pub-bin/oinkmaster.cgi/aquí tu código/snortrules-snapshot-2.8.tar.gz

Guardaremos el fichero con Control+o y saldremos del editor con Control+x

Ahora ejecutaremos oinkmaster para que nos descargue las reglas:

perl oinkmaster.pl -C oinkmaster.conf -o ./

Esperaremos un rato a que se descarguen y se descompriman.


Ahora moveremos las reglas (*.rules) que se nos an descomprimido en el actual directorio a snort:

# mv *.rules /etc/snort/rules/

creamos enlace simbólico:

# ln -s /usr/local/bin/snort /usr/sbin/snort


Crearemos un grupo y usuario específicos para manejar snort:

# groupadd snort
# useradd -g snort snort

Cambiamos grupo y dueño del directorio de logs de snort para que pueda ser utilizado por dicho dueño y grupo:

# chown snort:snort /var/log/snort/
# touch /var/log/snort/alert
# chown snort:snort /var/log/snort/alert
# chmod 600 /var/log/snort/alert
# touch /etc/snort/rules/local.rules


Configuraremos snort:

# nano /etc/snort/snort.conf

Buscaremos la línea :  var RULE_PATH ../rules y la cambiaremos por:

var RULE_PATH /etc/snort/rules

también modificaremos la línea: var PREPROC_RULE_PATH ../preproc_rules y la cambiaremos por:

var PREPROC_RULE_PATH /etc/snort/preproc_rules

Buscaremos: # output database: log, mysql, user=root password=test dbname=db host=localhost y eliminaremos la almohadilla del principio y también haremos las siguientes modificaciones:


output database: log, mysql, user=snort password=un_password dbname=dbsnort host=localhost

Nota: cambiaremos un_password por una contraseña que queramos, la utilizaremos más adelante, no te la olvides ;-)

Ahora buscamos: # include $PREPROC_RULE_PATH/preprocessor.rules y eliminamos la almohadilla del principio, quedando:

include $PREPROC_RULE_PATH/preprocessor.rules

También eliminaremos la almohadilla de: # include $PREPROC_RULE_PATH/decoder.rules , quedando:


include $PREPROC_RULE_PATH/decoder.rules

Guardaremos el fichero con Control+o y cerraremos con Control+x


Creando la Base de Datos para Snort:

Ingresaremos:

mysql -u root -p

(ingresaremos la contraseña de nuestro usuario root de mysql).

Crearemos y configuraremos la BD:

CREATE DATABASE dbsnort;
GRANT CREATE, INSERT, SELECT, DELETE, UPDATE ON dbsnort.* TO snort@LOCALHOST;
SET PASSWORD FOR snort@LOCALHOST=PASSWORD('un_password');
FLUSH PRIVILEGES;
exit

Recordad sustituir un_password por vuestro password anterior.

Nos situaremos en el directorio donde descomprimimos snort, en mi caso es:

cd ~/snort-2.8.5.1/

Ejecutaremos el setup schema para la DB:

cd schemas
mysql -p -u snort dbsnort < create_mysql

Nos pedirá la contraseña que pusimos de un_password , la introducimos.


Instalando BASE para interpretar Snort gráficamente:


descargamos BASE de su web http://base.secureideas.net/

y descargamos ADOdb de su web http://adodb.sourceforge.net/

Por ejemplo, a dia de hoy descargo BASE 1.4.4 y ADOdb 5.10

Descomprimo con:

tar xvzf base-1.4.4.tar.gz && tar xvf adodb510.tgz

Cambio el nombre del directorio BASE para ser más ameno:

mv base-1.4.4 base

Los muevo a /var/www

# mv base/ adodb5/ /var/www

Damos acceso a apache:

# chown www-data /var/www/base/

Editamos php.ini :

# nano /etc/php5/cli/php.ini

Buscamos: error_reporting  =  E_ALL & ~E_NOTICE

Ahora existen dos posibilidades: tenemos la línea anter comentada (; delante) pero unas líneas más abajo la volvemos a tener descomentada o tenemos la línea anterior comentada y más abajo tenemos: error_reporting  =  E_ALL

Si estamos en el primer caso: no haremos nada.
Si estamos en el segundo: añadiremos a error_reporting = E_ALL lo que le falta para ser igual a la línea buscada, quedando: error_reporting  =  E_ALL & ~E_NOTICE , guardaremos el fichero y saldremos del editor. Reiniciaremos apache: /etc/init.d/apache2 restart

Instalaremos las extensiones PHP necesarias para BASE desde el repositorio de PHP (PEAR):

# aptitude install php-pear -y
# pear channel-update pear.php.net
# pear upgrade PEAR
# pear install Image_Color Image_Canvas Log Mail Mail_Mime Numbers_Roman Numbers_Words

Configuraremos BASE:

Introduciremos en el navegador :

http://localhost/base

En la página clic en continue.

Ahora seleccionaremos idioma, y le diremos la ruta de ADOdb, en mi caso: /var/www/adodb5

Clicaremos a Enviar Consulta (o lo que sea en vuestro idioma).

Ahora:

Pick a Database type: Dejaremos MySQL
Database Name: dbsnort
Database Host: localhost
Database Port: Pondremos el puerto que queramos, si lo dejamos en blanco será el que viene por defecto (3306). En mi caso, lo dejaré en blanco.
Database User Name: snort
Database Password: poned el que tengáis de un_password

Pulsaremos en Enviar Consulta.

Ahora nos pedirá un usuario y contraseña para acceder a BASE, lo ponemos y le damos a Enviar Consulta.

Ahora pulsamos sobre el botón: Create BASE AG

pulsamos sobre: step 5...

Ya estamos en la página principal de BASE.

Ahora nos falta iniciar Snort, crearemos un script:

# nano /etc/init.d/snort

Que contenga, el siguiente código:

#!/bin/bash

# This is a "simple" script written by bodhi.zazen to start snort.
# This script is released under the GPL V3.
# Feel free to make modifications.
# If you modify or redistribute this script please give the courtesy of credit.

# This script requires zenity if you wish to run it in X.

# Test root and display

############################################################
###                 Configuration options                ###
############################################################
############################################################
# The following sections are used to configure snort
# Change "eth0" to the interface you wish to use with snort
#
IFACE="eth0"

# To Add hosts you wish to ignore to a "white list,
# Add them into the "WHITELIST"
# Be sure separate each ip address by a space
# Example WHITELIST='192.168.1.1 192.168.1.2'
WHITELIST=''

# The following section formats the $WHITELIST into proper syntax for snort
if [ -z "$WHITELIST" ] ; then
  HOST=''
else 
  c='1'
  for i in $WHITELIST; do
    if [ "$c" = "1" ]; then
      HOST="host "$i""
      c='2'
    else
      HOST=""$HOST" or host "$i""
    fi
  done
fi

############################################################
#
# To start snort at boot, put :
#
# "/etc/init.d/snort boot"
#
# in /etc/rc.local (without quotes, above the line exit 0)
#
############################################################

# Sanity checks

if [ -z "$DISPLAY" ] || [ ! -x "/usr/bin/zenity" ]; then
  D="e"
else
  D="z"
fi

uid=$(/usr/bin/id -u)
if [ ! "$uid" = "0" ];then
  case "$D" in
    e)
      sudo bash $0 $@
      exit 0
      ;;
    z)
      if [ -x "/usr/bin/gksu" ];then
        gksu "$0 $@"
        exit 0
      else
        kdesu "$0 $@"
        exit 0
      fi
      ;;
  esac
fi

# Check for stale lock files
if [ -z "$PID" ]; then
  rm -f /var/run/snort_"${IFACE}"*
fi

# Declair variables
SNORT='/usr/local/bin/snort -c /etc/snort/snort.conf -u snort -g snort -D'
ZEN="/usr/bin/zenity"
ZENINF='$ZEN --width=700 --title "Bodhis snort script" --info --text'
ZENWARN='$ZEN --width=700 --title "Bodhis snort script" --warning --text'
ZENMSG='"$TXT"'
PID=`pidof snort`

#Set prompt colors
RED='\e[0;31m'
GREEN='\e[0;32m'
BLUE='\e[0;34m'
NC='\e[0m'              # No Color

# functions

zeninfo ()
{
case "$D" in
  e)
    echo -e $BLUE"${TXT}" $NC
    ;;
  z)
    eval $ZENINF $ZENMSG
    ;;
esac
}

zenwarn ()
{
case "$D" in
    e)
      echo -e $RED"${TXT}" $NC
      ;;

    z)
       eval $ZENWARN $ZENMSG
     ;;
  esac
}

start ()
{
#start snort
if [ -z "$HOST" ];then
  $SNORT -i "$IFACE" &
else
  $SNORT -i "$IFACE" not \(`echo "$HOST"`\)&
fi
# This sleep is necessary to allow snort to initialize.
# If you shorten it, snort may start, but fail.
# this sleep is skipped if you use the boot option
sleep 20
PID=`pidof snort`
if [ ! -z "$PID" ]; then
  if [ ! -z "$WHITELIST" ]; then
    TXT="Snort successfully started, using a Whitelist of "$WHITELIST""
  else
    TXT="Snort started successfully ..."
  fi
  zeninfo &
  exit 0
else
  TXT="Snort failed to start ..."
  zenwarn &
  exit 1
fi
}

stop ()
{
if [ ! -z "$PID" ]; then
  kill -9 ""$PID""
  rm -f /var/run/snort_"${IFACE}"*
  TXT="Snort stopped ..."
  zeninfo &
  exit 0
else
  TXT="Snort is not running ..."
  zenwarn &
  exit 1
fi
}

restart ()
{
if [ ! -z "$PID" ]; then
  kill -9 "$PID"
  rm -f /var/run/snort_"${IFACE}"*
fi
start
}

status ()
{
if [ ! -z $PID ] ; then
  TXT="Snort is running ..."
else
  TXT="Snort is not running ..."
fi
zeninfo &
}

case "$1" in

  boot)
    if [ ! -z "$PID" ]; then
      exit 0
    fi   
    if [ -z "$HOST" ];then
      $SNORT -i "$IFACE" &
    else
       $SNORT -i "$IFACE" not \(`echo "$HOST"`\)&
    fi
    ;;
  start)
    if [ ! -z "$PID" ]; then
      TXT="Snort is already running ..."
      zenwarn &
      exit 1
    else
      start
    fi
    start
    ;;
  stop)
    stop
    ;;
  restart|reload)
    restart
    ;;
  status)
    status
    ;;
  *)
    TXT="Usage start|stop|restart|reload|status|boot"
    zenwarn
    exit 1
    ;;
esac

exit 0

Si vuestra interfaz es eth0 no tocaremos nada, pero si es diferente, por ejemplo eth1 , en el script cambiaremos IFACE="eth0" por IFACE="eth1"

Guardaremos con Control+o y saldremos con Control+x

Damos permisos:

# chown root:root /etc/init.d/snort
# chmod 500 /etc/init.d/snort

Iniciamos Snort:

# update-rc.d snort defaults
# /etc/init.d/snort restart

Ya tenemos nuestro Snort corriendo y ejecutándose en cada inicio.

Saludos.

Fuente principal:  B!n@ry | Script Snort.init : bodhi.zazen | Adaptación a la actualidad, solución de errores y inclusión de oinkmaster por mí.

 

viernes, 27 de noviembre de 2009

Grabar DVD y CD en Ubuntu / Debian

 La mejor herramienta de grabación de linux Ubuntu / Debian

Para grabar nuestros CD's y DVD's en nuestro Ubuntu / Debian necesitaremos:

K3b
Instalando:

# aptitude install k3b

Introduciremos el CD/DVD virgen a nuestro grabador.

Ejecutaremos k3b : Aplicaciones > Sonido y vídeo > k3b
o desde terminal:

k3b




Las opciones que nos muestra (por orden: de arriba a derecha y de abajo a derecha) són:

Nuevo CD de Audio | Nuevo CD de Datos | Nuevo DVD de Datos
Copiar CD | Grabar imágen de CD| Grabar imágen ISO a DVD
| Otras acciones |

Seleccionaremos la acción que más deseemos, le daremos a Grabar y listo!

Apagar el PC automáticamente en Ubuntu / Debian

Para apagar el pc automáticamente en Ubuntu / Debian , procederemos:

Abriremos terminal y escribiremos:

Apagado de PC dentro de 45 minutos:

shutdown -h +45 &

Apagado de PC a las 11:30 :

shutdown -h 11:30 &

Cancelar un apagado pendiente:

shutdown -c

Más info: shutdown --help o man shutdown

Esquinas redondeadas | Bordes redondeados

Si queremos tener bordes redondeados , ya sea en el header, en el post, en el wrapper, en el sidebar, procederemos:

Iremos a:

Diseño > Edición de HTML

Buscaremos 

#sidebar-wrapper {
  width: 215px;
  float: right;
 background: #ffffff;
}


y agregaremos al final, antes de el último }

border: 1px solid;
-moz-border-radius: 15px;
-webkit-border-radius: 15px;


Quedando:

#sidebar-wrapper {
  width: 215px;
  float: right;
 background: #ffffff;
border: 1px solid;
-moz-border-radius: 15px;
-webkit-border-radius: 15px;
}


Ya tendremos nuestras esquinas redondeadas ;-)

Fuente: http://www.kabytes.com/programacion/como-crear-bordes-redondeados-utilizando-solo-css-y-sin-imagenes/

Eliminar bordes de las imágenes

Para eliminar / quitar los bordes de las imágenes :


post img {
. /*puede variar según la plantilla*/
border:2px solid $bordercolor;
}

El objetivo es cambiar donde pone border: tamaño con px, por 0 , quedando así:


post img {
. /*puede variar según la plantilla*/
border:0px;
}

Saludos

jueves, 26 de noviembre de 2009

Instalar Firefox 3.5 en Debian

Instalar Firefox 3.5 en Debian 5.0 Lenny . Firefox 3 Linux Debian.

Descargaremos el firefox desde aquí. (Dar al botón Descarga gratuita).

Se nos descargará un .tar.bz2 , por terminal, nos situaremos en la carpeta donde se ha descargado y lo descomprimiremos:

tar jvzf firefox-version.tar.bz2

Ahora moveremos el directorio a /usr/lib/

# mv firefox /usr/lib/

Cambiamos propietario y grupo:

# chown root:root -R /usr/lib/firefox/

Creamos enlace simbólico:

# ln -s /usr/lib/firefox/firefox /usr/bin/firefox

Ejecutamos firefox:

firefox $u &

Si queremos añadir el acceso en nuestra barra de Gnome:

Clic derecho en la barra superior de nuestro escritorio Gnome por defecto > añadir al panel ... > Lanzador de aplicación personalizado

Ahora pondremos:

Tipo: dejamos aplicación
Nombre: Firefox 3.5
Comando: firefox %u
Comentario: Navegador web firefox 3.5


Hacemos click en la imagen de la izquierda con forma de superficie con muelle y en la barra de dirección que nos sale pondremos:

/usr/lib/firefox/icons

Automáticamente nos saldrán los iconos en la parte inferior, seleccionaremos el que más nos guste y daremos a aceptar.

Regresaremos en la pantalla anterior, dónde volveremos a darle a aceptar.

Listo, ya tenemos nuestro lanzador del firefox!

Saludos ;-)

Cambiar el nombre de interfaz de red

Cambiar el nombre de las interfaces de red en linux Debian o Ubuntu.

Cambiar eth0 por eth1 Ubuntu Debian Linux. Cambiar eth1 por eth0 Ubuntu Debian Linux. Cambiar wlan0 por wlan1. wlan1 por wlan0 ... etc.

Bastará con editar el fichero:

# nano /etc/udev/rules.d/70-persistent-net.rules

Y, si por ejemplo, queremos cambiar eth0 por eth1 , editaremos la línea:

SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="XX:XX:XX:XX:XX:XX", ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="eth*", NAME="eth0"

y la dejaremos así:

SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="XX:XX:XX:XX:XX:XX", ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="eth*", NAME="eth1"

Y listo!! ;-)

Instalar impresora HP en linux (Debian / Ubuntu)

Para Instalar impresora HP PSC en linux (Debian / Ubuntu) . Probado en la PSC 1610 All in One.

Conectaremos la impresora a nuestro puerto USB y la pondremos en marcha.

Instalaremos el servicio de impresión y el configurador de impresión:

# aptitude install cupsys printconf -y

aptitude se encargará de instalar todas las dependencias.

Ejecutaremos printconf:

# printconf

Ya tendremos nuestra impresora instalada.

NOTA: si nos es molesto que hp-toolbox se nos inicie al arrancar el sistema, podemos desactivarlo del inicio: ir a Sistema > Preferencias > Sesiones desactivaremos HP System Tray Service y le daremos a cerrar.

Saludos.

martes, 24 de noviembre de 2009

Apache 2 con SSL

Apache 2 con soporte SSL en Linux Debian / Ubuntu , web https ssl navegación segura.

El primer paso que tendremos que hacer será generar un certificado SSL para nuestro Apache.

Instalaremos los paquetes necesarios:

# aptitude install openssl


Activamos el módulo SSL en nuestro Apache:

# a2enmod ssl

Creando el certificado:

Creamos la clave privada RSA, para equilibrar entre seguridad y compatibilidad será de fotaleza 1024 bits:

# openssl genrsa -out servidor.key 1024

Protegemos la clave privada quitando privilegios:

creamos el certificado sin cifrar para que cada vez que se inicie el apache no nos pida la clave de acceso:

# openssl req -new -x509 -nodes -sha1 -days 365 -key servidor.key -out servidor.crt

Respondemos a las preguntas del estándar X.509.

Unimos la clave y el certificado para que pueda ser utilizado por apache:

# cat servidor.crt servidor.key > servidor.pem
# rm servidor.key

Protegemos la clave privada quitando privilegios:

# chmod 400 servidor.pem

Creamos los directorios donde pondremos la clave y el certificado para el apache:

# mkdir -p /etc/apache2/ssl
# mkdir -p /etc/apache2/crt

Moveremos la clave y el certificado en dichos directorios:

# mv servidor.pem /etc/apache2/ssl
# mv servidor.crt /etc/apache2/crt


Ahora crearemos un sitio web de ejemplo que utilice SSL:

Crearemos los ficheros del ejemplo:

# mkdir -p /var/www/ejemploSSL
# echo Esta es una web de ejemplo con SSL > /var/www/ejemploSSL/index.html

Crearemos el site del ejemplo:

# nano /etc/apache2/sites-available/ejemploSSL

En en fichero ejemploSSL introduciremos:

 
        ServerName tuservidor.com
        ServerAlias tuservidor
        SSLEngine on
        SSLCertificateFile    /etc/apache2/crt/servidor.crt
        SSLCertificateKeyFile /etc/apache2/ssl/servidor.pem
        DocumentRoot /var/www/ejemploSSL/
       
                Options Indexes FollowSymLinks MultiViews
                AllowOverride None
                Order allow,deny
                allow from all
       

        ErrorLog /var/log/apache2/ejemplossl-err.log
        TransferLog /var/log/apache2/ejemplossl-transfer.log


Guardaremos y cerraremos el fichero.

Ahora habilitaremos el site:

# a2ensite ejemploSSL

Recargaremos la configuración del apache:

# /etc/init.d/apache2 force-reload

ó

# service apache2 force-reload


Comprobaremos la dirección:

https://nuestro_host/ejemploSSL

Nota: recordad abrir el puerto 443 (SSL) a vuestro firewall para que funcione!


Ya tenemos nuestra site con SSL ;-)

Instalar Apache 2 + PHP 5 + MySQL + phpMyAdmin en Linux Debian / Ubuntu

Para Instalar Apache 2 + PHP 5 + Mysql + phpMyAdmin en nuestro Linux Debian / Ubuntu , procederemos:

# aptitude install apache2 php5 mysql-server phpmyadmin

aptitude nos instalará automáticamente las dependencias necesarias.

Durante la instalación se nos pedirá la contraseña para nuestro usuario root de MySQL, la introduciremos.

También se nos preguntará que servidor queremos que se configure automáticamente con phpmyadmin, seleccionaremos apache2 (espacio y enter).

Ahora configuraremos MySQL de manera segura, para ello, ejecutaremos:

# mysql_secure_installation

nos pedirá la contraseña de nuestro usuario root de MySQL , la introduciremos.

Nos preguntará:

Change the root password? [Y/n]

Respondemos: n

Remove anonymous users? [Y/n]

Respondemos: y

Disallow root login remotely? [Y/n]

Respondemos: y

Remove test database and access to it? [Y/n]

Respondemos: y

Reload privilege tables now? [Y/n]

Respondemos: y

Ya habremos terminado de configurar MySQL.

Bien, ahora solo nos falta comprobar que todo está correcto, abriremos en el navegador web:

http://localhost

y

http://localhost/phpmyadmin

Nos tendría que salir en la primera dirección una página web diciendo "It works!" y en la segunda, la web de login de nuestro phpmyadmin.

Recordad abrir el puerto 80 de nuestro firewall si queremos acceder desde otra máquina sea por red interna como externa.

Saludos.

Sincronizar fecha y hora con NTP

Sincronizar fecha y hora de nuestro linux con NTP.

Instalaremos ntp y ntpdate:

# aptitude install ntpdate ntp

Ahora tendremos que configurar la zona horaria de NTP:

# tzselect

responderemos a las preguntas.

Ahora editaremos el fichero de configuración de ntpdate:

# nano /etc/default/ntpdate

veremos que contiene una línea que pone: NTPDATE_USE_NTP_CONF=yes ; que nos indicará que no es necesario configurar en éste fichero los servidores NTP, ya que los cojerá del ntp.conf; el que si haremos es añadir la opción "-u" en NTPOPTIONS para que utilize un perto no privilegiado. Quedará:

# Additional options to pass to ntpdate
NTPOPTIONS="-u"

En menos de una hora el demonio ntpd nos sincronizará correctamente el reloj del sistema (si, tarda un poco).

Para comprobarlo:

date

Saludos.

lunes, 23 de noviembre de 2009

Instalar JDownloader en Debian / Ubuntu

Para instalar este gestor de descargas de Megaupload y Rapidshare entre muchos otros.

Descargamos JDownloader desde aquí.

Escojemos la versión linux y le damos a descargar desde cualquier mirror.

Descomprimimos el fichero: "Click derecho > Extraer aquí"

o por terminal:

unzip jdownloader-version.zip

Instalamos la máquina virtual de Java para poder ejecutarlo:

# aptitude install sun-java6-bin sun-java6-jre sun-java6-plugin

Una vez instalado podemos ejecutar JDownloader yendo a su carpeta, botón derecho en JDownloader.jar > Abrir con Java JDK

o por terminal:

java -jar JDownloader.jar

Si al ejectutarlo nos da un mensaje parecido a:

Wrong Java Version! JDownloaderneeds at least Java 1.5 or higher!

deberemos especificar que nuestra jvm por defecto sea la que acabamos de instalar, para ello, ejecutaremos en el terminal:

# update-alternatives --config java

y seleccionaremos la versión de Java que acabamos de instalar, en nuestro caso, Java 6 de sun.

Saludos

Limpiar GNU/Linux Debian | Ubuntu

Limpiar nuestra máquina en Debian / Ubuntu para no tener residuos en el sistema. Eliminar archivos configuración resudiales linux. Limpiar linux Debian y Ubuntu.

Usuarios Debian:

  Uso de Checkinstall: Cuantas veces nos hemos tenido que descargar el código fuente de algún programa y al quererlo desinstalar el Makefile que lleva no tiene rutina de desinstalación o no acaba de estar correctamente realizada, con la consecuencia de dejarnos ficheros sueltos por el sistema que la única tarea que realizan es la de ensuciarlo. Checkinstall nos construye un paquete deb desde el código compilado para poder realizar una posible posterior desinstalación sin residuos a través de dpkg.

Instalando Checkinstall:

# aptitude install checkinstall

Funcionamiento de checkinstall: cuando queramos compilar un archivo fuente, cambiaremos el último paso (make install) por checkinstall; el proceso quedaria así:

./configure && make

luego:

# checkinstall

Respondemos a las cuestiones planteadas y en pocos segundos tendremos creado nuestro paquete deb, que instalaremos con:

# dpkg -i paquete

Así, cuando queremos eliminar el paquete podemos hacer, por ejemplo:

# aptitude remove --purge paquete

Para más info. de éste método: man checkinstall y # checkinstall -h

  Uso de Deborphan : Nos facilita la detección y eliminación de paquetes huérfanos y librerias de desarrollo.

Instalación:

# aptitude install deborphan

Para desinstalar paquetes huérfanos:

# aptitude remove --purge `deborphan`

Para desinstalar librerias de desarrollo:

# aptitude remove --purge `deborphan --libdev`

Para eliminar ficheros de configuración:

# dpkg --purge $(deborphan --find-config)

Para más info. de éste método: man deborphan

  Uso de localepurge : elimina los ficheros de idioma que no se utilizan.

Instalación:

# aptitude install localepurge

Nos preguntará varias cuestiones de configuración, se recomienda mantener los idiomas que sean más comunes/importantes y utilicemos; por ejemplo:
mantener inglés: en , mantener español: es  , mantener catalán: ca

  Limpiar caché APT :

# aptitude clean && aptitude autoclean

  Eliminar directorios de configuración que ya no se utilizan :

En nuestro home:

ls -a

Los ficheros de configuración empiezan por un punto al principo (ficheros ocultos).
Podemos eliminar los ficheros de configuración que ya no se utilizen (¡asegurarse antes!), eliminando su directorio:

rm -r .directorio

Para los usuarios de Ubuntu

Simplifica tus pasos con Ubucleaner, disponible aquí.

Damos permisos:

# chmod -c 744 71529-ubucleaner.sh

Para ejecutarlo:

# sh 71529-ubucleaner.sh

Saludos.

Fuentes y más info: esDebian.org , linuxfocus.org , guia-ubuntu.org (deborphan) , guia-ubuntu.org (localepurge).

domingo, 22 de noviembre de 2009

SCP : Copiar ficheros entre máquinas de manera segura

Copiar ficheros entre dos máquinas de manera segura en linux Debian | Ubuntu

Utilizaremos SCP

Copiar un fichero desde mi máquina a otro host:

scp fichero usuario@host:/ruta_host_donde_copiar_el_fichero

Si necesitamos puerto para conectarnos al host:

scp -P puerto fichero usuario@host:/ruta_host_donde_copiar_el_fichero

Para copiar entre dos hosts:

scp usuario1@hostorig:/ruta_host1_origen \ usuario@hostdest:/ruta_host_destino

Para más info: man scp

sábado, 21 de noviembre de 2009

Hosts Virtuales con Apache2

hosts virtuales apache2 | debian ubuntu | host virtual apache2

Los ficheros de configuración de los sites que queremos añadir en nuestro apache (Hosts Virtuales) se situan en el directorio /etc/apache2/sites-available , si ingresamos en este directorio, podremos ver que existe un par de ficheros default, éste fichero és el que crea el apache por defecto y situa el directorio de publicación /var/www/ principalmente.
En el directorio /etc/apache2/sites-enabled, tenemos los hosts que están disponibles/activados en éste momento.

Supongamos que queremos agregar un nuevo host , le llamaremos para este ejemplo, nuevo_host ; de manera que cuando haya una petición a la dirección http://nuevo_host , nuestro servidor apache tendrá que diferenciar y enviarnos a la página de mi nuevo_host.
Vamos allá, para empezar tenemos que agregar nuestro nuevo host en /etc/hosts , esto lo haremos añadiendo nuevo_host en la línea primera que empieza por 127.0.0.1 localhost, editaremos con:

# nano /etc/hosts

Y la primera línea la modificaremos y tendrá que quedar algo como:

127.0.0.1 localhost nuevo_host

Éste procedimiento se puede repetir tantas veces como se quiera, siempre añadiendo los nuevos hosts al fichero y asegurandonos de que no se produce ningún salto de línea, tienen que quedar todos los hosts en la primera línea.

Pondremos los nuevos ficheros del site (web) de nuestro nuevo_host en el directorio, por ejemplo, /var/www/nuevo_host/
Ahora crearemos la entrada para nuestro site:

# nano /etc/apache2/sites-available/nuevo_host

En el fichero, incluiremos, por ejemplo:


ServerName nuevo_host.loquesea
ServerAlias *.nuevo_host.loquesea
ErrorLog /var/log/apache2/nuevo_host-err.log
TransferLog /var/log/apache2/nuevo_host-transfer.log
DocumentRoot /var/www/nuevo_host/

Options FollowSymLinks
AllowOverride None


Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all



Nota: las opciones de los directorios se pueden configurar como se deseen.

Guardaremos el fichero.

Habilitaremos nuestro nuevo host y recargaremos la configuración del apache para que se carguen los cambios con:

# a2ensite nuevo_host && /etc/init.d/apache2 force-reload

ó

# a2ensite nuevo_host && service apache2 force-reload

Si alguna vez queremos desactivar un host , por ejemplo, nuevo_host, lo haremos a través de a2dissite utilizando la misma sintaxis que con a2ensite.

Ya tenemos nuestro host virtual activado !

viernes, 20 de noviembre de 2009

Apt-Pinning

Apt-Pinning  en Debian , mezclar diversas ramas , mezclar diversas releases , híbrido.

El Apt-pinning nos permite mezclar varias ramas de Debian. Por ejemplo, nos permite tener un sistema instalado estable, pero con opción a poder instalar paquetes por APT de la versión experimental o inestable, permitiéndonos no renunciar a un sitema estable para instalar paquetes más recientes.


Hay que recordar que la versión estable es la que recibe soporte de seguridad, pero para servicios de mera importancia podemos optar a instalar una versión experimental o inestable manteniendo la base sólida de la estable.

Para ello, editaremos nuestro sources.list con:

# nano /etc/apt/sources.list

Podemos dejarlo así:

# APT-PINNING
##### Estable #####
deb http://ftp2.de.debian.org/debian/ stable main contrib non-free
deb-src http://ftp2.de.debian.org/debian/ stable main contrib non-free
deb http://security.debian.org/ stable/updates main contrib non-free
deb-src http://security.debian.org/ stable/updates main contrib non-free
deb http://volatile.debian.org/debian-volatile stable/volatile main contrib non-free
deb-src http://volatile.debian.org/debian-volatile stable/volatile main contrib non-free
#### Testing ######
deb http://ftp2.de.debian.org/debian/ testing contrib non-free main
deb-src http://ftp2.de.debian.org/debian/ testing main contrib non-free
#### Inestable #####
deb http://ftp2.de.debian.org/debian/ unstable contrib main non-free
deb-src http://ftp2.de.debian.org/debian/ unstable contrib non-free

Ahora crearemos el fichero de preferencias del APT para poder dar prioridades entre los diferentes repositorios, entendiendo que se le da más prioridad a las antiguas versiones ya que són las más seguras:

# nano /etc/apt/preferences

Y añadimos:


Package: *
Pin: release a=stable
Pin-Priority: 700

Package: *
Pin: release a=testing
Pin-Priority: 650

Package: *
Pin: release a=unstable
Pin-Priority: 600

Nota: por poco texto que es, se recomienda copiarlo a mano, ya que a veces se cuela algún carácter fantasma y el APT no lo pilla.
Ahora ejecutaremos:


# aptitude update

Llegados aquí nos podría dar un error de Mmap, para solucionarlo estableceremos la caché del APT más grande:
Editamos o creamos si no existe:


# nano /etc/apt/apt.conf

Añadimos:


APT::Cache-Limit "20000000";

Ahora ya podemos instalar paquetes de las diferentes versiones, existen dos maneras de hacerlo:
Si queremos instalar un paquete de una versión concreta pero para satisfacer las dependencias queremos utilizar la versión de mas prioridad (estable) escribiremos:


# aptitude install paquete/versión

paquete = paquete que queremos instalar. Versión = stable, testing , unstable.
Instalar el paquete de una versión determinada pero para satisfacer las dependencias utilizará la misma versión:


# aptitude -t versión install paquete

Para continuar actualizando la base del sistema en stable, como siempre:

# aptitude update && aptitude safe-upgrade


Saludos ;-)

viernes, 13 de noviembre de 2009

Comandos más comunes en linux


Comandos más usados en linux (Debian | Ubuntu)

Tened en cuenta que si hay algún comando que aparentemente no os funciona es porque o no lo estáis ejecutando como root (cuando requiere) o porque no tenéis instalado el paquete.

¡Importante! Para saber más de un comando, ejecutar: man comando


ls : lista los contenidos de los directorios, tambén puede utilizarse: dir , vdir.
      parámetros más comunes: -l : lista con permisos ; -a : lista también ocultos; -R : lista recursiva; -F : añade / | o * en directorio nombre FIFO o ejecutable respectivamente.

ps : lista los procesos del usuario. Lista completa de procesos: ps axu

top : lista las tareas en marcha; uso de cpu y memoria de los procesos.

du : Espacio que ocupa en disco el directorio en curso; tamaño de un directorio: du -ch directorio

uname : Info del sistema; kernel : uname -r  ; todo: uname -a

uptime : tiempo de la máquina en funcionamiento, usuarios en el sistema y la carga del sistema.

hostname : nombre del sistema

dmesg : Entubado con more, head.... etc , no imprime el buffer del kernel, por ejemplo, recien arrancado el sistema, encontraremos el texto de arranque de nuestra máquina.

free : cantidad de memoria ocupada / libre ; con totales : free -tm

df -h : muesta los dispositivos montados en el sistema y sus tamaños

cat : concatena ficheros y los muestra por la salida estándar, ejemplos:
        ver tipo de procesador: cat /proc/cpuinfo
        ver interrupciones : cat /proc/interrupts
        ver el tipo de sistema de ficheros que se puede utilizar: cat /proc/filesystems

finger usuario : (cambiando usuario por el usuario del sistema que queramos) nos muestra información sobre el.

who : info. sobre los usuarios que están usando el sistema.

lsmod : ver los módulos en uso del sistema.

id usuario : ver la identificación de usuario.

last : ver los últimos usuarios que pasaron por el sistema.

set : muestra info. sobre el entorno de usuario actual.

ping ip/máquina : envia un echo icmp a la ip/máquina

# route : (# = cómo root) ; muestra la tabla de enrutamiento del sistema.

# ifconfig : muestra info. sobre nuestros dispositivos de red; también configura : man ifconfig.

netstat : info. conexión red.

cp / mv / rm : copiar , mover , borrar ficheros/directorios, más info: man cp | mv |rm ; rm -r : borrado recursivo.

mkdir / rmdir : crea directorio / borra directorio vacío.

date : fecha y hora del sistema

pwd : nos dice la ruta del directorio en el que estamos actualmente.

cd directorio  | cd : cd directorio nos cambia a directorio.  cd : nos situa al home correspondiente del usuario.

history : muestra el historial de comandos del usuario actual.

more : muestra contenido entrante con pausas de 25 líneas.

grep : filtra el contenido entrante con un patrón pasado por parámetro.

diff : busca diferencias entre ficheros.

wc : muestra el número de palabras, líneas y carácteres de la entrada. También puede mostrar el tamaño de un archivo: wc -c archivo.

calendar : recordatorio de fechas.

cal : muestra el calendario, si queremos el año completo: cal -my

traceroute host: muestra el camino de paquetes en red que tenemos hacia  host.

# iptraf : muestra el tráfico de red.

# tcpdump : vuelca el contenido del tráfico de red.

lsof : lista ficheros abiertos.

lsmod : lista módulos cargados.

modprobe : para añadir/eliminar un módulo del kernel.

rmmod : elimina los módulos del kernel que estan cargados actualmente.

su - : shell en modo root eliminando las variables de entorno. mayor seguridad.

# adduser / userdel : añade / elimina una cuenta de usuario.

passwd : cambiar el password del usuario .

# groupadd / groupdel : crea / elimina un grupo

cat /etc/group : ver los grupos del sistema.

chmod : para cambiar los permisos de los ficheros / directorios.

chown : cambiael usuario y el grupo propietario de los ficheros / carpetas : chown usuario:grupo

chgrp : cambia el grupo propietario de los ficheros/ carpetas.

umask : establece que permisos tendrán los ficheros nuevos creados.

mount / umount : para montar /desmontar unidad

wget : descargar fichero http / ftp

lynx : navegar por web desde terminal

ftp : cliente ftp

whois dominio : hace un whois a un dominio.

mail : envio / lectura de e-mail.

sort : ordena contenido de entrada.

ln : para crear un soft-link.

tail / head : muestra la cola / cabecera de la entrada.

file : nos dice que tipo de fichero és un archivo.

# shutdown : apaga el equipo a partir de las condiciones entradas por parámetro.

reboot / poweroff : reinicia / apaga el sistema.

init 6 / init 0 : reinicia / apaga el sistema. Importante ver aqui.

# sysctl : configurar parametros del kernel "al vuelo".

ulimit : muestra / modifica los límites del usuario.

banner : muestra la entrada por pantalla en cartel.

xwd : captura de pantalla : xwd -root -screen > fichero ; captura de ventanda : xwd > fichero

import -window root pantalla.tipo (tipo = ps, jpg, bmp, png...) : captura pantalla en otros formatos.

md5sum : comprobación del md5 (entrada)



Saludos.

viernes, 6 de noviembre de 2009

Múltiples terminales en linux : Screen



Para aquellos que nos viene bien tener múltiples terminales por ejemplo, en una misma sesión ssh a una máquina remota, poder dejar ejecutandose varios terminales con procesos diferentes corriendo, y retomarlos cuando más bien nos venga o compartirlo con otros usuarios; todo en un mismo terminal.


Terminales virtuales con screen | múltiples terminales con screen.

Instalaremos screen:

# aptitude install screen


Ahora haremos una prueba, ejecutaremos en el terminal el comando screen:

screen

Si nos muestra una pantalla con texto le damos a enter.

Ahora ejecutaremos un programa, por ejemplo el nano:

nano

Para dejarlo ejecutandose en segundo plano presionaremos Control+a y seguidamente Control+d

veremos que volvemos a la shell (terminal) inicial, y que nos muestra un mensaje diciendo: [detached]

Ahora abriremos otro terminal virtual nuevo y ejecutaremos por ejemplo top:

screen
(pulsamos enter en la pantalla de licencia)
top

Volvemos a presionar Control+a y seguidamente Control+d

Nos encontramos por segunda vez al terminal inicial.


En este momento tenemos a nano y top ejecutándose en segundo plano, para retomar cualquiera de los dos terminales podemos ejecutar:


screen -ls

Nos devolverá una lista de los terminales disponibles ejecutándose, por ejemplo:


There are screens on:
    14008.pts-0   (Detached)
    14002.pts-0   (Detached)

Para retomar la primera ejecutaremos:

screen -x 14008

Si queremos la segunda:

screen -x 14002


Si solo tenemos una screen ejecutándose:

screen -R -D

Para cerrar una screen bastará ejecutar en ella:

exit


 Más comandos cuando estamos dentro de screen, parámetros y información adicional ejecutar:

man screen

o visitar el man en línea aquí.


Saludos

jueves, 5 de noviembre de 2009

Compilar Debian / Ubuntu al estilo Gentoo sin apt-build


Para usuarios de Debian / Ubuntu que quieran tener sus programas compilados para la arquitectura concreta de su procesador, asi ganando optimización, al estilo Gentoo.

Gentoonizar Debian | Optimizar programas Debian | Compilación Debian

Prescindiremos del apt-build y haremos la misma tarea manualmente.

Para más información sobre el proceso con apt-build. ¡Ojo! Destacar que el proceso es diferente y/o el número de bugs és mas alto con apt-build; de la misma manera que hacer un world con apt-build conlleva sus riesgos.

Procederemos,

El primer paso es saber si tenemos los repositorios del codigo fuente en el sources.list:

cat /etc/apt/sources.list

Nos mostrará una salida similar a:

deb http://ftp2.de.debian.org/debian/ lenny main contrib non-free
deb-src http://ftp2.de.debian.org/debian/ lenny main

deb http://security.debian.org/ lenny/updates main contrib non-free
deb-src http://security.debian.org/ lenny/updates main 
.
.
.

Que nos indicará que los tenemos activados (deb-src), de lo contrario nos mostrará una salida parecida a:

deb http://ftp2.de.debian.org/debian/ lenny main contrib non-free
#deb-src http://ftp2.de.debian.org/debian/ lenny main

deb http://security.debian.org/ lenny/updates main contrib non-free
#deb-src http://security.debian.org/ lenny/updates main 
.
.

Nos indica que no los tenemos activados, ya que se trata de una línea comentada (almohadilla delante #), para activarlos deberemos eliminar el comentario (#) de nuestro fichero sources.list; para ello ejecutaremos como root:

# nano /etc/apt/sources.list


Y eliminaremos el par de almohadillas (#) del principio de las líneas, guardaremos el fichero y saldremos; ejecutaremos:

# aptitude update

Bien, llegados aquí, eligiremos el programa que queramos compilar, por ejemplo, probaremos de compilar el aMSN.

Descargaremos las fuentes:

apt-get source amsn

Ahora instalaremos las dependencias de compilación, las necesitaremos para poder compilar nuestro paquete sin tener ningún problema:

# apt-get  build-dep amsn

Ingresaremos en el directorio que se ha creado cuando descargamos las fuentes:

cd amsn-versión

Donde sustituiremos versión por la versión que se haya descargado del apt-get source.

Ahora miraremos que procesador tenemos:

cat /proc/cpuinfo | grep model\ name

En mi caso, mi procesador és un Intel Core 2 Duo, la salida del comando anterior me devuelve:

model name    : Intel(R) Core(TM)2 Duo CPU     T7250  @ 2.00GHz

Ahora nos dirigimos aquí y selecionamos la família de nuestro procesador, en mi caso (para que sirva de ejemplo) Intel.

Nos llevará a una página con los modelos de Intel, escojeremos el nuestro...

Tengo el Core 2 Duo y con el sistema operativo x64 (64 bits), por lo tanto, según la página me corresponde:

CHOST="x86_64-pc-linux-gnu"
CFLAGS="-march=nocona -O2 -pipe"
CXXFLAGS="${CFLAGS}"

Aunque en mi caso y para aquellos que tengamos un Core 2 Duo, existe el flag core2 en vez de el nocona. Por lo tanto, en mi compilación utilizaré el -march=core2 con nivel -O2 de compilación; és el recomendado de los 3 existentes (O1, O2, O3), a más nivel mayor compilación, pero no significa mayor rendimiendo, se desaconseja el nivel 3 (O3) ya que produce muchos errores y peor rendimiento.

Resumiendo, mis flags quedarían:


CHOST="x86_64-pc-linux-gnu"
CFLAGS="-march=core2 -O2 -pipe"
CXXFLAGS="${CFLAGS}"

Incluimos los flags a nuestro sistema (seguire con los del ejemplo, usad los de vuestro caso concreto):

export CHOST="x86_64-pc-linux-gnu" && export CFLAGS="-march=core2 -O2 -pipe" && export CXXFLAGS="${CFLAGS}"

Comprobamos que se han incluido correctamente:

echo $CHOST && echo $CFLAGS && echo $CXXFLAGS

Nos devolverá:

x86_64-pc-linux-gnu
-march=core2 -O2 -pipe
-march=core2 -O2 -pipe

Bien, ahora ya podemos proceder a la compilación, para poder compilar sin ser usuario root necesitaremos fakeroot, será de nuestra elección utilizarlo o no. Para saber si tenemos instalado fakeroot:

aptitude show fakeroot

Si nos responde que no está instalado lo podremos instalar con:

# aptitude install fakeroot


¡Vamos a compilar!

dpkg-buildpackage -us -uc

Esperamos a que nos compile el paquete...

Instalaremos el paquete compilado:

cd ..
# dpkg -i amsn_version.deb

Donde version és la versión de nuestro paquete.

Ahora ya tendremos instalado nuestro paquete compilado y optimizado para nuestro procesador; faltará retener el paquete, ya que si hacemos un upgrade nos lo reinstalará, quedará a nuestro criterio revisar los repositorios y recompilar/reinstalar en posteriores versiones.

Para retener el paquete:

# aptitude hold paquete  && (echo "paquete hold" | dpkg --set-selections)

Sustituiremos paquete por el nombre del paquete que queramos retener, siguiendo el ejemplo: amsn.

Si en alguna ocasión queremos restaurar:

# aptitude unhold paquete  && (echo "paquete install" | dpkg --set-selections)

Saludos.

Instalar Wine en linux (Debian)

Atención: método obsoleto a día de hoy. Leer comentarios a final del post.


Para instalar la última versión de wine en nuestro Debian

Ejecutaremos como root en el terminal, para añadir los repositorios:

# (echo && echo \#wine && echo deb http://www.lamaresh.net/apt lenny main) >> /etc/apt/sources.list

Nota: la almohadilla # indica que se tiene que ejecutar como root, no forma parte de la instrucción; se puede sustituir el nombre lenny de la instrucción por el nombre clave de la versión que utilizeis, a dia de hoy : (lenny , squeeze , sid).

Ahora añadiremos la clave del repositorio:


# wget -q http://www.lamaresh.net/apt/key.gpg -O- | apt-key add -

Ahora:

# aptitude update && aptitude install wine -y

Ya tendremos instalada la última versión de wine, si queremos podemos descargarnos winetricks.

Winetricks es un script para añadir diversas librerias a nuestro wine.

Para descargarlo:

wget http://www.kegel.com/wine/winetricks


Para ejecutarlo en modo gráfico:

sh winetricks

En modo texto:

sh winetricks -t

Instalar un paquete en modo texto:

sh winetricks -v paquete


Saludos.

lunes, 2 de noviembre de 2009

Ver y borrar el historial de comandos bash

Ver y borrar el historial de comandos bash linux ubuntu / debian.

Cada vez que ejecutamos comandos en el terminal, estos comandos se guardan en un fichero en la ruta home del usuario que los ejecuta; este fichero es un fichero oculto llamado .bash_history (los ficheros y/o carpetas ocultos empiezan por un punto).

Podemos vernuestro historial ejecutando:

history


Se nos mostrará por pantalla todo el historial de comandos que hayamos ejecutado anteriormente predecido por un número, por ejemplo:

5  ls
6  ls -a

Si queremos ejecutar un comando de la lista, por ejemplo, el número 6, haremos:

!6

Por último, para eliminar el historial:

history -c


Saludos.