SIstema de control de versiones GIT (I)

Descubriendo GIT

Git es un sistema de control de versiones diseñado inicialmente para el desarrollo de Linux por el mismo linus tolvards. Un sistema de control de versiones es una herramienta muy util para los programadores, ya sea en proyectos pequeños o en proyectos enormes, como el kernel Linux. Este nos permite guardar el estado de nuestro proyecto en determinada version y si llegase a ocurrir algun accidente, solo tendriamos que deshacer los cambios, o en trabajos en equipo, observar los cambios que se hizo de version a version para observar que ha pasado con el codigo y decidir si se debe o no agregar a nuestro proyecto.

Git es un programa escrito en C pensado en ser un sistema distribuido, lo que quiere decir que no existe un repositorio central como tal. Trabaja de una manera muy sencilla. Dentro de nuestra computadora creamos un repositorio git, este guardara todo lo que hagamos, luego podemos obtener o compartir el contenido con el repositorio de otra persona, creando asi una red de desarrollo, por ultimo podemos crear un repositorio en un servidor publico que utilizaremos como repositorio principal y al cual todos los demas tendran que mandar su avance. De esta manera el desarrollo puede hacerse desde un punto remoto y compartido entre algunos nodos para termninar en un repositorio central que sera la fuente publica del codigo. Sigue leyendo

Anuncios

apt y aptitude

Viendo blogs sobre apt y aptitude encontre una tabla muy bonita y util para recordar ciertas acciones basicas y poder gestionar mejor nuestro sistema

Accion apt-get aptitude
Interface —- aptitude
Instalar apt-get install ‘pkgname’ aptitude install ‘pkgname’
Eliminar apt-get remove ‘pkgname’ aptitude remove ‘pkgname’
Purgar (eliminar todos los archivos) apt-get –purge remove ‘pkgname’ aptitude purge ‘pkgname’
Actualizar apt-get upgrade aptitude upgrade
Actualizar aunque se deban remover algunos paquetes apt-get dist-upgrade aptitude dist-upgrade
Mostrar detalles del paquete (apt-cache show ‘pkgname’) aptitude show ‘pkgname’
Buscar paquete (apt-file ‘searchpattern’) aptitude search ‘searchpattern’
Borrar archivos de instalacion apt-get clean aptitude clean
Borrar archivos de instalacion obsoletos apt-get autoclean aptitude autoclean
Actualizar la lista de paquetes apt-get update aptitude update
Mostrar detalles del paquete apt-get show ‘pkgname’ aptitude show ‘pkgname’
Mantener la version actual
—– aptitude hold pkgname
Eliminar la marca hecha con ‘aptitude hold pkgname’ —– aptitude unhold pkgname
Lista inversa de dependencia apt-cache rdepends packagename aptitude -D packagename
Poderes de super vaca apt-get moo aptitude -v[v[v[v[v]]]] moo

Ademas esta el comando apt-get autoremove que maneja las dependencias del paquete para eliminar lo que no se use.

Vaca de pascua

Es muy comun encontrar dentro de las aplicaciones algunas funciones no documentadas puestas ahi para que alguien curioso las descubra, hoy pongo dos aqui:

En la consola poner

apt-get moo

Y para una version mas avanzada poner

aptitude moo, e ir escribiendo -v, -vv, -vvv,  para aumentar el nivel de respuesta de la aplicacion.

Particion /home multi-distribucion

Para todos aquellos que hayan instalado una distribucion de linux a un nivel medio-avanzado se nos ha abierto una gran oportunidad sobre la forma en que se distribuye la informacion en el disco duro, el uso de particion para montar un directorio de la raiz. Si no sabes que significa esto y quieres seguir leyendo lo explicare lentamente.

El directorio /home se encuentra en la raiz del sistema ( / ) de nuestros archivos. En este directorio se guarda el perfil personal de todos nuestros usuarios y los archivos de configuracion. Para dar una idea de los que significa el sistema de particiones hare unas graficas con las palabras (por raro que suene)

Disco duro ( 160 GB)  = (particion 1 [10% del total])+(particion 2 [60% del total])+(particion 3 [15% del total])+(particion 4 [15% del total])
Sigue leyendo

LFS: Una experiencia desde 0 ( ó desde 3)

Durante el mes de febrero me la pase creando un sistema LFS, el tercero en mi cuenta. Un sistema LFS no es otra cosa que un sistema linux totalmente creado desde las fuentes, esto es, bajando los paquetes source.tar.{gz,bz2}, descomprimiendo y aplicando los comandos de compilacion (make, configure, autoconf, automake, etc). Para crear un sistema asi se toman 3 grandes pasos:

  1. Crear un entorno de desarrollo, llamado en el libro tool-chain
  2. Desarrollar el sistema
  3. Extender el sistema

El paso 3 es algo que esta por demas explicar ya que eso depende de cada usuario y los fines que vaya a recibir el sistema.

El paso 1 es quiza el mas interesante en lo que es el desarrollo de nuestro sistema ya que aqui necesitamos compilar todas las herramientas necesarias para compilar, valgase la redundancia, y nos damos cuenta donde va cada pieza y como se deben de unir. Sigue leyendo

Reduciendo linux (ii)

Ya tenemos una pequeña version de Linux, ahora viene lo dificil, hacer una pequeña version del sistema base. Para esto usaremos una herramienta muy poderosa que fue pensada para eso: Busy box.

Busy box fue desarrollado para usarse en los discos de arranque de Debian, ya que este debia contener el sistema y proveer todas las funciones necesarias en un espacio muy reducido. Desde ese momento hasta nuestros dias Busy box ha sido la solucion para todos los sistemas que necesitan ahorrar espacio sin perder la funcionalidad, algunas cosas que podemos usar de esta aplicacion estan en la siguiente lista:
Sigue leyendo

Reduciendo linux (i)

El primer paso para reducir el espacio utilizado por un sistema es encontrar software que nos ayude a ahorrar espacio dando codigo pequeno y que sea funcional. El dia de hoy presentare 3 proyectos que nos ayudaran a esto:
Sigue leyendo