sábado, 6 de octubre de 2012

LMDE: Tema de lujo para MDM


MDM es el gestor de entrada (ventana que aparece al inicio, para posibilitar la selección de los diferentes usuarios) en LMDE.
MDM es el equivalente (idéntico) a GDM que fue portado (rescatado) para LMDE. En distribuciones cómo Ubuntu, GDM fue remplazado por LightDM a priori bastante más ligero pero también bastante menos intuitivo, configurable y adaptable. En cualquier caso, yo prefiero sin lugar a dudas GDM (MDM en LMDE).

El otro día el usuario Víctor Francisco me enviaba un mensaje privado avisándome de la existencia de este bonito tema para GDM que yo desconocía. Cosa que le agradezco enormemente por que resulta que me encanta. Tanto que ya le he dado el cambiazo al tema que venía utilizando.

El tema  en cuestión del que estamos hablando es  Arc-Colors GDM-Walls el cual consta de 6 diferentes modalidades:
Brave-Blue, Human-Orange, Wine-Red, Noble-Purple, Wise-Green, Dust-Chocolate
Los temas tiene una resolución máxima de 2140x1200 y soporte para las siguientes proporciones de pantalla: 16:9, 16:10, 5:04, 4:03.
También incluyen fuentes para una versión de doble pantalla de 3840x1200.

Podéis bajaros la fuente original en el enlace anterior, pero no funcionará en LMDE.
En realidad este Theme (cómo podrás adivinar) ha sido creado para GDM, pero con las debida modificaciones podemos adaptarlo de tal modo que su instalación en LMDE y por lo tanto para MDM sea totalmente funcional.
Yo lo que he hecho ha sido precisamente esto. Modificar el paquete fuente para adaptarlo a MDM en el cual se instalará exactamente igual que lo hace el original para los equipos que usen GDM pero ahora para MDM, haciendo de este modo que MDM lo reconozca perfectamente.
Lo podéis descarar aquí:
 ↓↓↓↓↓↓↓↓↓↓↓↓

Para ello tan solo debemos desempaquetar el archivo que os suministro (modificado), el cual al desempaquetarlo os dejará la carpeta llamada arc-colors-2.7.
Entramos dentro de esta carpeta y abrimos un terminal  ubicado en ella.
Es decir, clicamos en una zona vacía del la ventana abierta y seleccionamos Abrir en un terminal:


Luego en el terminal abierto escribimos el siguiente comando:
  • sudo make install
Con esto el tema será instalado de forma correcta para nuestro gestor MDM.

Una vez instalados (para el que no lo sepa) podemos seleccionar el tema que queremos que se muestre en nuestra sesión de longin desde la herramienta llamada mdmsetup que podremos encontrar en Sistema/Administración/Ventana de entrada.

O sí lo prefieres puedes ejecutarla desde un terminal así:
  • sudo mdmsetup

Si utilizas este tema con visor de rostros, ten en cuenta haber seleccionado en Estilo:
Con temas y visor de rostros
Puede ser también que aún no sepas como hacer que se muestre una imagen (la que tu quieras) para la selección cada usuario en particular en la pantalla de login.
Conseguir esto es realmente fácil. Tan solo tienes que preparar la imagen que quieras (aconsejo un tamaño máximo de 64x64) introducirla en tu carpeta de usuario y una vez allí cambiar su nombre por completo a .face
Ejemplo:
image.png lo cambiamos por .face
A partir de entonces tu usuario tendrá una imagen asignada.

Montando nuestro propio servidor (V)


De como montar un gateway y otras cosillas.....

Buenas a todos. Volví de la playa con las pilas cargadas, preparado para finalizar nuestro servidor en un par de sudo aptitude install, pero me esperaba unos meses de Agosto y Septiembre que no se lo deseo ni siquiera a Bill Gates. Debe haber una conjunción de planetas dedicada en exclusiva a complicarme la vida, rompiéndose todo a horas intempestivas, cualquier día de la semana, pero preferentemente de noche, y en fin de semana. Ya sé que con lo que tenemos en este país puedo considerarme un privilegiado, pero como quejarse es gratis (y lo seguirá siendo, a pesar del IVA) pues lo hago, que todavía no me han quitado ese derecho....

Este va a ser uno de los post más largos, con diferencia, de la serie. Tenemos que conseguir, al final del post, que todos tengamos nuestro server corriendo como el gateway de nuestra red local con IPTABLES. Como recordaréis de post anteriores, mi hijo me quitó el monitor. Bueno, es cierto que era suyo y yo se lo había quitado antes, pero.... ¿donde quedó la autoridad paterna? Aquello de... “¿Cómo que democracia?... Esta es mi casa, y se hace democráticamente lo que yo diga....” que decía mi padre.... Paissssss...... Bueno, pues el resultado es que hay que hacerlo todo desde consola remota, aunque si tenéis monitor a mano..... pues eso, que es más fácil (Para aquellos que no sepan leer entre líneas, esto quiere decir que yo he tenido que recurrir a quitarle de nuevo el monitor a mi hijo, porque me quedé sin conexión al servidor. Ahora, tal y como explicaré en el post, ya no será necesario).

