Mostrando entradas con la etiqueta ubuntu. Mostrar todas las entradas
Mostrando entradas con la etiqueta ubuntu. Mostrar todas las entradas

Configuración de un entorno de trabajo con GIT

Cuando emprendemos el desarrollo de un sistema o de un sitio web, en el que participan dos o más personas, tenemos que organizarnos muy bien para evitar destruir con nuestros cambios el trabajo previo de los compañeros de proyecto. A pesar del nivel de sincronía y organización que se pueda alcanzar, frecuentemente surgen conflictos o dudas al trabajar en aspectos del proyecto muy cercanos entre si, por ejemplo cuando un desarrollador requiere modificar un archivo de código sobre el que viene trabajando un colega. La situación se complica cuando los involucrados no comparten un mismo entorno físico, por lo que el chat, correo o teléfono no mejoran el asunto. Es por ello que en estas circunstancias hay que recurrir a lo que se denomina un control de versiones, de los que existen varios, pero uno destaca especialmente por su origen: el GIT.

¿Qué es el GIT?

Git (pronunciado "guit") es un software de control de versiones diseñado por Linus Torvalds, pensando en la eficiencia y la confiabilidad del mantenimiento de versiones de aplicaciones cuando éstas tienen un gran número de archivos de código fuente. Al principio, Git se pensó como un motor de bajo nivel sobre el cual otros pudieran escribir la interfaz de usuario o front end como Cogito o StGIT. Sin embargo, Git se ha convertido desde entonces en un sistema de control de versiones con funcionalidad plena. Hay algunos proyectos de mucha relevancia que ya usan Git, en particular, el grupo de programación del núcleo Linux. (Wikipedia, 2017)

Manos a la obra

A continuación describiremos los pasos básicos para la configuración de un entorno de desarrollo conformado por al menos dos desarrolladores regido por el sistema de control de versiones GIT. Sin embargo esta metodología también sera aplicable para un programador solitario, ya que un control de versiones entre sus bondades ofrece un historial de versiones, por lo que se puede regresar a estados previos del desarrollo, en el caso de que los cambios efectuados no nos satisfagan.

En el servidor

Instalamos git. En el caso de Debian o Ubuntu

TERMINAL
  1. apt-get install git

En el caso de Fedora

TERMINAL
  1. yum install git-core

Crearemos el usuario git para que el repositorio principal se ubique en su directorio de trabajo, sin embargo se puede utilizar un usuario existente o crear uno distinto.

TERMINAL
  1. useradd git
  2. passwd git

Ahora creamos y configuramos el directorio donde se alojara el repositorio

TERMINAL
  1. cd ~
  2. mkdir repositorio.git
  3. cd repositorio.git
  4. git init --bare --shared
  5. mv hooks/post-update.sample hooks/post-update

Podemos usar el comportamiento por defecto del servicio git al momento de procesar la información proveniente de los clientes, o cambiarla por un esquema básico que se detalla a continuación:

Editamos el archivo hooks/post-update

TERMINAL
  1. nano hooks/post-update

Y realizamos el siguiente cambio:

ARCHIVO hooks/post-update
  1. # El parámetro $1 del script es el nombre del branch actualizado
  2. # Comparamos con master para actualizar el entorno de producción
  3. # y con test para actualizar el entorno de pruebas
  4. case " $1 " in
  5. *'refs/heads/master'*)
  6. echo "Pulling producción"
  7. unset GIT_DIR
  8. cd /var/www/repositorio || exit
  9. git pull origin master
  10. ;;
  11. esac
  12. case " $1 " in
  13. *'refs/heads/test'*)
  14. echo "Pulling pre-producción"
  15. unset GIT_DIR
  16. cd /var/www/repositorio-test || exit
  17. git pull origin test
  18. ;;
  19. esac
  20. exec git-update-server-info

En el cliente del desarrollador líder

Procedemos a configurar el repositorio del desarrollador líder, aquel que tiene la última palabra cuando surge un conflicto con los cambios que el equipo de desarrollo actualiza sobre el repositorio principal

