Instalar impresora en GNU/Linux

El procedimiento descrito a continuación ha sido probado en un Servidor CentOS 5.7 con una impresora HP LasertJet 1320 y en una estación de trabajo Debian 6.0.3 (squeze), pero puede funcionar para otras distribuciones GNU/Linux.

Servidor

Nota: Para algunos modelos los drivers no funcionan si su impresora está conectada por el puerto paralelo, para más información vea: la tabla All Printers

Paso 1: Instalar CUPS y drivers HP

# yum -i install cups foomatic hpijs gimp-print-cups

Paso 2: Modificar fichero de configuración (cupsd.conf)

# vim /etc/cups/cupsd.conf

Buscar las siguientes secciones:

Location /, Location /admin, Location /admin/conf

y agregar

Allow IP

donde IP: es la IP desde donde se accederá al servidor de impresión a través de un navegador web, esta IP debe ser la del administrador del servidor de impresión

Paso 3: Agregar al samba

Es probable que esta configuración exista en la configuración del Samba, si es asi compruebe que cada directiva tiene el valor correspondiente

--------------------------- Printing Options -----------------------------

        load printers = yes
        printing = cups
        printcap name = cups

 [printers]
        comment = All Printers
        path = /var/spool/samba
        browseable = yes
        guest ok = yes
        public = yes
        writable = no
        printable = yes

Paso 4: Iniciar samba y cups

# service smb start; service cups start

Paso 5: Poner en el navegador de la estación de trabajo Debian (Administrador del servidor de impresión)

http://IP-Servidor-CentOS:631
pagina de inicio servidor de impresión

Paso 6: Agregar impresora: debe salir lo que muesta la siguiente image

La imagen anterior significa que para agregar una impresora se necesita una conexión segura con el servidor, se recomienda leer:
Configurar SSL en Apache HTTPD (CentOS / Fedora / RHEL)

Luego de establecer una conexión segura con el servidor, debe llegar al siguiente paso

Paso 7: Autenticarse con el usuario root

Agregar impresora: autenticarse

Agregar impresora: autenticarse

Paso 8: Seleccionar controlador

Instalar impresora: seleccionar controlador

Instalar impresora: seleccionar controlador

Paso 9: Configurar opciones de impresora

Instalar impresora: Establecer opciones

Instalar impresora: Establecer opciones

Estación de trabajo: Debian

Paso 1: Instalar CUPS y drivers HP

# apt-get install cups hpijs

Paso 2: Instalar cups

/etc/init.d/cups start

Paso 3: Poner en el navegador

http://localhost:631

Paso 4: Agregar impresora

Agregar impresora estación de trabajo (Debian)

Agregar impresora estación de trabajo (Debian)

Paso 5: Especificar el protocolo que usaremos para conectarnos a la impresora

Agregar impresora: Especificar protocolo

Agregar impresora: Especificar protocolo

Nótese que printer el el nombre que le dimos a la impresora cuando la configuramos en el servidor CentOS

Agregar impresora: Especificar protocolo

Agregar impresora: Especificar protocolo


Agregar impresora: Especificar parámetros

Agregar impresora: Especificar parámetros

Paso 6: Seleccionar controlador

Agregar Impresora: Selccionar controladores

Agregar Impresora: Selccionar controladores

Paso 7: Especificar opciones de impresora

Agregar impresora: Especificar opciones

Agregar impresora: Especificar opciones

Lecturas recomendadas

- man cupsd.conf
- HP Linux Imaging and Printing
- Central Unit Processing System

Módulo Apache mod_rewrite: Directiva RewriteCond

La directiva RewriteCond define una o más condiciones bajo las cuales va a ejecutarse una reescritura de url (RewriteRule), una o más directivas RewriteCond pueden preceder a RewriteRule, la reescritura de la url se llevará a cabo si se cumplen las condiciones especificadas en ambas directivas, esta directiva tiene el siguiente contexto: configuracion general (server config), directorios (Directory), hosts virtuales (VirtualHost) y .htacces.

Sintaxis

RewriteCond Cadena-a-comparar Patron-comparativo

Donde:

Truco del día: Descargar sitio web para ver offline

Para descargar un sitio web y verlo en tu computadora de forma local, puedes usar wget: excelente utilidad para descargar fichero de la web, aqui dejo un ejemplo

$ wget -X dbal,about,blog,jira,contribute,community,wiki,uploads,sf,downloads \
-c -r -k -Pdoctrine-doc \

http://www.doctrine-project.org/projects/orm/1.2/docs/manual/en

El comando anterior me descarga la documentacion del Proyecto Doctrine, para leer offline, las opciones se detallan a continuación:

-X: Listado de DIR a excluir
-c: Util si detenemos la descarga y deseamos continuarla en otro pues continua desde donde se quedó
-r: Descarga recursiva
-k: Convierte todos lo links a referencias locales para que pueda navegar sin necesidad de estar conectado a internet
-P: Especifica el DIR donde deseo almacenar los ficheros descargados

Lecturas recomendadas

- info wget

Comprobar la autencidad de los CDs de CentOS

Si te has descargado los 8 CDs de CentOS 5.7 y quieres comprobar que son autenticos, bastaría con ir al directorio donde pusiste los .iso y ejecutar

$ wget url-de-donde-descargaste-los-iso/sha256sum.txt
luego ejecutar:

for FILE in $(ls *.iso); do echo Comprobando: $FILE; grep --color $(sha256sum $FILE) sha256sum.txt; done

La siguiente imagen muestra los .iso autenticos, si alguno no aparece entonces puede ser que el mismo este corrupto o procede de una fuente no confiable

Comprobando autenticidad de CentOS

Inspeccionar conjunto de carácteres (character set) disponibles en MySQL

Este post forma parte de la serie: Administrar MySQL desde la línea de comandos

MySQL ofrece varios tipos de conjunto de carácteres (CHARACTER_SET), satisfaciendo así los mas variados proyectos.

Ver conjunto de carácteres soportados por el servidor MySQL
> SHOW CHARACTER SET;
+----------+-----------------------------+---------------------
| Charset  | Description                 | Default collation
+----------+-----------------------------+--------------------
| big5     | Big5 Traditional Chinese    | big5_chinese_ci
| dec8     | DEC West European           | dec8_swedish_ci
| cp850    | DOS West European           | cp850_general_ci
| hp8      | HP West European            | hp8_english_ci
| koi8r    | KOI8-R Relcom Russian       | koi8r_general_ci
| latin1   | cp1252 West European        | latin1_swedish_ci
| latin2   | ISO 8859-2 Central European | latin2_general_ci
| swe7     | 7bit Swedish                | swe7_swedish_ci
| ascii    | US ASCII                    | ascii_general_ci
....
Ver COLLATION disponible para un CHARACTER SET
> SELECT COLLATION_NAME FROM INFORMATION_SCHEMA.COLLATIONS \
WHERE CHARACTER_SET_NAME = 'utf8';
+--------------------+
| COLLATION_NAME     |
+--------------------+
| utf8_general_ci    |
| utf8_bin           |
| utf8_unicode_ci    |
| utf8_icelandic_ci  |
| utf8_latvian_ci    |
| utf8_romanian_ci   |
| utf8_slovenian_ci  |
...
Ver COLLATION, CHARACTER_SET para las columnas de una tabla determinada

Aqui tomamos como ejemplo la BD : Sakila

> SELECT COLUMN_NAME,COLLATION_NAME, CHARACTER_SET_NAME FROM \
INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = 'actor' AND \
TABLE_SCHEMA = 'sakila';
+-------------+-----------------+--------------------+
| COLUMN_NAME | COLLATION_NAME  | CHARACTER_SET_NAME |
+-------------+-----------------+--------------------+
| actor_id    | NULL            | NULL               |
| first_name  | utf8_general_ci | utf8               |
| last_name   | utf8_general_ci | utf8               |
| last_update | NULL            | NULL               |
+-------------+-----------------+--------------------+

Lecturas recomendadas

- F. van der lan, Rick. SQL for MySQL Developers, Part III, Chapter 22.

Usar proxy en el navegador Chromium

Chromium es la version libre del Navegador Google Chrome y agrega mejoras respecto a la privacidad de los usuarios. Debian 6.0.3 (squeeze) incluye en sus repositorios oficiales la version 6.0, en esta version no existe un asistente gráfico para configurar un proxy por tanto debe especificarse a través de las variable de entorno HTTP_PROXY (permanente) o a través de la línea de comando (temporal).

Configurar proxy permanente

Añadimos nuestro .bashrc

HTTP_PROXY=http://[usr:pwd]@servidor-proxy:puerto
export HTTP_PROXY

Luego

source .bashrc

Si esta ejecutandose cerramos el navegador y tecleamos desde la misma terminal que hicimos source .bashrc

chromium-browser &

Una vez que reiniciemos el SO no es necesario ejecutar el comando anterior, puede iniciarse a través del menú de inicio

Configurar proxy temporal
chromium-browser --proxy-server="servidor-proxy:puerto" url

El comando anterior no funcionará si chromium ya estaba ejecutándose, para que tenga efecto debe cerrar el navegador o ejecutarlo con un perfil temporal

chromium-browser --temp-profile --proxy-server="servidor-proxy:puerto"
url

Lecturas recomendadas

- chromium-browser –help

Montar disco duro externo con contexto samba_share_t (SELinux)

