TeXLive 2014 + Kile en Fedora 21 (KDE)

A pesar de que la mayoría de mis conocimientos en TeXLive se desarrollaron siendo usuario de Fedora, el repo TeXLive de Fedora no viene siendo ni mucho menos lo tolerable… Las mejores características muchas veces resultan lo más complicado de instalar y/o configurar a la “mano pelada”. Paquetes que no existen y cosas que se hacen imposibles de instalar desde el repo nativo.

El uso de Fedora siempre ha ido a la par del uso de TeXLive para la creación de documentos de trabajo importantes, documentos personales, presentaciones, e incluso complicadas tablas, que en un editor de texto o suite de ofimática me sacaría las canas queriendo lograr algo respetable o decente.

Esta vez no fue la excepción en Fedora. El repo TeXLive sigue estando a años luz de ser 100% usable, aunque he de reconocer que ha tenido sus avances desde que le pusieron especial atención. Pero bueno, logré lo que hace tiempo quería: instalar el DVD de TeXlive, configurarlo y disfrutarlo a mis anchas en mi instalación de Fedora… con KDE.

Sin premeditarlo, pero necesitándolo, procedí a descargar la iso del DVD de TeXLive 2014… vía torrent.

Sin mucha espera, lo descargué y lo descomprimí en foo directorio. Desde ahí lo instalé con un simple comando como superusuario:

# ~/tl/texlive2014-20140525/perl install-tl

Después de seis minutos todo estaba instalado en /usr/local/texlive/

Luego de eso había que probar la instalación, pero antes había que indicarle a Fedora las rutas de acceso a los diferentes ejecutables. Eso se logra agregando a ~/.bash_profile las siguientes líneas:

PATH=/usr/local/texlive/2014/bin/x86_64-linux:$PATH; export PATH
MANPATH=/usr/local/texlive/2014/texmf-dist/doc/man:$MANPATH; export MANPATH
INFOPATH=/usr/local/texlive/2014/texmf-dist/doc/info:$INFOPATH; export INFOPATH

Sin eso no hay mágia. Guardo. Cierro sesión. Abro sesión. Los cambios están cargados.

Si se me antoja actualizarlo en algún momento, lo siguiente será de utilidad:

# tlmgr option repository http://mirror.ctan.org/systems/texlive/tlnet

Ahora habrá que indicarle al sistema TeX dónde debería encontrar las fuentes instaladas con:

# cp /usr/local/texlive/2014/texmf-var/fonts/conf/texlive-fontconfig.conf /etc/fonts/conf.d/09-texlive.conf

Actualizo la caché de las fuentes:

# fc-cache -fsv

(lleva algo de tiempo)

Y acabado eso, probamos la instalación como usuario sin privilegios mayores:

$ tex --version

Que debería arrojarnos algo así:

TeX 3.14159265 (TeX Live 2014)
kpathsea version 6.2.0
Copyright 2014 D.E. Knuth.
There is NO warranty.  Redistribution of this software is
covered by the terms of both the TeX copyright and
the Lesser GNU General Public License.
For more information about these matters, see the file
named COPYING and the TeX source.
Primary author of TeX: D.E. Knuth.

Y luego:

$ latex sample2e.tex
This is pdfTeX, Version 3.14159265-2.6-1.40.15 (TeX Live 2014) (preloaded format=latex)
restricted \write18 enabled.
entering extended mode
(/usr/local/texlive/2014/texmf-dist/tex/latex/base/sample2e.tex
LaTeX2e <2014/05/01>
Babel <3.9k> and hyphenation patterns for 78 languages loaded.
(/usr/local/texlive/2014/texmf-dist/tex/latex/base/article.cls
Document Class: article 2007/10/19 v1.4h Standard LaTeX document class
(/usr/local/texlive/2014/texmf-dist/tex/latex/base/size10.clo))
No file sample2e.aux.
(/usr/local/texlive/2014/texmf-dist/tex/latex/base/omscmr.fd) [1] [2] [3]
(./sample2e.aux) )
Output written on sample2e.dvi (3 pages, 7484 bytes).
Transcript written on sample2e.log.

Sin error alguno si todo ha ido bien en la instalacíon y post-instalación.