TERMINAL
  1. apt-get install git
  2. cd ~
  3. mkdir repositorio.git
  4. cd repositorio.git
  5. git init
  6. git remote add origin usuario@servidor-ip:/home/usuario/repositorio.git

Ahora creamos o copiamos un archivo cualquiera en esta carpeta, por ejemplo:

TERMINAL
  1. touch prueba

Procedemos a hacer la sincronización inicial

TERMINAL
  1. git add *
  2. git commit -m “Subida inicial”
  3. git push origin master

En el cliente de los otros desarrolladores

Esta sera la configuración tipo a seguir por el resto del equipo de desarrollo

TERMINAL
  1. apt-get install git
  2. cd ~
  3. mkdir repositorio.git
  4. cd repositorio.git
  5. git init
  6. git remote add origin usuario@servidor-ip:/home/usuario/repositorio.git
  7. git pull origin master

En el servidor Web

Hasta ahora hemos configurado lo relativo a los repositorios, los pasos que se listan a continuación están enfocados hacia la construcción de un entorno adecuado para el desarrollo de un proyecto Web. El objetivo es que al momento de actualizar cambios hacia el repositorio central, estos también se reflejen en el servidor Web del ambiente de desarrollo de nuestro proyecto.

TERMINAL
  1. sudo usermod -G git www-data
  2. cd /var/www
  3. sudo mkdir repositorio
  4. sudo chown -R git:git repositorio
  5. sudo chmod 775 repositorio
  6. cd repositorio
  7. git init

En caso de tener un repositorio de pruebas, dentro del ambiente de desarrollo, se siguen estos pasos adicionales:

TERMINAL
  1. sudo usermod -G git www-data
  2. cd /var/www
  3. sudo mkdir repositorio-test
  4. sudo chown -R git:git repositorio-test
  5. sudo chmod 775 repositorio-test
  6. cd repositorio-test
  7. git init


REFERENCIA

Wikipedia. (18 de abril de 2017). Git. Recuperado de: https://es.wikipedia.org/wiki/Git



Ubuntu: Cambiar la ubicación de los botones maximizar, minimizar y cerrar



Para cambiar la ubicación de los botones de maximizar, minimizar y cerrar, introduce en el terminal el siguiente comando:

TERMINAL
  1. gconf-editor

Ir a 'apps / metacity / general / button_layout'

  • Si se quieren a la izquierda colocar close,minimize,maximize:
  • A la derecha :minimize,maximize,close
  • Como se aprecia el símbolo ':' determina a que lado de la ventana se ubican los elementos.
  • Otros elementos permitidos son: menu y spacer.


Ubuntu: Evitar la carga automática de dispositivos USB


Si te incomoda la aparición de una ventana cada vez que introduces un dispositivo USB y prefieres tener el control de lo que se despliega en pantalla, puedes evitar la carga automática de estos, mediante la ejecución del siguiente comando en una terminal:

TERMINAL
  1. gconf-editor

Ir a 'apps / nautilus / preferences'

  •   Desmarcar 'media_automount'
  •   Desmarcar 'media_automount_open'

 

Ubuntu: Unión y manipulación de PDFs

Mediante esta pequeña, pero potente utilidad podrás manipular archivos PDFs. Entre sus funciones figuran: unir varios en único archivo, eliminar o agregar paginas a un documento, o cifrar su contenido


Instalación


TERMINAL
  1. sudo aptitude install pdftk

Uso


TERMINAL
  1. pdftk archivo1.pdf archivo2.pdf cat output salida.pdf

o también

TERMINAL
  1. pdftk X=archivo1.pdf Y=archivo2.pdf cat X Y output salida.pdf

Otros Usos

Cifrar un archivo pdf:

TERMINAL
  1. pdftk archivo.pdf output archivo_sin_clave.pdf clave

Quitar clave de un archivo pdf:

TERMINAL
  1. pdftk archivo.pdf input_pw clave output archivo_sin_clave.pdf

Quitar una página de un archivo pdf:

TERMINAL
  1. pdftk archivo.pdf cat 1-7 9-end output salida.pdf