P. He compartido mi disco duro externo usando Samba y a pesar de que la configuración del Samba es correcta, no se puede acceder al mismo. ¿Qué puede estar occurriendo?

R. En distribuciones como CentOS / Fedora / RHEL el SELinux viene activado por defecto y es muy probable que este denegando el acceso a tu disco duro externo, para comprabarlo teecle

# egrep 'avc:\s*denied' /var/log/messages
>
avc:  denied  { read } for  pid=23104 comm="smbd" name="/"
dev=sdc1 ino=5 scontext=user_u:system_r:smbd_t:s0
tcontext=system_u:object_r:fusefs_t:s0 tclass=dir

si el comando anterior produce un resultado similar al anterior entonces el SELinux está denegando el acceso debido a que el contexto no es el adecuado, para solucionarlo teclee:

 # mount -t ntfs -o rw,context=system_u:object_r:samba_share_t:s0,\
defaults /dev/sdc1 /media/ext-hd

El comando anterior supone que el sistema de ficheros es ntfs, que su disco duro es /dev/sdc1 y que que desea montarlo en /media/ext-hd

Lecturas recomendadas

- Compartiendo recursos (Directorios / carpetas) en BSD y GNU/Linux con Samba
- Mapear una unidad de red windows en GNU/Linux

Denegar acceso a directorio que se encuentra debajo de un recurso compartido

En algunas ocaciones es necesario denegar el acceso a un directorio que se encuentra debajo de un recurso compartido, partamos de que tenemos el siguiente esquema de recurso compartido

— php (Este es un dir que almacena todos los proyectos PHP)
|— php-4.x (Proyectos realizados en PHP-4.x)
|— php-5.1.x
|— php-5.2.x
|— php-5.3.x
y queremos que el directorio php-4.x ya no esta accesible desde el samba ya que estos proyectos están obsoletos, para logralo debemos buscar en el smb.conf la seccion referente al recurso php y

agregar la directiva veto file
[php]
...
veto files = /php-4.x/
Reiniciar el samba
# service smb restart

Lecturas recomendadas

- man smb.conf
- Compartiendo recursos (Directorios / carpetas) en BSD y GNU/Linux con Samba

Eliminar metadatos de las imagenes

ExifTool es una excelente librería y aplicación de línea de comando, desarrollada en Perl por Phil Harvey, que permite permite leer y editar metadatos de imagenes, audio y video. Soporta un gran número de formatos y diferentes tipos de metadatos: EXIF, GPS, IPTC, XMP, JFIF, GeoTIFF, ICC Profile, Photoshop IRB, FlashPix, AFCP, ID3.

Descargar ExifTool
$ wget http://www.sno.phy.queensu.ca/~phil/exiftool
/Image-ExifTool-8.72.tar.gz
Descompatar e ir al directorio base
$ tar xzvf Image-ExifTool-8.72.tar.gz && cd Image-ExifTool-8.71
Instalar
$ perl Makefile.PL && make && make test && sudo make install
Ver metadatos
$ exiftool nom-fich
Borrar metadatos
$ exiftool -all= *.jpg

El comando anterior elimina todos los metadatos de todos los jpg que se encuentra en el directorio actual. Exiftool crea una copia original añadiéndole el sufijo _original

Lecturas recomendadas

- Proyecto oficial
- perldoc exiftool
- perldoc Image::ExifTool
- perldoc Image::ExifTool::TagNames
- man exiftool
- man Image::ExifTool
- man Image::ExifTool::TagNames

Actualizar Debian en conexiones lentas

Debian es una distribución altamente recomendada para entornos con conexión lenta a Internet pues su filosofía de liberación de versiones, liberada cuando este lista, te permite usar esta distribución prácticamente sin actualizarla. Por otro lado el número de actualizaciones, a diferencia de Ubuntu, de sus paquetes es relativamente bajo todo esto contribuye a que Debian sea una de las distribuciones más robustas y estables. No obstante es buena práctica manternos actualizado con los repositorios oficiales y los desarrolladores Debian ofrecen una herramienta que te permite ahorrar tiempo y ancho de banda, esta herramienta es debdelta-upgrade, que forma parte de la suite debdelta. debdelta-upgrade descargas las diferencias entre paquetes y las usa para crear los paquetes necesarios para un apt-get upgrade.

Instalando debdelta
$ sudo apt-get install debdelta
Actualizar usando debdeltra-upgrade
$ sudo bash -c "apt-get update && debdelta-upgrade && apt-get upgrade"'
Usar un solo comando para actualizar Debian

Definimos en ~/.bash_aliases

alias upgrade='sudo bash -c "apt-get update && debdelta-upgrade && \
apt-get -y upgrade"'

Luego ejecutamos:

$ source .bash_aliases && upgrade

Lecturas recomendadas

- man debdelta-upgrade
- man debdelta
- man apt-get