Para empezar, eso de Gateway, ¿sabemos lo que es?. ¿O sólo lo creemos? Vamos a verlo. En telecomunicaciones, el término gateway puede significar:
  • Un nodo de una red de comunicaciones, preparado para la interconexión con otra red que puede utilizar distintos protocolos. Dicho nodo puede estar dotado de dispositivos físico/lógicos como traductores de protocolo, traductores de señal, aisladores de fallos, dispositivos de compatibilidad e impedancia, etc... Vamos, cualquier nodo de cualquier ISP de Internet.
  • Un ordenador o programa, que funciona como puerta de enlace, o encaminador, desde una red a otra, pudiendo ser éstas internas o externas. Esto es lo que buscamos nosotros para nuestro server.

Vale, chachi, pero.... ¿para qué nos sirve? Aparte de para darnos trabajo, claro.... Bueno, si recordáis mi primer post de la serie, os indicaba que estaba montando un aula de informática en una asociación a la que pertenezco. Estos ordenadores van a ser usados tanto por adultos como por niños. Si obligamos a que todos los pc “pasen” por nuestro server antes de salir a Internet, podemos establecer una serie de filtros en él para evitar accesos a páginas no “recomendables”, por poner un ejemplo. Claro, estoy hablando de una red que está formada por 20 pc's más el server; en una red doméstica...... pues a lo mejor no es necesario.... o sí..... Yo tengo dos niños, así que me va a venir de perlas....
¿Y cuánto hardware necesito para montarlo? Pues tanto como podáis, que no está la economía para derroches.... Yo lo voy a montar de la siguiente manera:

Internet → Router → 1ª NIC → 2ª NIC  → Wireless Access Point ó Switch → PC's

¿Es necesaria la segunda tarjeta de red? SI. Podríamos intentar hacerlo con una sola NIC, asignando 2 IP's distintas a la misma tarjeta, pero sería un problema a la hora de configurar servicios. Va a ser mejor que sí, que la montemos.
¿Y el switch o Access Point? Hombre, si váis a tener más de un PC en la red, si. Si sólo hay un PC, con un cable cruzado (Crossover) basta para unir el server con dicho PC. En mi caso, como no voy a cablear ni el aula ni mi casa, pues si, voy a montar un Wireless AP.

Vamos allá con la configuración de las NIC. Ante alguna duda suscitada con mi dirección IP privada, comentaros que cuando se crearon las reglas de direcciones IP para internet, se dejaron cuatro redes sin incluir en la web, para poder crear redes privadas. Estas son las siguientes:

10.0.0.0 a 10.255.255.255
172.16.0.0 a 172.31.255.255
192.168.0.0 a 192.168.255.255
169.254.0.0 a 169.254.255.255

Cada una de ellas tiene un numero de direcciones IP limitadas, desde las más de 16 millones de la primera, a las más de 65.000 de las dos últimas. Yo utilizo la primera por deformación profesional, no porque tenga esa cantidad de ordenadores en casa.
En nuestra nueva aventura (y espero que definitiva), voy a utilizar el siguiente escenario:

La IP privada del router es la 10.14.100.1
La IP de la primera NIC (eth0) va a ser 10.14.100.10
Voy a utilizar el rango 172.16.0.x para la red local. Así, la segunda NIC (eth1) tendrá la IP 172.16.0.1

Lógicamente, esto nos va a obligar a recomponer todo lo que habíamos hecho anteriormente. Habrá que reconfigurar/comprobar el archivo /etc/network/interfacespara establecer las IP's, el archivo etc/ssh/sshd_config para seguir teniendo acceso por SSH, el DDCLIENTpara seguir teniendo acceso desde el exterior, el DHCP para servir las nuevas direcciones IP, el archivo /etc/proftpd/proftpd.confpara nuestro FTP y el archivo /etc/samba/smb.confpara nuestro servidor de archivos. Aunque parezca un trabajo de chinos, no es para tanto. Voy a tardar más en describirlo que en cambiarlo. En fin, esto es lo que pasa por no preparar una guía inicial e ir añadiendo cosas sobre la marcha....

Instalamos la segunda nic en nuestro server. 4 reglas importantes: Alimentación eléctrica desconectada, nos descargamos de la posible estática (vamos, con que toquemos el suelo con la mano, vale), insertar correctamente la nic en su bus, y cuidado con las gotas de sudor, tienen la mala costumbre de realizar cortos en las motherboard. Arrancamos y tecleando que es gerundio:

Verificamos que la segunda NIC está correctamente instalada. Probablemente la haya reconocido sin problemas, lspcipara verlo:





Ahí está la condenada..... esperando una IP como agua de mayo.... No la vamos a defraudar, ¿no? Pobrecilla, sú único fin en la vida es tener su propia IP y enviar y recibir paquetes......

nano /etc/network/interfaces

# Interface INTERNET, conectada directamente al router
auto eth0
iface eth0 inet static
address 10.14.100.10
netmask 255.255.255.0
network 14.14.100.0
broadcast 14.14.100.255
gateway 10.14.100.1

#Interface RED LOCAL, conectada al Access Point
auto eth1
iface eth1 inet static
address 172.16.0.1
netmask 255.255.255.0
network 172.16.0.0
broadcast 172.16.0.255



y reiniciamos las interfaces:

ifdown eth0 && ifdown eth1 && ifup eth0 && ifup eth1

Lógicamente, perderemos la conexión con el server en cuanto cambiemos la dirección IP, por eso reiniciamos las dos NIC en la misma línea. Configuramos nuestro PC para que tenga una IP estática dentro del rango del nuevo server, por ejemplo: 172.16.0.100. Hasta que no terminemos con el server, tener en cuenta que tampoco tendremos salida a internet.

Nos conectamos de nuevo al server, y verificamos que funcionen las dos interfaces: ifconfig



Ea, pues lo creáis o no, ya está montado el Gateway. Pero, ¿funciona?. Por supuesto que.... NO. Todavía falta un buen cacho..... Antes de seguir configurando, vamos a ver si nuestro kernel tiene implementada la función IP Forwarding.

[Frannoe dixit]: ¿Y eso que es?
[Jose respondere]: ¿Ya empezamos con las preguntitas, Frannoe?

IP Forwarding es parte del Kernel de Linux, en concreto, es parte de IPTABLES, que a su vez es parte del framework NETFILTER del Kernel...... Osea, que no hay que instalar nada. Que ya viene todo empaquetadito en nuestro Kernel. Y lo que hace es, como su propio nombre indica, reenviar los paquetes IP de una NIC a otra. Es decir, el funcionamiento de nuestro server va a ser de la siguiente manera:

Mi portátil con IP 172.16.0.x se conecta por la red local al servidor en la segunda NIC con IP 172.16.0.1. El kernel del server analizará la petición de mi portátil para ver qué es lo queremos (FTP, SSH, HTTP, etc). En función a lo que deseemos, y aplicando las reglas de IPTABLES que definiremos, realizará un reenvío de dichos paquetes (IP Forwarding) a la primera NIC del servidor (IP 10.14.100.2) y de ésta al router (IP 10.14.100.1). De ahí a Internet, se encarga el router. Pero para que haga todo esto, hay que averiguar si está activado o no el IP Forwarding. Para ello, tecleamos 
 

cat /proc/sys/net/ipv4/ip_forward.

Si nos devuelve 1, está activado. Si nos devuelve 0, haremos lo siguiente: tecleamos

echo 1 > /proc/sys/net/ipv4/ip_forward,

y a continuación volvemos a teclear

cat /proc/sys/net/ipv4/ip_forward.

Es decir, marcamos el valor de ip_forward a 1, y volvemos a verificar si acepta dicha asignación. Si alguno de vosotros sigue obteniendo de respuesta 0, querido sufridor linuxero, es el momento perfecto de aprender a compilar el kernel, activando el IP Forwarding. No creo que tengáis ese problema, hemos montado todos la misma imagen, pero no obstante, si alguien tiene ese problema, hay manuales en Google de cómo recompilar el kernel.


 

Vale, como no tenemos que recompilar el kernel (¡Thanks, My God!) seguimos recomponiendo/verificando todo lo que habíamos hecho con nuestro server. Vamos por partes.

SSH

Bueno, no necesitamos tocar nada en el archivo de configuración. Si editamos el archivo /etc/ssh/sshd_config , vemos que escucha en cualquier interface y a cualquier IP (la verdad es que ya lo sabía, si no es así, al cambiar la IP, no podríamos volver a conectarnos).


DDCLIENT

Comprobamos el archivo /etc/ddclient.conf. Vemos que lo dejamos configurado para que escuchara directamente a la web, con lo que no tenemos que cambiar nada.



DHCP

Cuando un equipo configurado con IP dinámica arranca, solicita una dirección IP a un servidor DHCP. Esto se hace mediante una emisión de un paquete estandarizado de solicitud DHCP a la dirección 255.255.255.255. Si el servidor DHCP tiene más de una interface, hay que agregar una ruta de esta dirección para que el servidor sepa a qué interface debe enviar la respuesta. Si no lo hacemos, enviaría la respuesta DHCP por defecto a la puerta de enlace predeterminada, con lo que nuestra red se quedaría sin direcciones IP. Es sencillo, una simple línea bastaría: route add -host 255.255.255.255 dev eth1. Pero no vamos a estar tecleando continuament esto, ¿no?. ¿Que tal si hacemos que la ruta se ejecute al iniciar la interface?. Editamos de nuevo /etc/network/interfaces, y dejamos así la interface 1:

#Interface RED LOCAL, conectada al Access Point
auto eth1
iface eth1 inet static
up route add -host 255.255.255.255 dev eth1
address 172.16.0.1
netmask 255.255.255.0
network 172.16.0.0
broadcast 172.16.0.255

Reiniciamos eth1 para aplicar los cambios:

ifdown eth1 && ifup eth1

Bueno, pues ya hemos conseguido que el DHCP server responda por la NIC adecuada. Ahora, además, hay que conseguir que escuche también por la interface correcta. Para eso hay que editar el archivo /etc/default/isc-dhcp-server y establecemos ETH1.


-->
Ahora editamos el archivo /etc/dhcp/dhcpd.conf para modificar el pool de direcciones:

nano /etc/dhcp/dhcpd.conf

#Nota: Yo no necesito más que cinco IP's:
#2 portátiles, 2 dispositivos móviles (tablets) y un PC de sobremesa
#Cada cual, que alargue el rango del pool todo lo que necesite....

subnet 172.16.0.0 netmask 255.255.255.0{
range 172.16.0.10 172.16.0.14;
option domain-name-servers 80.58.61.250, 80.58.61.254;
option domain-name "cosillas.ftp21.net";
option routers 172.16.0.1;
default-lease-time 600;
max-lease-time 7200;
}

host impresora_red{
hardware ethernet 01:02:03:04:05:06;
fixed-address 172.16.0.20;
}

host camara_web{
hardware ethernet 06:05:04:03:02:01;
fixed-address 172.16.0.30;
}

host computer_hijo{
hardware ethernet 00:01:02:02:01:00;
fixed-address 172.16.0.50;
}

host computer_hija{
hardware ethernet 00:01:02:00:01:02;
fixed-address 172.16.0.60;
}

Y con esto ya tendríamos listo nuestro DHCP para la nueva configuración. Por supuesto, siempre que modifiquemos algún servicio, lo reiniciamos: 

 /etc/init.d/isc-dhcp-server restart.

-->
FTP

Por defecto, nuestro FTP escucha en la eth0 (la que está conectada a internet directamente). Así, no tendríamos que tocar nada en nuestro archivo de configuración /etc/proftpd/proftpd.conf., ya que configuramos nuestro FTP para acceder desde el exterior.


SAMBA

En nuestro servidor de archivos sí tenemos que especificar en qué interface escucha dicho servicio. Lógicamente, editaremos nuestro archivo de configuración /etc/samba/smb.conf. Buscaremos en la sección Networking, y dejaremos la linea de la siguiente manera:

interfaces=172.16.0.0/24 eth1
 
Ya que si no lo hicéramos, nuestros recursos de red interna estarían disponibles a cualquier hijo de vecino que accediera a nuestro servidor desde Singapur, por poner un ejemplo....

-->
Y una vez arreglado nuestro desaguisado por no haber sido previsores, pasamos al meollo de la cuestión. Jo, llevo dos horas delante de la pantalla, y ni siquiera tengo acceso a internet.... Paciencia, que ya va la cosa sobre la marcha.....

Venga, vamos a poner en marcha nuestro gateway. Primero de todo, configuramos la NIC de los clientes para que obtengan IP del DHCP del server. Podéis hacerlo vía entorno gráfico o editando el archivo /etc/network/interfaces, eso lo dejo a gusto del lector. Llegados a este punto, es hora de hacer funcionar nuestro server como gateway. Porque si intentamos acceder a la web, nos dará un bonito error indicando que no hay acceso. Vamos a utilizar la lógica. ¿Qué necesitamos para que nuestro server sea la puerta de enlace?

Veamos, estamos conectados a nuestro server por medio de la red local, pero no al router para salir a internet. Tenemos que decirle al server que los paquetes que reciba de nuestro/s equipo/s de sobremesa tiene que enrutarlos hacia la segunda tarjeta de red, y de ahí a internet a través del router. Pero además, tiene que hacer otra cosa: tiene que saber que los paquetes de mi portátil, que llegan al server a través de la IP 172.16.0.2, y salen a internet a través de la IP 14.100.10.2, no son los mismos que los del ordenador de mi mujer, que tiene la IP 172.16.0.3 y salen por la misma IP de la tarjeta eth0 hacia internet. Ese proceso se llama NAT (Network Address Translation, ó Traducción de Dirección de Red). Ese proceso lo hace habitualmente el router, y por eso es la puerta de enlace en una configuración normal. Pero como somos un poco masoquistas, y hemos decidido cambiar la puerta de enlace, ahora es nuestro server el que tiene que servir para dar servicio a varias direcciones privadas (LAN), teniendo solo una dirección pública (IP INTERNET). Y a varios protocolos distintos, para más inri.... Yo puedo estar conectado por Putty al servidor de mi empresa (puerto 22, SSH), mi mujer consultando el extracto bancario (puerto 443, protocolo https) y mi hija descargando música con la mula (puerto 32445, protocolo web). Como véis, todo un trabajito para hacer en tiempo real....