Linux: Clonación de máquinas en VirtualBox


"Oracle VM VirtualBox es un software de virtualización para arquitecturas x86, creado originalmente por la empresa alemana innotek GmbH. Actualmente es desarrollado por Oracle Corporation como parte de su familia de productos de virtualización. Por medio de esta aplicación es posible instalar sistemas operativos adicionales, conocidos como «sistemas invitados», dentro de otro sistema operativo «anfitrión», cada uno con su propio ambiente virtual." (Wikipedia, 2011)

Ejecutamos en un terminal:

TERMINAL
  1. VBoxManage clonevdi ruta_archivo_maquina_a_clonar ruta_archivo_maquina_nueva


REFERENCIA

Wikipedia. (19 de marzo de 2011). VirtualBox. Recuperado de: https://es.wikipedia.org/wiki/VirtualBox



Instalación de Neatx (FreeNX) en Ubuntu


"NX es un programa informático que realiza conexiones remotas X11 muy rápidas, lo que permite a los usuarios acceder a escritorios remotos de Linux o Unix incluso bajo conexiones lentas como las realizadas con módem. NX realiza una compresión directa del protocolo X11, lo que permite una mayor eficiencia que VNC. La información se envía mediante SSH, por lo que toda la información que se intercambian servidor y cliente está cifrada." (Wikipedia, 2011)

Servidor

Editamos el archivo /etc/apt/sources.list

TERMINAL
  1. nano /etc/apt/sources.list

Agregamos la linea de configuración que corresponda a la versión de Ubuntu

ARCHIVO /etc/apt/sources.list
  1. deb http://ppa.launchpad.net/freenx-team/ppa/ubuntu maverick main
  2. deb http://ppa.launchpad.net/freenx-team/ppa/ubuntu lucid main

Actualizamos los repositorios e instalamos el programa

TERMINAL
  1. sudo aptitude update
  2. sudo aptitude install neatx-server

Cliente

Descargar el paquete .deb de la dirección http://www.nomachine.com/download-client-linux.php

Ubicarse en el directorio donde se guardo el paquete

TERMINAL
  1. sudo dpkg -i nxclient_X.X.X_i386.deb

Donde X.X.X corresponde a la versión que se haya descargado.


REFERENCIA

Wikipedia. (12 de febrero de 2011). Tecnología NX. Recuperado de: https://es.wikipedia.org/wiki/Tecnología_NX



Instalación de MapSource en Ubuntu


Se debe tener instalado el wine y las fuentes típicas de Windows. Luego seguir los siguientes pasos:

- Instalar el Garmin Trainer Center, mediante el wine. Se puede descargar de la página de Garmin.

- Instalar mediante el wine, el MapSource 6.137, versiones más recientes probablemente no funcionarán.

- Conectar el dispositivo GPS y esperar que el sistema lo reconozca. Luego entrar al módulo de configuración de wine, e ir a la pestaña de Unidades. Ejecutar autodetectar o en su defecto agregar manualmente la ruta del dispositivo. Se debe configurar como un disco flexible (opciones avanzadas).

- Ejecutar MapSource, en el menu ir a la ruta Utilidades/Obtener ID de unidad, aquí debería aparecer el dispositivo GPS.

- Instalar los mapas que vayamos a utilizar, en el caso de Venezuela pueden ser los de Venrut.

Debian: SSH sin contraseña


Si frecuentemente nos conectamos a otro equipo vía SSH, o hemos definido un proceso que se ejecuta automáticamente y de manera desatendida, podemos valernos de este método para evitar que al realizar la conexión el sistema nos solicite la contraseña.

Nos referiremos a cliente como la maquina que se quiere conectar al servidor, sin que este último le solicite clave.

Editamos el archivo /etc/ssh/sshd_config

TERMINAL
  1. nano /etc/ssh/sshd_config

Verificamos la presencia de estas lineas:

ARCHIVO /etc/ssh/sshd_config
  1. RSAAuthentication yes
  2. PubkeyAuthentication yes

