Los alias que más uso en Manjaro GNU/Linux

Para Pacman:

alias pacact="sudo pacman -Syu" #Sincronizar con el repo y actualizar paquetes
alias pacin="sudo pacman -S" #Instalar paquetes
alias pacins="sudo pacma -U" #Instalar paquete desde un archivo
alias pacrem="sudo pacman -R" #Remover paquetes
alias pacruta="sudo pacman -Ql" #Buscar rutas de un paquete
alias pacborrar="sudo pacman -Rns" #Remover paquete, su configuracion y dependencias
alias pacinfo="pacman -Si" #Ver información de un paquete en el repo
alias pacbus="pacman -Ss" #Buscar paquete en los repos
alias pacinfol="pacman -Qi" #Ver información de paquete en db local
alias pacbusl="pacman -Qs" #Buscar paquete en db local
alias pacsy="sudo pacman -Sy" #Refrescar y actualizar db local de paquetes.
alias pacsyy="sudo pacman -Syy" #Refrescar y actualizar db local de paquetes y actualizar mirrorlist

Tmux

Para iniciar tmux con 3 ventanas. La primera con vim y dividida horizontalmente, la segunda con irssi para el IRC y la tercera con mocp para oir algo de música.

alias tmux="tmux new-session -d 'vim' \; split-window -d \; new-window -d 'irssi' \; new-window -d 'mocp' \; attach-session"

i3status con Dzen

Para iniciar una barra inferior para ver siempre un resumen del estatus de mi equipo con dzen y i3status

alias i3status-dzen="i3status | dzen2 -fg white -bg black -y 850 -fn 'Times New Roman' -p -dock &"

ej

Gitlab en Producción – Administrador de Repositorios Git

Qué es GitLab?

Es un aplicación para administrar proyectos con el control de versiones Git, basada en Ruby on Rails es software libre. Tiene un gran parecido tanto visual como funcionalmente a lo que es GitHub. En la página oficial del proyecto hay un demo que podemos probar.
En el podemos observar algunas de sus fucniones como manejar distintos proyectos, manejar usuarios, ver commits, ver archivos, ver ramas, ver gráficos, asignar tareas, ver meger, editar archivos, Wiki, entre otras.gitlab

Instlación (Debian Squeeze & ArchLinux)

1. Instalar las dependencias.

Como usuario root:
###Nota: los comandos con ‘#’ es como root y con ‘$’ como usuario git.
Debian:

# aptitude install build-essential zlib1g-dev libyaml-dev libssl-dev libgdbm-dev libreadline-dev libncurses5-dev libffi-dev curl git-core openssh-server redis-server checkinstall libxml2-dev libxslt-dev libcurl4-openssl-dev libicu-dev 

Archlinux:

# pacman -Sy --noconfirm --needed base-devel zlib libyaml openssl gdbm readline ncurses libffi curl git openssh redis libxml2 libxslt icu 

1.1. Instalar Python de no tenerlo:

Debian:

# aptitude install python2.6

Nota: La versión de python debe ser mayor 2.5 y menor a 3.x. Instalo la 2.6 porque es la que esta en los repositorios oficiales de Debian 6. Si quieren instalar la 2.7 deben agregar los repos de Debian 7. Para comprobar la version que tenemos instalada usamos python –version

ArchLinux:

# pacman -S python2

Gitlab busca por defecto un binario llamado python2 en /usr/bin/ sino lo tenemos debemos crearlo como un enlace simbolico de la siguiente forma:

# ln -s /usr/bin/python /usr/bin/python2

1.2. Instalar servidor de correo (Opcional)

Instala el servidor de correo si deseas recibir notificación por Correo.
El recomendado por Gitlab es Postfix, pero igual puedes instlar msmtp, sendmail, etc.
Debian:

# aptitude install postfix

Arch:

# pacman -S postfix

1.3. Instalar Ruby

Gitlab soporta Ruby mayor o igual a 1.9.3 y 2.0.0
Si tenemos instalada la versión 1.8 o menor debemos removerla
Debian:

# aptitude purge ruby1.8

Arch:

# pacma -R ruby1.8

La instalción en Debian 6:

$ mkdir /tmp/ruby && cd /tmp/ruby
$ curl --progress ftp://ftp.ruby-lang.org/pub/ruby/2.0/ruby-2.0.0-p247.tar.gz | tar xz
$ cd ruby-2.0.0-p247
$ ./configure
$ make
$ su -c "make install"
###Instalar el gems bundler usado para instalar Gitlab
gem install bundler --no-ri --no-rdoc

En Debian 7:

Se puede instalar la versión 2.0.0 de igual forma que en debian 6, o tambien se puede instalar la version 1.9.3 desde los repositorios:

# aptitude install ruby1.9.3

En Arch:

# pacman -S ruby

Eso te instalara la versión 2.0.0 de Ruby si quieres las versiones anteriores debes instalarlas desde los repos AUR con(si usas yaourt):

$ yaourt -S ruby1.9

1.4. Crear usuario para Gitlab

Debian:

# adduser --disabled-login --gecos 'GitLab' git

Arch:

# useradd -U -m -d /home/git git

1.5. Instalar Gitlab-Shell

GitLab Shell se encarga del acceso ssh y de gestión de almacenamiento, desarrollado especialmente para GitLab.

-Lo primero estar logueados como usuario git y cambiarnos al directorio /home/git

# su - git
$ cd
##Verificamos que estamos en el directorio con el comando pwd

-Clonar el repositorio:

$ git clone https://github.com/gitlabhq/gitlab-shell.git
$ cd gitlab-shell

-Copiar el config.yml.example a config.yml y editamos gitlab_url:

$ cp config.yml.example config.yml
$ vim/nano config.yml

En el gitlab_url colocamos el dominio que vallamos a utilizar para el Gitlab. Guardamos el archivo y salimos.
-Ejecutamos el instalador:

$ ./bin/install

1.6. Instalación de Gestor de Base de Datos.

– En este tutorial voy a utilizar PostgreSQL, de igual forma pueden usar MySQL, SQLite, MariaDB, etc.
En Debian 6:

# aptitude install postgresql-8.4 libpq-dev

Para utilizar la versión 9.1 deben instalarlos desde los repos de Wheezy

En Arch:

# pacman -S postgresql libpqxx

Ver aquí para mayor información de instalar postgresql en Arch

– Crear usuario git en Postgresql
Primero nos logueamos a la consola de postgres con el usuario postgres

# su - postgres -c 'psql -d template1'

Crear usuario y base de datos para el proyecto:

template1=# CREATE USER git WITH PASSWORD 'clave';
template1=# CREATE DATABASE gitlab OWNER git;
template1=# \q

-Probamos la conexión a la base de datos:

# su - git -c 'psql -d gitlab'
### Colocamos la contraseña si nos la pide

1.7. Clonar y Configurar el GitLab

-Cambiamos al usuario git y vamos al directorio de trabajo.

# su - git && cd /home/git

-Clonamos el proyecto

$ git clone https://github.com/gitlabhq/gitlabhq.git gitlab

-Entramos y cambiamos a la rama estable del proyecto:

$ cd gitlab
$ git checkout 5-4-stable
###Si queremos asegurarnos cual es la ultima versión estable ejecutamos:
# git branch -r

Si vemos algo como esto: Switched to branch ‘5-4-stable’ ya estamos en la rama.
-Ahora vamos a copiar el archivo ejemplo de configuración

$ cp config/gitlab.yml.example config/gitlab.yml
$ vim config/gitlab.yml

Abrimos el archivo y cambiamos el ‘localhost’ por el nombre del dominio y cambiamos el puerto sino estamos o no vamos a usar el puerto por defecto de nuestro servidor web.

-Damos permisos al usuario git para escribir el /log y /tmp

$ chown -R git log/
$ chown -R git tmp/
$ chmod -R 744  log/
$ chmod -R 744  tmp/

-Creamos algunos directorios necesarios.

###Satellites
$ mkdir ../gitlab-satellites
###Creamos carpetas de /tmp y le damos permisos
$ mkdir tmp/{pids,sockets}
$ chmod -R 744 tmp/{pids,sockets}
###Carpeta uploads
$ mkdir public/uploads
$ chmod -R 744 public/uploads