Entonces, conectados de nuevo al server, tenemos que conseguir activar el reenvío de paquetes desde la red interna a la externa, además de las reglas necesarias para que los pueda enrutar. Lo haremos mediante la ejecución de un pequeño script, que se ejecutará en cuanto las interfaces de red del server se levanten, utilizando IPTABLES. Como os comenté antes, IPTABLES es parte del kernel, no es ninguna aplicación en sí, así que lo que hacemos con el script es decirle al kernel cómo actuar. Creamos el directorio Firewall dentro de /etc/network:

-->
mkdir /etc/network/Firewall

Creamos el archivo fwall.sh en este directorio:

nano /etc/network/Firewall/fwall.sh

y tecleamos:


-->
Guardamos y salimos. En definitiva, lo que hemos hecho es crear un script que activa un firewall básico, que acepta lo que le hemos dicho y rechaza todo lo demás. Ahora necesitamos hacer que este script se ejecute al inicio del sistema, antes que las interfaces de red se hayan levantado. Para ello, damos permisos de ejecución:

chmod +x /etc/network/Firewall/fwall.sh

y editamos el archivo /etc/network/interfaces para añadir la siguiente línea:

nano /etc/network/interfaces

# Interface INTERNET, conectada directamente al router
auto eth0
iface eth0 inet static
pre-up /etc/network/Firewall/fwall.sh
address 10.14.100.2
netmask 255.255.255.0
network 14.14.100.0
broadcast 14.14.100.255
gateway 10.14.100.1

Así, ejecutamos el script antes de que se levante la interface de red. Reiniciamos eth0 y..... voilá.... ya tenemos acceso de nuevo a Internet.

¿Cual sería el paso siguiente? Pues ahora deberíamos aplicar los filtros a los que queremos que tengan acceso unas personas si y otras no. La manera más cómoda de hacerlo es implantando un proxy. Yo me voy a decantar por Squid, por su facilidad de uso y versatilidad. Pero eso es otra historia y será contada en el próximo post.

Un saludo a todos.

miércoles, 3 de octubre de 2012

LMDE Xfce: Remplazando Thunar por Caja muy fácilmente


No hace mucho Luciana me consultaba el modo de remplazar el navegador de archivos por defecto de Xfce Thunar por Caja. Dejando a parte los motivos del por qué alguien que utilice Xfce quiera remplazar unos de sus componentes principales de ligereza por otro en teoría más pesado (seguro algunos lo criticaran cómo otras veces a sucedido en tantos otros sitios, yo desde luego no, todo lo contrario) paso a explicar cómo he instalado Caja en Xfce remplazando tanto  a Thunar cómo a Xfdesktop.

Lo primero que hay que hacer es añadir a nuestro archivo  /etc/apt/sources.list  el último de los repositorios de MATE para tener la última versión de Caja:
  • deb http://packages.mate-desktop.org/repo/debian wheezy main
Actualizamos los repositorios:
sudo apt-get update

Abrimos el Synaptic y buscamos los paquetes de caja.
Instalaremos éste paquete que a su vez instalará todos los necesarios
  • caja
  • marco
Estos otros son opcionales pero muy útiles:
  • caja-gksu
  • caja-open-terminal
  • caja-dropbox
  • engrampa

El siguiente paso es añadir Caja a las aplicaciones preferidas.

Para ello nos dirigimos al menú Configuración/aplicaciones Preferidas
Allí en la pestaña Utilidades/Administrador de archivos seleccionaremos caja cómo explorador por defecto.


Si no se encuentra en la lista pulsaremos en Otros... y pondremos lo siguiente:
  • /usr/bin/caja "%s"
Ahora iremos a Configuración/Sesión e Inicio y añadiremos una nueva opción en el arranque de nuestra sesión que más tarde (muy importante) deberá ser eliminada.
En la pestaña Autoarranque de Aplicaciones pulsamos +Añadir
En nombre ponemos por ejemplo
Caja
Y en comando (en minúsculas)
caja


Clica en el panel de Xfce para añadir un applet 


Selecciona para añadir el applet Gráfica de la CPU.


Una vez finalizados estos pasos cerramos sesión y volvemos a entrar.

Cuando se inicie nuevamente la sesión, Caja debería ejecutarse y tomar el entorno, mostrando su clásico escritorio a la vez que una de sus ventanas del explorador también se mostrará abierta.