Pero esto no termina aquí, porque si vamos a usar algún editor especializado como Texmaker, Texstudio o Kile, nos meteríamos a una maraña de compilaciones y dependencias difíciles. Tenemos KDE instalado y lo mejor sería irnos con algo bastante completo y nativo: Kile.

Pero dice yum que hay 200+ dependencias para Kile y todas esas dependencias son de TeXLive, al que ya tenemos instalado off-repos. Cómo instalar únicamente Kile?

$ yumdownloader kile

Y ahora como admin:

# rpm -i --nodeps kile-2.1.3-6.fc21.x86_64.rpm

Y listo.

Todas las dependencias nativas de Kile ya están instaladas poque son comunes de KDE. Con rpm -i --nodeps evitamos que rpm se queje de las dependencias de TeXLive. Ya Kile sabrá encontrar el camino para hacer su trabajo sin necesidad de esas dependencias ni configuración posterior.

Espero les sea útil.

Fedora 21: Postinstall

Un par de días con la leve ansiedad de tener instalado las mejorías casi inperceptibles de Fedora 21. Un poco de tiempo libre en el trabajo basta para respaldar la info que resultó de dos meses de trabajo y proceder a instalar Fedora. Esta vez dándole una oportunidad a KDE, luego de haber leído por ahí que resulta ser Fedora una de las tres distros más rápidas con KDE, luego de Chakra Linux. Y efectivamente así parece ser.

El clásico update antes que nada.

$ sudo yum update

Uups… la costumbre después de estar utilizando derivados de Debian. No sabía que sudo ya venía configurado en Fedora 21… Pero bueno.

$ su -
# yum install yum-plugin-fastestmirror
# yum update

# yum remove calligra*

Quise darle un intento a Calligra, pero hay cosas que no andan bien para quien ya se volvió un usuario frecuente de las suites de office.

# yum install libreoffice

Y por supuesto, usuario de impresoras.

# yum install hpijs hplip cups
# hp-setup -i

# yum install firefox thunderbird

Luego de un reinicio, constatamos que todo anda bien y proseguí…

$ su -c 'yum localinstall --nogpgcheck http://download1.rpmfusion.org/free/fedora/rpmfusion-free-release-$(rpm -E %fedora).noarch.rpm http://download1.rpmfusion.org/nonfree/fedora/rpmfusion-nonfree-release-$(rpm -E %fedora).noarch.rpm'

yum update

Luego de eso yum me pregunta que si deseo proseguir con la instalación de paquetes complementarios como códecs de audio/video que se encuentran en rpmfusion… yes.

# yum install firefox thunderbird

Ahora solo resta configurar el proxy en Firefox, el correo institucional y su respectivo chat.

Voilà!

Copiar archivos a y de tu Android con adb

Puedes tener acceso a tu dispositivo android vía adb en la línea de comandos o Terminal. Un disppositivo Android necesitaría estar rooteado para poder accederlo.

adb se encuentra localizado en el directorio [android-sdks]/platform-tools. Sólo tendrías que agregar éste directorio a tu ruta de ejecución para tenes acceso directo a sus comandos.

adb permite emviar comandos a tu dispositivo Android, guiñar y enviar archivos a éste, brinda acceso al shell de Android y permite leer información de tu dispositivo.

Lo primero que tendrás que hacer es habilitar el modo debug de tu dispositivo y luego señalar y otorgarle acceso root a adb dentro del dispositivo, luego de eso, desde tu computador y con el dispositivo conectado:

$ adb devices
List of devices attached
00a719c8148ra068 device

Luego necesitas reclamar acceso root:

$ adb root
restarting adbd as root

Listo. Tenés acceso completo a tu dispositivo.

$ adb push <archivo_origen> <mnt/sdcard/directorio_destino>

$ adb pull </mnt/sdcard/archivo_origen> <directorio_destino>

$ adb uninstall <nombre_aplicacion>

Por ejemplo yo necesito con regularidad descargar las actualizaciones de Cyanogenmod 11 para aplicarlas a mi dispositivo Android. Para ello ejecuto:

$ adb push cm-11-20140109-NIGHTLY-e975.zip /mnt/sdcard/Downloads/

Espero les sea de ayuda.

Metiéndole seguridad a OpenSSH