-Copiamos archivos de configuración de Unicorn.

$ cp config/unicorn.rb.example config/unicorn.rb

-Configuramos los datos del servidor Git al usuario git de acuerdo a lo que hemos colocado en config/gitlab.yml

$ git config --global user.name "GitLab"
$ git config --global user.email "gitlab@localhost"

-Configurar conexión a la base de datos.

$ cp config/database.yml.postgresql config/database.yml
$ vim config/database.yml

Cambiamos los parametros, database: gitlab, username: git y password: laClave. Si la base de datos la tenemos en otro servidor cambiamos host y port.

-Cambiamos a solo lectura el archivo.

$ chmod 640 config/database.yml

1.8. Instalar librerías necesarias con el gestor de paquetes de Ruby(gem).

# gem install charlock_holmes --version '0.6.9.4'
Para el siguiente paso debe tener instalado bundle
# gem install bundler --no-ri --no-rdoc

NOTA: Puede que no se instale el paquete modernizr porque le cambiaron el nombre a modernizr-rails, entonces pueden instalarlo manualmente o cambiando el nombre en el archivo Gemfile.

-Librerías para Postgres
Entramos en el proyecto sino no estamos en el.

$ cd /home/git/gitlab
$ bundle install --deployment --without development test mysql

1.9. Iniciar base de datos y activar funciones de Postgres (Como usuario git)

$ bundle exec rake gitlab:setup RAILS_ENV=production
Respondemos yes a la pregunta que nos hace. 

Con esto creara las tablas en la base de datos y creara un usuario administrador del cual nos mostrara los datos por pantalla.

2.0. Copiar script de incio.

Copiamos el script al directorio /etc/init.d/ y le damos permisos de ejecución

###Como usuario root
# cd /home/git/gitlab
# cp lib/support/init.d/gitlab /etc/init.d/gitlab
# chmod +x /etc/init.d/gitlab

Luego editamos el script /etc/init.d/gitlab
Buscamos la palabra “sudo” dentro del script y las borramos las 2 líneas que la contienen dejandolas así:

bash -l -c “$1”

echo “Usage: service gitlab {start|stop|restart|reload}” >&2

La otra opción es instalar sudo, pero yo no estoy trabajando con sudo en este tutorial.

3.0. Comprobar el estado de la aplicación

$ su - git -c "bundle exec rake gitlab:env:info RAILS_ENV=production"

– Iniciamos el script de inicio como root:

# /etc/init.d/gitlab start

3.1. Asegurarnos que todo esta corriendo bien, ejecutamos:

$ su - git -c "bundle exec rake gitlab:check RAILS_ENV=production"

3.2. Instalar y configurar el servidor web Nginx para correr la aplicación.

En Debian:

# aptitude install nginx

En Arch:

# pacman -S nginx

-Copiamos el archivo de configuración de Nginx al sites-available como root:

# cp lib/support/nginx/gitlab /etc/nginx/sites-available/gitlab

Editamos en el archivo el parametro “server_name” por el dominio que vamos a utilizar y puerto si es necesario.

-Creamos enlace simbólico en el sites-enabled para activar el servicio:

# ln -s /etc/nginx/sites-available/gitlab /etc/nginx/sites-enabled/gitlab

-Reiniciamos el servicio:

Debian:

# /etc/init.d/nginx start

Arch:

# systemctl restart nginx
# systemctl enable nginx

Y iniciamos el servidor Redis

# systemctl enable redis
# systemctl start redis

Con esto ya debería estar corriendo la aplicación en el servidor con el dominio que le hayan configurado. Si lo están haciendo localmente debería estar corriendo el http://127.0.0.1/ de estar configurado en el puerto por defecto.

Suerte.

Cualquier duda o comentario no duden en hacerlo. Saludos! o/

Fuentes:

Documentación Wiki ArchLinux – https://wiki.archlinux.org/index.php/Gitlab
Documentación oficial – https://github.com/gitlabhq/gitlabhq/blob/master/doc/install/installation.md
Instalar Postgres en Archlinux – https://wiki.archlinux.org/index.php/PostgreSQL#Installing_PostgreSQL
Archivos .service para Archlinux – https://gist.github.com/axilleas/3305554