Hay que prestar atención a los siguientes pasos. No por que conlleven peligro alguno (todo lo contrario) pero puede ser que te líes y lo resultados no sean los esperados.

Lo primero que hay que hacer (muy importante)  es cerrar la ventana de Caja que se encuentra abierta.
Bueno en realidad cierra todos lo programas que tengas abiertos. Aunque cómo acabas de iniciar sesión no creo que tengas más que Caja.
Luego clica en el Grafica de la CPU que añadimos anteriormente al panel:


Esto abrirá  el gestor de procesos de Xfce. Busca el proceso en ejecución llamado caja.
Selecciónalo y mátalo. Tras haberlo matado espera unos 10 segundos sin hacer nada...


Luego cierra la ventana de Grafica de la CPU.
Ahora dirígete nuevamente al menú Configuración/Sesión e Inicio y clica en la pestaña Sesión.
En la lista que se te muestra deberás ver entre otros a Caja, Thunar y xfdesktop selecciona Thunar y luego al botón Cerrar programa realiza exactamente lo mismo con xfdesktop, lo seleccionas y clicas también en Cerrar programa.
Unicamente deberá verse en la lista como gestor de escritorio a Caja.


Por último (muy importante) clica en el botón Guardar Sesión.
Vuelve a la pestaña Autoarranque de Aplicaciones y (muy importante también) elimina la entrada que creamos al principio para Caja.
Cierra la ventana de Sesión e Inicio y sal de la sesión y vuelve a entrar.
Ahora se debería iniciar la sesión con el escritorio de Caja con toda normalidad.

Bueno decir que los resultados han sido muy buenos y todo se comporta como es debido.
La verdad es que Caja funciona realmente bien en Xfce, mejor incluso que en su entorno nativo.

sábado, 29 de septiembre de 2012

LMDE MATE: Aplicaciones Preferidas por defecto


Ampliar y personalizar la lista del Gestor de Aplicaciones Preferidas es relativamente fácil.
El sistema lo hace automáticamente (casi siempre, salvo excepciones de los programas más extendidos y por categorías) cuando la instalación se realiza de la forma habitual.
Pero no siempre utilizamos aplicaciones instalables sino que muchas son portables, ejecutables o de otros tipos que no requieren de instalación. Otras pese haber sido instaladas no aparecen en la lista del Gestor de Aplicaciones Preferidas.
Añadir éstas o cualquier otra en dicha lista (cómo dije anteriormente) es bastante sencillo. Mostraré como hacerlo de forma totalmente gráfica.

Aplicaciones instaladas y que no se encuentra en la lista:
Lo primero es averiguar (en el caso de ser una aplicación previamente instalada) si se encuentra su correspondiente lanzador el la siguiente ruta:
  • /usr/share/aplications/
Podemos mirar tambien en su equibalente, pero a nivel de ususario:
  • /home/TuUsuario/.local/share/applications/
pero cómo podremos ver, en este último caso hay bastantes menos lanzadores.

Hay que tener en consideración que en la ruta /usr/share/applications/ no siempre estos lanzadores muestran el nombre de la aplicación que ejecutan. Muchas de las veces (las más) muestran una descripción en vez del nombre, así que para localizar el que buscamos tendremos que fijarnos más en esa descripción (o en su icono) que en cualquier otra cosa.
Una vez creamos que lo hemos localizado clicaremos en él para asegurarnos y  ver si se ejecuta la aplicación que esperamos.

Todos estos archivos son archivos de escritorio, y cómo tales tienen un nombre único más la extensión (.desktop genérica) que los identifica. Lo que necesitamos es averiguar exactamente ese nombre y para ello (ya que no se muestran) nada más fácil que abrir un archivo cualquiera de texto y arrastra el lanzador a la ventana de éste para que sea editado.
Una vez hecho esto, veremos el nombre exacto del lanzador Desktop en la barra de título.
Este siempre terminar en .desktop:
xxxxxx.desktop

Curiosamente en la ruta de usuario  /home/TuUsuario/.local/share/applications/ sí podemos verlos con su nombre .desktop al completo y no con su descripción.

Bueno veamos como añadir una aplicación en el Gestor de Programas Preferidos. Pongamos como ejemplo la inclusión en la lista del navegadores a Iron, por el cual no hace mucho me consultaban a este respecto.
Buscamos en /usr/share/applications/ el lanzador Iron


Abrimos el editor Pluma, Gedit o cualquier otro editor que queramos y arrastramos y soltamos en él el lanzador de Iron.



El editor de texto mostrará el contenido fuente del lanzador, pero no su nombre interno .desktop. Éste lo podemos ver en la barra de título del editor de texto cómo se muestra en la imagen.


Tomamos buena nota de este nombre.
Para el caso que nos ocupa y cómo se puede ver en la captura es:
  • iron.desktop