Luego verificar si en el cliente están creadas las llaves publicas RSA y DSA

TERMINAL
  1. ls ~/.ssh

En caso de estar creadas, deberíamos observar estos archivos:

id_rsa.pub
id_dsa.pub

En caso de no estar creadas, ejecutar:

TERMINAL
  1. ssh-keygen -t rsa
  2. ssh-keygen -t dsa
  3. ssh-add

Ahora la idea es copiar el contenido de los archivos id_rsa.pub e id_dsa.pub dentro del archivo ~/.ssh/authorized_keys en el servidor.

En el cliente:

TERMINAL
  1. scp ~/.ssh/id_rsa.pub usuario@servidor:.ssh/1.pub
  2. scp ~/.ssh/id_dsa.pub usuario@servidor:.ssh/2.pub

En el servidor:

TERMINAL
  1. cd .ssh/
  2. cat 1.pub >> authorized_keys
  3. cat 2.pub >> authorized_keys


Repositorio: Medibuntu


Medibuntu (Multimedia, Entertainment & Distractions in Ubuntu, es decir, Multimedia, entretenimiento y distracciones en Ubuntu) fue un repositorio de paquetes de software que no pueden ser incluidos en la distribución Ubuntu por motivos como problemas legales de copyright, licenciamiento o restricciones de patentes. (Wikipedia, 2010)

Para configurar los repositorios de medibuntu, debemos ejecutar en el terminal:

TERMINAL
  1. sudo wget --output-document=/etc/apt/sources.list.d/medibuntu.list http://www.medibuntu.org/sources.list.d/$(lsb_release -cs).list && sudo apt-get --quiet update && sudo apt-get --yes --quiet --allow-unauthenticated install medibuntu-keyring && sudo apt-get --quiet update

Aplicaciones recomendadas: libdvdcss2, w32codecs, non-free-codecs, ffmpeg



REFERENCIA

Wikipedia. (3 de julio de 2010). Medibuntu. Recuperado de: https://es.wikipedia.org/wiki/Medibuntu



Repositorio: VirtualBox en Ubuntu


Oracle VM VirtualBox es un software de virtualización para arquitecturas x86/amd64, creado originalmente por la empresa alemana innotek GmbH. Actualmente es desarrollado por Oracle Corporation como parte de su familia de productos de virtualización. Por medio de esta aplicación es posible instalar sistemas operativos adicionales, conocidos como «sistemas invitados», dentro de otro sistema operativo «anfitrión», cada uno con su propio ambiente virtual. (Wikipedia, 2010)

Para configurar el repositorio de virtualbox en Ubuntu, debemos seguir las siguientes instrucciones, considerando sustituir la linea que corresponda a la distribución de Ubuntu en uso

Editamos el archivo /etc/apt/sources.list

TERMINAL
  1. nano /etc/apt/sources.list

Realizamos la siguiente modificación:

ARCHIVO /etc/apt/sources.list
  1. deb http://download.virtualbox.org/virtualbox/debian maverick contrib
  2. deb http://download.virtualbox.org/virtualbox/debian lucid contrib
  3. deb http://download.virtualbox.org/virtualbox/debian karmic contrib

Actualizamos los repositorios y configuramos la llave

TERMINAL
  1. aptitude update
  2. wget -q http://download.virtualbox.org/virtualbox/debian/oracle_vbox.asc -O- | sudo apt-key add -


REFERENCIA

Wikipedia. (3 de julio de 2010). VirtualBox. Recuperado de: https://es.wikipedia.org/wiki/VirtualBox



Repositorio: Mediainfo en Ubuntu


MediaInfo provee información técnica y de la etiqueta sobre un archivo video o audio. Éste es un software libre (gratuito y de libre acceso al código fuente: BSD o licencia) (Mediaarea.net, 2010)

Para configurar el repositorio de mediainfo en Ubuntu, debes ejecutar los siguientes comandos en el terminal:

TERMINAL
  1. sudo add-apt-repository ppa:shiki/mediainfo
  2. aptitude update


REFERENCIA