Mi preferencia por descargar vía torrent y una que otra vulnerabilidad “social” de mi proveedor de Internet han hecho de un tiempo acá bastante común los intentos desde fuera por acceder a mi terminal. ¿Quiénes? ¿Cuándo? ¿Cómo? No importa, lo importante es que aprendamos a no creernos invulnerables e intocables sólo porque usamos GNU/Linux.

OpenSSH (o Secure Shell) se ha convertido en el estándar en acceso remoto, reemplazando así, a telnet como protocolo, esto porque la conexión es cifrada y las contraseñas no son enviadas en texto plano para que todo mundo las vea.

De cualquier manera, la configuración por defecto de SSH no es perfecta, y cuando se corre un servidor SSH existen algunos pasos sencillos que pueden darle robustez a la configuración. Créeme que sí.

Usa contraseñas/nombres de usuarios más fuertes

Una de las primeras cosas a notarse es que si tenés SSH corriendo y expuesto al mundo exterior lo más probable es que recibas registros de intentos por parte de lamers y hackers de adivinar tu usuario o contraseña. Típicamente un hacker hará un scan para el puerto 22 (el puerto por defecto en el que SSH “escucha”) queriendo encontrar máquinas con SSH corriendo, y luego intentará un ataque de fuerza bruta contra esto. Con fuertes contraseñas en su lugar es posible que cualquier ataque sea registrado y puesto en advertencia antes de que cualquiera logre un ingreso exitoso.

Por suerte ya usás contraseñas fuertes, pero si no, entonces prueba a escoger contraseñas que contengan:

  • Mínimo de 8 caracteres
  • Mezcla de minúsculas y mayúsculas
  • Mezclas de letras y números
  • Caracteres no alfanuméricos (p.e. caracteres tales como ! ” £ $ % ^, etc)

Si absolutamente no se puede prevenir a los usuarios de escoger contraseñas débiles, entonces considera generarlas de manera aleatoria o nombres de usuario difíciles de adivinar para tus cuentas de usuario. Si los chicos malos no pueden adivinar el usuario es más difícil que logren la contraseña por fuerza bruta. Sin embargo, esto es seguridad a travéz de oscuridad, y es mejor tener en cuenta que la información se puede escapar en el envío de correos electrónicos, por ejemplo.

Desactiva Ingresos de Root

Los ajustes del servidor SSH están alojados en /etc/ssh/sshd_config. Para desactivar los ingresos de root asegúrate de corregir la siguiente entrada:

# Prevent root logins:

PermitRootLogin no

y reinicia el servicio sshd:

service sshd restart

Si necesitas ingresos de root es preferible ingresar como usuario normal y luego usar su.

Limita los ingresos de usuarios

Los ingresos de SSH pueden ser limitados a ciertos usuarios que necesitan acceso remoto. Si tu máquina tiene muchas cuentas de usuarios en el sistema, entonces es preferible limitar el acceso remoto a las cuentas de usuarios que realmente lo necesitan, limitando de esta forma el impacto de un casual usuario que tenga una contraseña débil. Agrega usuarios separados por espacio en /etc/ssh/sshd_config. Por ejemplo:

AllowUsers alice bob

y reinicia el servicio sshd.

Desactiva el Protocol 1

SSH tiene dos protocolos que puede usar, protocolo 1 y protocolo 2. El más antiguo es el protocolo 1, es menos seguro y debería ser desactivado, a menos que específicamente lo requieras. Corrige como a continuación en el archivo /etc/ssh/sshd_config:

# Protocol 2,1
Protocol 2

y reinicia el servicio sshd.

Usa puertos no estándar

Por defecto SSH “escucha” conexiones entrantes en el puerto 22. Como ya habíamos dicho, para que el hacker determine si SSH corre en tu máquina, este intentará un scan en el puerto citado. Un método efectivo es correr SSH en un puerto no estándar. Cualquier puerto sin usarse servirá, aunque uno por encima del 1024 es preferible. Mucha gente escoge el 2222 como alternativa, a como normalmente se escoge el 8080 para el puerto HTTP. Por esta razón es probable que no sea la mejor respuesta, ya que cualquier hacker estaría haciendo scan al 2222 como buena medida. Es mejor escoger algún puerto aleatoriamentem, que sea alto y que no esté siendo usado por servicios conocidos. Para hacer el cambio, agrega la linea siguiente a tu archivo en /etc/ssh/sshd_config:

# Run ssh on a non-standard port:
Port 2345  #Change me

y reinicia el servicio sshd. No olvides de hacer cualquier cambio necesario en tu enrutador y cualquier regla en el firewall.

Para mayores detalles acerca de SELinux y las reglas del firewall, visita la página que me fue de utilidad.

LG L3 e400: rooting y SDMerge400

Ya casi medio año con este dispositivo y hasta hace poco he podido estar contento con su ROM, aspecto y funcionamiento. De fábrica traía la ROM stock de LG+Claro, que ocupaba mucho espacio y apenas te concedía unos 90 Mb para aplicaciones nuevas. El resto era ocupado por otras que no servían para nada y que al final terminaban ocupando espacio. Lo primero que hice fue rootearlo con esta guía. Obviamente utilicé el script para Linux. Sin problemas.

El e400 es un smartphone barato, de plástico y con espacio muy limitado, pero es bonito y elegante. Lo que menos me gustó fue su pantalla QVGA de 320×240. Muy poco, tomando en cuenta que la misma resolución tenía el Nokia X3-02 que andaba antes, y no era un smartphone.

Lo siguiente fue que esperé hubiese una ROM disponible en Cyanogenmod. No esperé mucho, menos de un mes. Pero seguía con el problema del espacio para las aplicaciones. Tenía ahora 150 Mb de espacio, pero seguía siendo insuficiente. No pude prescindir de las aplicaciones de Google, a pesar de que Cyanogenmod te da una ROM base para que tengás disponible el mínimo necesario en apks.

Rootear LG L3 E400

Si tu interés es rootearlo, sólamente debes seguir la guía que ya mencioné antes. Funciona a la perfección. Yo mismo guardo el script que me funcionó a la primera. Luego de eso no es nada del otro mundo cambiarle el ROM. Solo recomiendo que respaldes el ROM stock con alguna de esas utilidades que encontrás en el Play Store de Google. ROM Manager viene bien. Lo siguiente es que necesitás un Recovery, ClockworkMod es lo más acertado, y ROM Manager puede hacer eso de la manera más fácil.

Una vez que has instalado el Recovery, solo necesitas descargarte la ROM de tu preferencia. CyanogenMod es la más popular de las opciones. Es la que yo recomiendo. Podés descargarla de aquí. La copiás a tu memoria SD (externa, el recovery te permitirá navegar hasta donde la hayas guardado), y una vez ahí apagás el dispositivo y lo volvés a encender presionando “botón abajo” + “power”. En cuanto vibre sueltas los botones y ya estas en el recovery. Recomendable borrar /cache, /data y /system antes de proceder. Navegás hasta donde está tu ROM y procedés a instalarla. Tomará su tiempo. Reboot y listo, en la pantalla te aparecerá la animación de Cyanogenmod 9. Eso tomará unos 7 minutos hasta que el sistema esté completamente instalado.

Podés descargar las Gapps desde aquí. Se instalan de la misma manera que cualquier ROM, como una simple actualización desde el recovery.

El siguiente paso es ampliar tu memoria para instalar con SDMergE400. Eso es opcional si preferís quedarte con la disposición de particiones que te ofrece Cyanogenmod.

SDMergE400

El propósito de SDMergE400 es obtener más espacio para el usuario removiendo la SDCARD de 1 Gb interna. Para eso se hace necesario los siguientes 4 pasos:

1. Actualizar el recovery para usar uno que soporte particionado en modo experto.

2. Reparticionar el espacio interno y crear el sistema de archivos.

3. Instalar el más reciente ROM nightly de Cyanogenmod9

4. Instalar SDMergE400 para Cyanogenmod9 nightly.

Con lo que lográs:

1. Partición /data extendida a 1.15Gb

2. Fix del encendido/batería

3. Fix del almacenamiento masivo USB

4. Fix de la encriptación ICS

5. Posibilidad de OC a 1GHz/tun/swap kernel luego del paso 4.

Cómo instalar (por primera vez)

1. Descarga el archivo con todas las partes desde aquí y desempácalo en la SD externa. Descarga también el más reciente CM9 nightly en tu SD externa. Asegúrate que el teléfono tiene carga completa.