Este nombre al completo es el que tendremos que añadir en el archivo que veremos mas adelante.
Ahora nos dirigimos a la siguiente ruta:
  • /home/TuUsuario/.local/share/applications/
y buscamos y editamos el archivo llamado:
  • mimeapps.list


Este archivo consta de dos partes bien diferenciadas
[Default Applications] ---> aquí se colocarán automáticamente los programas por defecto. Cosa que se hace automáticamente al ser seleccionados en el Gestor.
[Added Associations] ---->aplicaciones que queremos que se muestren en el cuadro de selección del Gestor.

La que nos interesa es la segunda sección [Added Associations] 
En ella debemos buscar y o añadir (si no lo está) la siguiente línea.
x-scheme-handler/http=
Que en este caso quedaría así:
x-scheme-handler/http=iron.desktop;

Si esta línea (x-scheme-handler/http=) ya se encontrara en este archivo, veremos algo muy parecido a esto:
x-scheme-handler/http=chromium.desktop;firefox.desktop;
Tan solo deberemos añadir Iron.desktop a la lista de navegadores que ya se encuentren en ella:
 x-scheme-handler/http=chromium.desktop;firefox.desktop;iron.desktop;

Cómo se puede ver la línea x-scheme-handler/http= es la responsable de mostrar la lista de navegadores por defecto. Mostrará tantos cómo se incluyan en la lista.

Para cubrir todo el espectro en el caso de la apertura del navegadores por defecto, seria interesante tener las siguientes líneas:
x-scheme-handler/http=iron.desktop;
x-scheme-handler/https=iron.desktop;
x-scheme-handler/about=iron.desktop;

Otras líneas interesantes son:
- Gestor de Correo por defecto.
 x-scheme-handler/mailto=
Ejemplo:
x-scheme-handler/mailto=thunderbird.desktop;gary.desktop;sylpheed.desktop;
- Explorador de archivos por defecto
inode/directory=
Ejemplo:
inode/directory=nemo.desktop;caja.desktop;nautilus.desktop;thunar.desktop;

Tres puntos muy importantes. Dos cruciales que de no cumplirse no se mostrará la aplicación deseada en la lista del Gestor de Programas Preferidos y otro de posible interes:

1- La aplicaciones añadidas en sus líneas correspondientes deben mantener la estructura que se ve, no pueden haber espacios entre ellas y tienes que estar separados  con un ; . Los nombres de los lanzadores Desktop si pueden contener espacios, mayúsculas u otros caracteres cómo guión y guión bajo, etc:
xxx.desktop;
xxxxx.desktop;
XX xxx.desktop;
xx-xxX_xx.desktop;

2- El nombre de la aplicación añadida a la lista debe tener su lanzador correspondiente en la ruta /usr/share/applications/ o en su defecto en la de usuario /home/TuUsuario/.local/share/applications/ de lo contrario tampoco será mostrado en la lista.

3- No es obligatorio que una aplicación pertenezca a una catregoría especifica para ser añadida.
Es decir, podemos (si se quiere) añadir a SMPlayer en la lista de aplicaciones de Navegadores Web por defecto. Ya sé ya sé, esto no tiene ningún sentido, pero lo expongo para que se vean las posibilidades que esto tiene y que las restricciones son menos de las que a priori se puedan suponer.

Paraconcluir este aprartado, si resulta que no tienes ninguna de estas líneas en tu archivo mimeapps.list, puede ser que te preguntes porqué entonces aparecen algunas opciones en las distintas categorías del Gestor de Aplicaciones Preferidas. La razón no es otra que este mismo archivo mimeapps.list se encuentra en la siguiente ruta:/usr/share/applications/ y también en esta misma ruta se encuentra otro llamado mimeinfo.cache.
Estos dos archivos por lo tanto afectan del mismo modo pero al nivel global que el que hemos tratado anteriormente a nivel usuario. Estos archivos no entran en conflicto unos con otros, sino que se complementan perfectamente entre si.
En las capturas podemos ver el resultado final:

Antes
Después

Aplicaciones No instaladas y que lógicamente no se encuentra en la lista:

Lo único que diferencia esto de lo anterior (ya que lo pasos a seguir son los mismos) es que con toda seguridad no encontraremos un lanzador en la ruta indicada.
Esto no es ningún problema ya que lo podemos crear de forma muy simple.
Voy a mostrarlo de forma lo más llana posible. Y para que se vea lo fácil del proceso añadiré uno de mis Scripts (PubKey) a por ejemplo a la lista de Lectores de Correo.
Nada que ver con el correo tiene lógicamente este Script jeje, pero esta "burrada" servirá para mostrar que podemos poner las aplicaciones que queramos (pertenezca o no a una categoría específica) para que se vean luego en el Gestor de Programas Preferidos y la podamos seleccionar cómo predeterminada.
Clicamos con el botón derecho del ratón en nuestro escritorio y seleccionamos Crear un Lanzador...