Mediaarea.net. (3 de julio de 2010). ¿Qué es MediaInfo? Recuperado de: https://mediaarea.net/es/MediaInfo



Repositorio: HandBrake en Ubuntu


HandBrake es un programa libre y de código abierto para la transcodificación multihilo de archivos de audio y video, para OS X, GNU/Linux y Windows.1 Fue desarrollada originalmente por Eric Petit en el 2003 para ripear una película de un DVD a un dispositivo de almacenamiento de datos de forma más sencilla. Desde entonces, el programa ha experimentado muchos cambios y revisiones. (Wikipedia, 2010)

Para configurar el repositorio de Handbrake en Ubuntu, se deben ejecutar los siguientes comandos en el terminal:

Editamos el archivo /etc/apt/sources.list

TERMINAL
  1. nano /etc/apt/sources.list

Realizamos la siguiente modificación:

ARCHIVO /etc/apt/sources.list
  1. deb http://ppa.launchpad.net/stebbins/handbrake-snapshots/ubuntu lucid main

Actualizamos los repositorios y configuramos la llave

TERMINAL
  1. aptitude update
  2. sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 816950D8


REFERENCIA

Wikipedia. (3 de julio de 2010). HandBrake. Recuperado de: https://es.wikipedia.org/wiki/HandBrake



Debian: SSH - En caso de cambio de identidad de un host


Debido a algún cambio en el host remoto al que intentamos conectarnos, como por ejemplo que le hayan reinstalado el sistema operativo, su clave pública puede cambiar, lo que ocasiona que al intentar conectarnos dicha clave no se corresponda con la que tenemos almacenada, por lo que saldrá un mensaje de advertencia de una posible suplantación de identidad.

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@

WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@

IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!

Someone could be eavesdropping on you right now (man-in-the-middle attack)!

It is also possible that the RSA host key has just been changed.

The fingerprint for the RSA key sent by the remote host is

c6:70:0f:ff:2d:a7:40:b8:82:e5:ed:35:b4:d6:77:ca.

Please contact your system administrator.

Add correct host key in /home/user/.ssh/known_hosts to get rid of this message.

Offending key in /home/user/.ssh/known_hosts:8

RSA host key for server has changed and you have requested strict checking.

Host key verification failed.

En caso de que en efecto estemos seguros de que no se trata de una suplantación, podemos editar el archivo donde se almacenan las claves publicas de los host a los cuales nos hemos conectado, y borrar la linea problemática, que en el caso de este ejemplo es la 8.

TERMINAL
  1. nano ~/.ssh/known_hosts

Un método alternativo es

TERMINAL
  1. ssh-keygen -R hostname


Impresora HP-1020 en Ubuntu


En caso de tener problemas para imprimir con una HP Laserjet 1020 sobre Ubuntu, se deben seguir los siguientes pasos:

Descargamos el driver

TERMINAL
  1. wget -O foo2zjs.tar.gz http://foo2zjs.rkkda.com/foo2zjs.tar.gz

Se descomprime y compila

TERMINAL
  1. sudo tar zxf foo2zjs.tar.gz
  2. cd foo2zjs
  3. sudo make

Descargarmos el firmware y compilamos

TERMINAL
  1. sudo ./getweb 1020
  2. sudo make install

Recompilamos el hotplug USB y el CUPS

TERMINAL
  1. sudo make install-hotplug
  2. sudo make cups

Conectamos y prendemos la impresora. Luego en el panel de configuración de la impresora (Sistema > Administración > Impresoras > Impresora Nueva) elegimos el driver foo2zjs.

En caso de que aun no funcione, se debe ejecutar el siguiente comando cada vez que se vaya a imprimir:

TERMINAL
  1. sudo cat /usr/share/foo2zjs/firmware/sihp1020.dl > /dev/usb/lp0


Ubuntu: Instalar fuentes comunes de Office en OpenOffice


Para instalar en OpenOffice las fuentes de uso común de Microsoft Office, como son Arial y Time New Roman entre otras, se debe ejecutar:

TERMINAL
  1. aptitude install msttcorefonts