Tuesday, March 1, 2016

¿Cómo escojo una distro me recomiendan? Parte II

¿Cuál distro te recomiendo? La que resuelva tus necesidades. Tenés que definir cuáles son tus necesidades. Tus necesidades están compuestas por 
  1. Tus necesidades y expectativas. 

  2. Las limitaciones de tu hardware.


Tus necesidades como usuario.  

Tenés que considerar estas cosas:  
  • Tipos de release:
    • Estable, fijo o estándar: ya fue testeado, auditado, probado, certificado que no dará pedos -a menos que seás travieso y hagás cambios significativos en archivos de configuración, o que usés software o paquetes que no están en los repositorios oficiales de esa distro. En estas, usualmente todo el equipo de desarrollo aprobó su lanzamiento; todos hiceron un "thumbs up". Idealmente, querés un release oficial. Las organizaciones desrarrolladoras programan y anuncian fechas de lanzamiento. Dentro de estos releases, hay una subdivisión:
      • LTS ("Long Term Support"): reciben desarrollo y/o soporte técnico adicional por cierta cantidad de años; el soporte usualmente es un extra pagado (Canonical ofrece una versión Ubuntu LTS, por ejemplo).
    • Versiones Pre-Alpha, Nightly Builds, Alpha, Beta, Release Candidate, experimental, en desarrollo o términos afines que se refieran a lo contrario de un release oficial. Para simplificarlo, son un  "prototipo", un trabajo en progreso; son orientadas a desarrolladores, miembros respetados de la comunidad, programadores, auditores, etc. y  seguramente tendrán bugs, pedos, errores, lentitud, pantallazos y tormentas de pupú de vez en cuando. Es así porque no están listas para el usuario final. Simple. Y los que saben de desarrollo, pueden experimentar, auditar, e incluso reparar bugs, agregar cosas, modificarlas y mejorarlas. Es como si le diera mi prototipo de automóvil a un ingeniero mecánico para que haga "peer review". Si no sos un desarrollador, te recomiendo que te alejés de ellas, o al menos NO LAS USÉS COMO tu distro principal/en tu pc principal, por paz mental.
    • Rolling release: distribución en actualización constante.
    • Todo esto, tiene que ver con el ciclo de lanzamiento de software. Wikealo para aprender más, si te interesa.
  • Apariencia (influenciado por mayor o menor medida por tu hardware y habilidades técnicas) :
    • Old School.
    • Simple, minimalista.
    • Elaborada.
    • Con animaciones y efectos fluidos.
    • Transparencias.
    • Sin efectos en absoluto.
  • El propósito de tu PC: 
    • Navegar por la web
    • Ver porno
    • Jugar en FB
    • Jugar cosas de varoncito.
    • Revisar tu email.
    • Universidad.
    • Trabajo.
    • Desarrollar programas.
    • Diseño gráfico.  
    • Fapping a 1080p ó 4K.  
    • Crear, renderizar, etc. 
    • Desarrollar, programar.
    • Ver pelis.
    • Escuchar música.
    • Mezclar música. 
    • Usarla para tu trabajo.
  •   Nivel de dificultad: 
    • Usuarios domésticos (mejor conocidos con los "normalitos"), principiantes en Linux que quieren aprender Linux, estudiantes de programación/
    • Usuarios familiarizados con GNU/Linux, entusiastas,
    • Usuarios avanzados: sysadmins, hackers, desarrolladores de GNU/Linux.
  • Otros factores: 
    • Similitud a Windows o Mac OS para facilitar la transición a GNU/Linux.
    • Curva de aprendizaje pequeña.
    • Evitar usar le Terminal tanto como sea posible.

Monday, February 15, 2016

¿Para qué compilar desde fuente?


Sigo sin entender para qué cojones debo de compilar.

Así pensaba yo también. No tiene sentido usar algo si no entiendo primero su utilidad. Te comparto un ejemplo/experiencia que tuve. 

Me moví a Arch porque busco algo más ligero que Freya y a la vez, algo que me ayude a aprender sobre la instalación y mantenimiento del sistema operativo: algo que me permita "tener control" de los detalles, para aprender de estos. Como sabemos, Arch requiere ser instalado "desde el suelo": el sistema base no tiene GUI, es sólo el prompt y una CLI. Vos agregás componentes según tu voluntad y preferencias.
Estoy usando Awesome WM en lugar de un Destkop Environment completo. También uso urxvt como Terminal, en lugar de una terminal pesada. Esto hace mi escritorio ligero. Ahora bien, extraño la transparencia en Terminal, como la de Pantheon-Terminal en Freya, porque permite trabajar en Terminal sobre tu navegador por ejemplo, y leer cosas mientras trabajás en Terminal. Esto me lleva a un predicamento: 

  • Podría instalar Pantheon-Terminal en Arch, pero no quiero algo tan pesado ni con barra de menú porque es un desperdicio de pixeles... más aun en una laptop. Quiero ahorrar pixeles y dedicarlos a más contenido, no a botones.
  • En todo caso, la selección de Terminal no es el problema; Awesome WM no soporta transparencias de manera nativa, sino que require un "composite manager", gestor de composición de ventanas para lograrlo. Esto significa que puedo usar virtualmente cualquier Terminal y tener transparencia, siempre y cuando tenga un Composite Manager.
