jueves, 4 de junio de 2015

Che, esto me suena...

Veo todo este activismo acerca de #‎NiUnaMenos‬ y algo me resulta familiar... claro, hay paralelismos con el único movimiento de cambio social y político en el que activé: el software libre.

Un poco de contexto, para los que no conocen: La idea de software libre es algo que se le ocurrió a muchos pero famosamente postuló y difundió un tipo barbudo que se llama Richard Stallman, y como el feminismo es algo que si te lo explican seguro decís "obvio, esto está bien":

  1. Si tengo un programa en la computadora, debería poder usarlo para lo que quiera
  2. Y estudiarlo como quiera
  3. Y poder cambiarle cosas como se me cante
  4. Y darle copias (del original o de mi versión modificada) a mis amigos

Esas cuatro cosas son el postulado básico. Atrás de eso se engancharon varios otros planteos de derechos civiles en materia de información y telecomunicaciones personales. Cosas como el derecho al uso privado de criptografía fuerte (léase: que tu comunicación electrónica privada tenga alguna garantía práctica de que efectivamente es privada). La papa de esto es que de forma efectiva el movimiento de software libre y sus causas asociadas funcionan como prevención de que un gobierno facho tenga control absoluto. Tiene otros beneficios, pero con eso debería bastar para mostrar que es una idea útil para la sociedad y no sólo el flasheo de hippies informáticos.


Pero le comentás de esto a alguien... y la reacción es que te da toda la razón, y después sigue usando su copia pirata de windows, office y photoshop. Suena sospechosamente parecido a cuando le plantean el feminismo a un tipo, el tipo dice que está bien, y sigue mirando culos en televisión y teniendo hábitos machistas que tiene desde hace años. En ambos ejemplos puede que los hipotéticos no hayan tenido grandes problemas a corto plazo por los problemas que plantean los respectivos movimientos en los ejemplos, pero a largo plazo seguro que se benefician de seguir lo que plantean los respectivos movimientos. De vuelta, me estoy salteando detalles, lo que quiero ilustrar es la similitud en la reacción de la gente.


Otro ejemplo es cuando la gente empieza a dar bola porque le explotó algo en la cara. Con los movimientos de derechos civiles en informática, a mucha gente le explotó en la cara el escándalo de wikileaks: "ah mierda, no podemos confiar en ningún programa de computadora hecho en EEUU, mejor usemos software libre y revisemos el código fuente". Con el feminismo, a mucha gente le explotó en la cara enterarse de la dimensión del femicidio en Argentina, y más de un tipo debe haberse llevado un chasco cuando se enteró de cuánto le molesta colectivamente a las mujeres el hecho de las actitudes machistas.


Los dos movimientos plantean cosas diferentes, y tienen situaciones diferentes, pero veo líneas paralelas. Veo cómo poco a poco la gente va tomando conciencia... y me pregunto si, así como el software libre, el feminismo no va a llegar a tender a una asíntota más allá de la cual no va a poder pasar hasta que se mueva el piso y la situación cambie a su favor.

lunes, 1 de junio de 2015

¿sistemas de qué? - sistemas de paquetes de linux, explicados para usuarios

Hace ya bastantes años la mayoría de las distribuciones de Linux tienen una forma muy buena de gestionar el software que se instala, y para los inmigrantes de microsoftlandia esto es un cambio bastante radical en la forma de pensar en los programas que usan. Voy a tratar de hacer una explicación lo más agnóstica posible, para que les sirva más allá de la distribución que usan.

Primero lo primero: ¿qué es un paquete?


Un paquete es un archivo comprimido que tiene, además de varios archivos, la siguiente información:
  • el nombre del programa o recurso que viene en el paquete
  • la versión del paquete
  • dependencias (lista de otros paquetes necesita para funcionar)


Cuando instalás un paquete, si no tenés las dependencias instaladas el sistema de paquetes mismo va a devolver un error. Cada dependencia incluye la versión del paquete requerido, que generalmente es o un valor específico o un rango de valores (ejemplo: requiere tal programa en versión 1.5 ó mayor, pero menor a 2.0)


¿Y de dónde saco los paquetes?


Antiguamente los paquetes se bajaban de a uno, pero eso era un bodrio. Pare resolver ese problema existen los repositorios de paquetes, y los sistemas de paquetes integran con los repositorios para que uno pueda buscar, instalar y actualizar paquetes con un programa en la computadora propia sin tener que ir a ninguna página web.

  • En internet existen repositorios, colecciones de paquetes que uno puede bajar con el programa local (una vez configurado el repositorio en cuestión, en general ya hay varios configurados desde el vamos)
  • El programa local genera una lista que inforpora todos los repositorios configurados, en esa copia se pueden buscar paquetes (localmente, sin salir a internet) y se usa para revisar que las dependencias se cumplan
  • Localmente se guarda un cache de los paquetes instalados (o sea, de los archivos que contienen cada paquete que uno se baja)


Entendido, ahora decime cómo uso todo esto


Abajo doy ejemplos para debian/ubuntu/mint y derivados, pero estas cosas se pueden hacer con todos los sistemas de paquetes (y existen otros programas, algunos gráficos, para hacer estas cosas):

actualizar la lista local (que incorpora todos los repositorios que tenemos configurados)
sudo aptitude update

actualizar los paquetes instalados (esto baja los paquetes nuevos y los instala, acorde a la lista local)
sudo aptitude upgrade

Yo considero más seguro sólo bajar los paquetes nuevos (y después actualizar), que se puede hacer de la siguiente manera (el -y es para que haga todo sin preguntar nada, en este caso es seguro):
sudo aptitude upgrade -d -y

buscar en la lista de paquetes
sudo aptitude search [texto a buscar]

instalar un paquete
sudo aptitude install [nombre del paquete]


En otros sistemas existen variaciones, algunas cosas se pueden hacer de a dos a la vez. Por ejemplo en Arch, la distribución que uso en mi máquina, suelo hacer las cosas con estos comandos:
  • actualizar lista y bajar paquetes, sin preguntar nada: sudo pacman -Syuw --noconfirm
  • buscar un paquete pacman -Ss [texto a buscar]
  • instalar un paquete sudo pacman -S [nombre del paquete]



Los sistemas de paquetes son herramientas muy flexibles que permiten unas cuantas cosas más de lo que expliqué acá. Siempre es conveniente leer el manual, o el artículo de wiki, o una guia, para el programa que corresponde a la distribución de linux que usan.

Acá pueden ver el tutorial para aptitude (debian, ubuntu, mint, y derivados); Aptitud no sólo funciona como comando de consola, tiene una interfaz (de consola, les va a parecer re retro) que es muy cómoda. En la sección "Aptitude desde línea de comandos" pueden tienen la referencia de lo que expliqué más arriba.

Y acá tienen el artículo de pacman en el wiki de Arch.