2. Actualiza tu recovery a la versión 5.8.4.5 (eso es posible vía ROM Manager)

3. Desconecta el cargador y rebootea al recovery.

4. Aplica SDMergE400_Step1.zip desde la SDCARD. El teléfono rebooteará satisfactoriamente hacia un nuevo recovery.

5. Aplica SDMergE400_Step2.zip desde la SDCARD. El teléfono rebooteará satisfactoriamente hacia una versión vieja de recovery para que logrés completar el step3 y luego del paso 6 de la guía, el zip del step4

6. Aplica el último nightly de CM9, y luego de esto, sin reiniciar, aplica SDMergE400_Step4.zip desde la SDCARD.

ACTUALIZACION: SDMergE400_step4_v1.2b para CM9 disponible.

7. Rebootea y cruza los dedos. Luego de 2-3 minutos verás tu home o lock del PIN.

Para actualizar a nuevas versiones de CM9 nightlies:

1. Copia el más reciente CM9 nightly a la SD externa

2. Aplica CM9 desde el recovery. Sin reboot.

3. Aplica SDMergE400-Step4.zip o su última versión desde la SD externa.

4. Reboot. Voilà.

Nótese que para actualizar SDMergE400 es necesario el step4 únicamente.

Para revertir el mod SDMergE400 deberías flashear con KDZ.

Esto es posible al trabajo de gellmar. Las actualizaciones de SDMergE400 son anunciadas en éste hilo de foro.

Compartir conexión desde Fedora

Recientemente cambié de proveedor del servicio de Internet. La conexión decente en Nicaragua es un mito. Conozco alguna gente que tiene algún negocio y usan hasta dos o tres proveedores a la vez para poder resolver sus necesidades satisfactoriamente. Bueno, dejemos el ranting por ahora.

Sucede que tengo ahora un módem USB para conectarme a Internet, y pues por el momento hace un trabajo decente. He estado necesitando la conexión WiFi por diversas razones y no había tenido tiempo para sentarme y resolver eso compartiendo una conexión desde mi computadora de escritorio. Pensaba yo que necesitaba algo de guía para eso, pero no, las guías que seguí para compartir conexión fueron un completo fracaso, además de ser viejas y caducas maneras de compartir una conexión con GNU/Linux.

Así que, luego de descartar eso, simplemente borré las conexiones que había creado con NetworkManager. Conecté el cable de red de mi enrutador al puerto ethernet de mi computadora y esperé que Fedora hiciera el resto del trabajo de manera automática. Tampoco funcionó. Pero, un momento…

Me fui a la Terminal y abrí de nuevo:

$ nm-connection-editor

uno

Edité la configuración que automáticamente se había creado, esto en la pestaña de configuración general, quité el check en donde dice “conecta automáticamente cuando esté disponible”, y luego en la pestaña de los ajustes de IPv4, en el método de conexión que dice “compartido con otras computadoras”.

dos

tres

Guardé y listo. Fedora se encargó previamente de asignar un IP a esa conexión; asimismo, mi enrutador recibió esa conexión y la puso disponible en sus puertos. Resuelto el problema de falta de WiFi.

Obviamente la conexión que transmite mi enrutador sólo está disponible cuando la computadora de escritorio esté en funcionamiento.

TeXlive en Fedora 18

De un release a otro muchas cosas cambian. No deja de suceder con \TeXLive en Fedora 18, y en mi intento por habilitar un entorno mínimo de \TeXLive, me doy cuenta que mi método de instalación anterior no funciona o no me proporciona lo que necesito. Así que buscando una solución a esto (al parecer \TeXLive ahora cuenta con su “propia” nomenclatura de paquetes en Fedora 18), logré encontrar una. Como de costumbre, sin más explicación, en F18, instalamos \TeXLive así:

# yum install texstudio texlive-collection-latex texlive-collection-latexextra texlive-collection-science texlive-collection-latexrecommended texlive-collection-genericextra texlive-collection-genericrecommended texlive-collection-fontsrecommended tex-pst-optexp texlive-epstopdf-bin

Nótese que el primer paquete es texstudio, que es el editor que yo uso. Podés instalar en su defecto, kile o texmaker.