Después de documentarme, aprendí que el Composite Manager llamado Unagi, es ligero y de hecho,  fue desarrollado para Awesome WM. Unagi es un paquete adicional en Arch (y diría que en muchas otras distros). No toda la gente lo usa ni lo necesita, así que no tiene sentido para los desarrolladores de Arch, incluirlo como paquete oficial en el sistema base; hacerlo sería abusar del almacenaje de quienes no lo usarán: esta sería una definición justa del término BLOATWARE. Por eso Unagi está en el AUR, el Repositorio de Usuarios de Arch; acá hay software de calidad, en tarballs, listo para ser descargado, compilado e instalado manualmente por quien desee usarlo. 

Así que, para ejemplificar los pasos que te compartí antes, hice lo siguiente:


$ wget https://aur.archlinux.org/cgit/aur.git/snapshot/unagi.tar.gz
$ tar xvf unagi.tar.gz
$ cd unagi 
$ cat PKGBUILD 
$ makepkg -s 
$ sudo pacman -U unagi.tar.xz

Explicación: descargué el tarball (paquete comprimido), lo extraje, creó un directorio con contenido; me moví a ese directorio, leí el script de instalación o PKGBUILD (es recomendado leer el script de instalación -si entendés de bash-scripting :v para confirmar que el script está limpio y no tiene nada malicioso.); compilé el paquete asegurándome de forzar dependencias a ser instaladas (el script incluye referencias a esas dependencias), e instalé el paquete... aunque pude ahorrarme la última línea y usar $ makepkg -sri  en su lugar.



Y listo. Ahora que tengo Unagi instalado, puedo trabajar en las configuraciones apropiadas dentro de Awesome para hacer que mi terminal sea transparente. Y esa, es otra historia. Hasta pronto :)

Overview: Instalar paquetes desde el código fuente.

A veces no encontrarás cierto software en los repos oficiales de tu Distro. Esto es por diversas razones: a lo mejor es software privativo y ponerlo en los repos oficiales contradice la filosofía de la Distro, o no es soportado directamente porque no es totalmente estable o compatible con la Distro o su DE oficial; tal vez está en versión Beta o Alfa incluso, etc. Sin embargo, siempre podés instalar ese software, si vas a un repo no-oficial de tu Distro (como el AUR en Arch) o si vas a un repo externo. Lo que tenés que hacer es algo llamado "compilar el código fuente" (compile/build from source).

Vamos a detallar las instrucciones para compilar en la CLI desde Arch. En esencia, el procedimiento total es igual en toda Distro, pero algunos comandos cambian. 

Pre-requisitos.

Antes de todo, necesitás: 
  • Un usuario regular. Por motivos de seguridad no podés instalar paquetes del AUR o repositorios externos, desde Root. 
    • Truco personal: tengo un directorio dentro de /home/usuario exclusivo para descargar paquetes fuente y compilarlos. $ mkdir ~/AUR_downloads
  • Que Arch tenga instalado el base-devel (devel= "development"; o sea, un conjunto de paquetes para desarrollo): $ pacman -S --needed base-devel
    • Específicamente, los paquetes que se requieren son: 
      • gcc (Compilador GNU para C, C++, Java, etc.)
      • wget (para descargar los paquetes comprimidos, alias "tarballs")
      • makepkg (para compilar localmente)
      • fakeroot (como dije en el punto principal anterior, instalar como root no es recomendado ni permitido; fakeroot "emula" un ambiente root para instalar paquetes desde código fuente).
         

Procedimiento.

Una vex tenés todo esto, podés instalar paquetes no-oficiales. En esencia, el proceso es simple: 
  • Descargar el paquete, o tarball (esto es un archivo .gz; usás wget).
    • $ wget foo.gz
  • Descomprimir/extraer el paquete ( se usa $ tar xvf ); un directorio nuevo es creado (Por eso tengo un fólder sólo para paquetes, para mantener todas los tarballs y los directorios extraídos organizados) con algunos archivos; PKGBUILD, README y otros. compilados.
    • $ tar xvf foo.gz
    • $ cd foo
  • Compilar e instalar el paquete (en Arch se usa $makepkg; en otras distros esto puede variar); esto producirá un archivo con el nombre del paquete, en formato .xz). Se puede con una de estas formas:
    • $ makepkg -sri   (compila, resuelve dependencias e instala).
    • O de esta forma: 
      • $ makepkg -s
      • $ sudo pacman -U foo.xz
  • Regocijarte y fappear a lo grande. 

Entradas populares.