Y rellenamos los campos necesarios:


Tipo: Aplicación
Nombre: El que queramos
Comando: Le indicamos la ruta del archivo ejecutable.
Icono: El que queramos

Luego nada más nos queda lógicamente introducir este lanzador en la ruta:/usr/share/applications/ o /home/TuUsuario/.local/share/applications/

Por último nada más nos resta abrir el archivo /home/TuUsuario/.local/share/applications/mimeapps.list y añadir el nombre del PubKey que será PubKey.desktop en la categoría deseada:
  • x-scheme-handler/mailto=PubKey.desktop;

Antes
Después

Para finalizar, otra cosa que se debe tener en cuenta es que algunas aplicaciones no abren por ejemplo con el navegador predeterminado sino que lo hacen con otro que esté instalado. Para ello el sistema utiliza las llamadas aplicaciones alternativas.
Cuando se instala una aplicación esta se le asigna en su categoría una número llamado prioridad.  Si esta prioridad es mayor que las restantes pasa a convertirse en Modo Automático.


Cómo se puede ver en la captura Chrome tiene una prioridad de 200. Al ser la prioridad mayor queda coma automática. Para evitar que quede en modo automático le bajo la prioridad a 40 y firefox pasa entonces a ser automático. Aunque en cualquier caso (cómo también se puede apreciar en la imagen) esté uno u otro como automático el que está seleccionado cómo por defecto es firefox que es donde está situado el asterisco (*) junto al número 1.
Para que se entienda. Si no tenemos bien configurado este punto, aunque se tenga puesto por ejemplo a Firefox cómo navegador por defecto en el Gestor de Aplicaciones Preferidas, ciertas aplicaciones llamarán a Chrome si se encuentra instalado. Para evitar este comportamiento es necesario ver este otro artículo de aquí:
Navegador por defecto
... para configurar las aplicaciones alternativas.

jueves, 27 de septiembre de 2012

SolusOS abandona Debian


Siento mucho no haberme equivocado cuando dije en mi primer articulo sobre SolusOS y su futuro, que éste era algo incierto principalmente por lo reducido del equipo implicado en el proyecto.

Llevar una distribución prácticamente en solitario y en los ratos libres (cómo se indica por su desarrollador) es ciertamente difícil por no decir imposible, pienso yo.
Cómo apunte en el anterior artículo, en estos casos cualquier eventualidad puede hacer tambalear el proyecto. Al parecer la continuidad de éste teniendo como base Debian se le hace tremendamente difícil.  Los  constantes cambios en Debian así cómo en Gnome3 y que por consiguiente su obligo parcheo  en  SolusOS de forma más que reiterada, hace de ello un trabajo arduo y muy difícil de mantener por parte de un equipo de desarrolladores tan pequeño.

Lo que está muy claro (así lo veo yo) es que Ikey Doherty no ha querido tirar la toalla, cree en su proyecto y en sus posibilidades, aunque estén muy limitadas. Tanto es así que se ve obligado a buscar otras líneas de desarrollo que le permita desenvolverse de una forma más o menos cómoda (más pausada, más estable, menos invasivas) con su creación, sin el temor constante de rupturas de paqueterías que desemboquen en una distro cada vez más inestable.

A partir de ahora se utilizara el sistema de de gestión de paquetería PiSi de Pardus. Se utilizara este sistema de paquetería y se aprovechará de Pardus en un principio su instalador, pero poca cosa más ya que SolusOS no pretende basarse en Pardus sino que se montará de cero.
Con este nuevo giro, se posibilitará sacar versiones LTS SolusOS  con los 5 años de soporte de rigor. Las actualizaciones serán considerablemente más livianas ya que se utilizará para ello Delta Paquetes. El desarrollo de SolusOS parece que se acelerará considerablemente por este cambio de sistema.

¿Qué deparará el futuro a SolusOS? pues supongo que todo dependerá de su creador y cómo no a la respuesta de los usuarios. No hay que engañarse, el cambio es bastante drástico y la paquetería bajará considerablemente. Nada que ver con la cantidad suministrada por Debian con lo que a priori esto supondrá.
Por otra parte, muchos usuarios no estarán por la labor de dejar Debian. Unos por sentirse más que a gusto en ella, otros por tan sólo conocer ésta y no atreverse o complicarse la vida más allá de ella y otros  tantos (los más supongo) hartos de tantos cambios "drásticos" que al  parecer se está convirtiendo en la norma en vez de la excepción y que nos está volviendo locos a todos y con ganas de mandarlo todo a paseo. ¿Qué será lo siguiente...o el siguiente...?

Solo le deseo lo mejor a Ikey Doherty y que por fin encuentre el lugar que le corresponda, que de seguro será uno destacado.

Más información en SolusOs