RSS

Preparando nuestro sistema: Kitsune’s Documentation!

05 Sep

Decidí registrarme para colaborar con la gente de Mozilla, para saber en que grupo quería colaborar me fijé en el siguiente link:

https://wiki.mozilla.org/Webdev/GetInvolved#support.mozilla.org_.28SUMO.29

De las opciones que ahí figuran me interesó el grupo de:

support.mozilla.org (SUMO)

Firefox Help is the support site for Firefox users. It helps millions of users every week through a knowledge base and support forum. It also provides collaboration and localization tools for the contributors. It uses technology like Python, Django, MySQL, Redis, Memcached, Elastic Search and more.

  • Fork us on Github: https://github.com/mozilla/kitsune
  • Who: Ricky Rosario (r1cky) & Will Kahn-Greene (willkg)
  • IRC: irc.mozilla.org/          Channel: #sumodev
  • Support on Bugzilla: https://bugzilla.mozilla.org/buglist.cgi?quicksearch=OPEN%20product%3Asupport.mozilla.org

Opté por ese grupo por el hecho de que usan Python y Django, y MySQL.

Me incentivó a formar parte de Mozilla como Contributor el hecho de que quiero empezar a poner en marcha lo que se de Python, Django, MySQL y Git y la mejor manera de hacerlo es contribuyendo y tratando de aportar a  esta comunidad que tanto me ayudó y me sigue ayudando.

Paso a contar mi experiencia preparando mi sistema para empezar a ponerme en acción.

La distro que decidí para usar es:

Linux Mint 13 Maya KDE de 32 bits: http://www.linuxmint.com/edition.php?id=115

Estas son las otras opciones dentro de Linux Mint 13 Maya: http://www.linuxmint.com/download.php

Elegí esta distro porque en los últimos años me fui inclinando por Mint y me vienen hablando también bastante bien de KDE, asi que le quise dar una oportunidad y la verdad todo marcha sobre ruedas con esta distro.

La guía para preparar el sistema es la siguiente: http://kitsune.readthedocs.org/en/latest/index.html, si bien está en inglés es entendible y sus pasos fácil de seguir. Aunque debo admitir que en ciertos momentos me bloqueé pero los hice estando en el chat, y con la ayuda y guía de los chicos, en especial de r1cky pude completar la guía de forma satisfactoria. Mi recomendación es la de seguir la guía estando en el chat, para poder consultar ante cualquier duda que tengamos.

Algo que hice antes de empezar con la guía, lo que hice fue actualizar mi Firefox de 12 que es el que trae esta distro a la 15 y cree un Bookmark: Mozilla_SUMO y ahí guardé los siguientes links:

Webdev/GetInvolved:

https://wiki.mozilla.org/Webdev/GetInvolved#support.mozilla.org_.28SUMO.29

Kitsune’s Documentation:

http://kitsune.readthedocs.org/en/latest/index.html

Hecho eso procedí con la guía.

Arranqué con PART 2: DEVELOPER’S GUIDE – INSTALLATION

Los Requerimientos del sistema son los siguientes:

  • Python 2.6 or 2.7
  • setuptools or pip
  • MySQL Server and client headers
  • Memcached Server
  • RabbitMQ
  • libxml and headers
  • libxslt and headers
  • libjpeg and headers
  • zlib and headers
  • LESS
  • Redis
  • Several Python packages. See Installing the Packages.
  • Elastic Search. Search covers installation, configuration, and running.

Python: La mayoría de las distros ya viene con Python, generalmente la versión 2.7, la mía es la versión 2.7.3.

setuptools or pip: pip es una herramienta para instalar y gestionar paquetes Python, es el reemplazo de easy_install.

Fuente: http://www.pip-installer.org/en/latest/index.html

Para instalar pip seguí los siguientes pasos.

Primero verifiqué la existencia de los siguientes paquetes en el repositorio de Mint:

sudo apt-cache search python-pip

python-pip – alternative Python package installer
python-pipeline – iterator pipelines for Python

Lo instalé: sudo apt-get install python-pip

Luego busqué:

sudo apt-cache search python-dev

libboost-python-dev – Boost.Python Library development files (default version)
python-dev – header files and a static library for Python (default)
libboost-mpi-python-dev – Python interface to the Message Passing Interface (MPI) (default version)

sudo apt-get install python-dev

python-dev: son los headers files de python sirven para que otras librerias puedan llamar y utilizar codigo de python al momento de compilar cosas python-dev es el nombre que le suelen dar quienes empaquetan cosas en distribuciones como ubuntu o debian o fedora. GRACIAS EMI, SOS UN GROSO (http://ar.linkedin.com/pub/emiliano-dalla-verde-marcozzi/13/166/349)

Busco ahora:

sudo apt-cache search build-essential

devscripts – scripts to make the life of a Debian Package maintainer easier
build-essential – Lista informativa de los paquetes build-essential
sbuild – Tool for building Debian binary packages from Debian sources

Lo instalo: sudo apt-get install build-essential

build-essential: tiene las instrucciones para instalar los paquetes esenciales para programar en C/C++ (y hacer otras cosas relacionadas con la creación de paquetes “.deb”.

Fuente: http://carlosruizortega.wordpress.com/2008/05/12/build-essential/

Una vez que los tres paquetes se encuentran instalados: python-pip, python-dev y build-essential hacemos lo siguiente:

sudo pip install –upgrade pip

Fuentehttp://www.saltycrane.com/blog/2010/02/how-install-pip-ubuntu/

MySQL: es un sistema de gestión de base de datos relacional, multihilo y multiusuario.

Necesitamos primero asegurarnos como en el paso anterior que se encuentran en nuestro repositorio, para eso realizamos las siguientes búsquedas:

sudo apt-cache search mysql-server

mysql-server – MySQL database server (metapackage depending on the latest version)
mysql-server-5.5 – MySQL database server binaries and system database setup
mysql-server-core-5.5 – MySQL database server binaries

sudo apt-get install mysql-server mysql-server-5.5 mysql-client-5.5 mysql-server-core-5.5

mysql-server: es un administrador que permite agregar, acceder y procesar los datos almacenados en una computadora.

mysql-client: sirve para lo que todos los clientes sql, para escribir consultas sql y ver/recibir los resultados. GRACIAS TOTAL A MURRAY.

Durante la instalación de MySQL nos va a pedir que ingresemos el password que va a usar nuestro usuario root.

Memcached Server: es un sistema distribuido de propósito general para caché basado en memoria, diseñado por Danga Interactive y que es muy usado en la actualidad por múltiples sitios web.

Fuente: http://es.wikipedia.org/wiki/Memcached

Para instalarlo seguí los siguientes pasos:

  1. Hice una actualización: sudo apt-get update
  2. Como en el paso anterior ya instalamos mysql-server, debemos instalar ahora: php5-mysql y php5 php5-memcache

Es una costumbre que tengo, la de revisar si se encuentran en los repositorios.

sudo apt-cache search php5-mysql

php5-mysql – MySQL module for php5

sudo apt-cache search php5-memcache

php5-memcache – memcache extension module for PHP5

Los instalamos: sudo apt-get install php5-mysql php5 php5-memcache

Después se procede a la instalación de Memcache:

sudo apt-get install memcached

Luego se instala php-pear, que es el repositorio que almacena memcache.

sudo apt-get install php-pear

Nota: La guía pide que se instale build-essential, pero este paso como es obvio lo omitimos. Por qué? Por que ya lo instalamos cuando hicimos la instalación de pip.

Por lo que pasamos al siguiente paso:

sudo pecl install memcache

pecl (PHP Extension Community Library): conceptualmente es similar a PEAR. PECL contiene extensiones C para compilar en PHP.

Fuente: http://en.wikipedia.org/wiki/PHP_Extension_Community_Library#PECL

Durante la instalación se realiza una pregunta, hay que contestar que sí: yes

Una vez que se completó esta instalación hay que hacer lo siguiente:

sudo echo “extension=memcache.so” > sudo /etc/php5/conf.d/memcache.ini

Lo que estamos haciendo es añadir memcache a memcache.ini

Fuente: https://www.digitalocean.com/community/articles/how-to-install-and-use-memcache-on-ubuntu-12-04

RabbitMQ: es un software de negociación de mensajes de código abierto, y entra dentro de la categoría de middleware de mensajería. Implementa el estándar Advanced Message Queuing Protocol (AMQP). El servidor RabbitMQ está escrito en Erlang y utiliza elframework Open Telecom Platform (OTP) para construir sus capacidades de ejecución distribuida y conmutación ante errores.

Fuente: http://es.wikipedia.org/wiki/RabbitMQ

Esta parte depende de ustedes, digo esto porqué, porque en el repositorio figura rabbitmq, pero no es la última versión, en mi caso opté por bajar la última disponible en el sitio oficial:

http://www.rabbitmq.com/download.html

Ahí vemos las distintas opciones de acuerdo a los distintos sistemas operativos y en caso de linux, de acuerdo a las distintas distros.

En mi caso descargué: rabbitmq-server_2.8.6-1_all.deb

Lo instalé de la siguiente manera: sudo dpkg -i rabbitmq-server_2.8.6-1_all.deb

Aclaración: En caso de que hagan como yo y usen la última versión disponible, recuerden que hay que cumplir con todas las dependencias, es decir instalar los paquetes erlang. Lo remarco de esta manera porque que cuando quise instalar directamente el .deb me dio problemas y lo solucioné instalando las dependencias, que lo hice mediante previo chequeo:

sudo apt-cache search erlang

El resultado fue bastante extenso, pero figura y procedí a su instalación:

sudo apt-get install erlang

Cuando terminó la instalación, volví a ejecutar el comando para instalar el .deb y lo hizo sin problema alguno.

libxml: es una biblioteca de código para analizar documentos XML. Es también la base de la biblioteca libxslt, que procesa hojas de estilo XSLT-1.0.

Fuente: http://es.wikipedia.org/wiki/Libxml

Esta instalación es muy sencilla, se encuentra en el repositorio, si la buscan:

sudo apt-cache search libxml

El resultado va a ser no muy largo pero si tal vez algo extenso, lo que hay que instalar es lo siguiente:

sudo apt-get install libxml2 libxml2-dev

libxslt

La instalación es igual a la anterior, buscamos en los repos:

sudo apt-cache search libxslt

Este resultado es un poco más corto que el anterior:

libxml-libxslt-perl – Perl interface to the GNOME libxslt library
libxslt1-dbg – XSLT 1.0 processing library – debugging symbols
libxslt1-dev – XSLT 1.0 processing library – development kit
libxslt1.1 – XSLT 1.0 processing library – runtime library
libxsltc-java – XSL Transformations (XSLT) compiler from Xalan-Java
php5-xsl – XSL module for php5
python-libxslt1 – Python bindings for libxslt1
python-libxslt1-dbg – Python bindings for libxslt1 (debug extension)
python-lxml – pythonic binding for the libxml2 and libxslt libraries
python-lxml-dbg – pythonic binding for the libxml2 and libxslt libraries (debug extension)
python3-lxml – pythonic binding for the libxml2 and libxslt libraries
python3-lxml-dbg – pythonic binding for the libxml2 and libxslt libraries (debug extension)
python-lxml-doc – vínculos «pitónicos» para las bibliotecas libxml2 y libxslt (documentación)
libidzebra-2.0-mod-alvis – IDZebra filter alvis (XSLT filter for XML)
libidzebra-2.0-mod-dom – IDZebra filter ‘dom’ (XML DOM internal document model with XSLT)
libsp-gxmlcpp-dev – S+P C++ wrapper for Gnome libxml2/libxslt
libsp-gxmlcpp1 – S+P C++ wrapper for Gnome libxml2/libxslt
libxml-filter-xslt-perl – Perl module for XSLT as a SAX Filter
libxslthl-java – XSLT syntax highlighting
swfmill – xml2swf and swf2xml processor
gambas2-gb-xml-xslt – Gambas XSLT component

Para instalarlo hay que hacer lo siguiente:

sudo apt-get install libxslt1.1 libxslt1.dev

zlib:  es una biblioteca de compresión de datos, de software libre/fuente abiertamultiplataforma desarrollada por Jean-loup Gailly y Mark Adler. Esta biblioteca provee una implementación del algoritmo DEFLATE usado en el programa de compresión gzip.

Fuente: http://es.wikipedia.org/wiki/Zlib

Si lo buscamos:

sudo apt-cache search zlib

El resultado va a ser bastante largo, pero lo único que debemos instalar es:

sudo apt-get install zlib-bin

LESS

La guía lo indica bien, antes de instalarlo debemos instalar Node.js y NPM.

Buscamos npm:

sudo apt-cache search npm

npm – package manager for Node.js

Instalación: sudo apt-get install npm

Luego:

sudo npm install less

Redis: es un motor de base de datos en memoria, basado en el almacenamiento en tablas de hashes (llave, valor) pero que opcionalmente puede ser usada como una base de datos durable o persistente.

Fuente: http://es.wikipedia.org/wiki/Redis

La instalación la seguí al pie de la letra del sitio oficial. Los pasos son los siguientes:

wget http://download.redis.io/redis-stable.tar.gz

tar xvzf redis-stable.tar.gz

cd redis-stable

make

Luego del make el sitio dice que si se quiere testear si trabaja de forma correcta o no, para hacerlo el comando es el siguiente:

make test

Aclaración: Me pasó que cuando quise hacer el test, tuve un mensaje de error y era porque no estaba cumpliendo una dependencia y la solucioné de la siguiente manera:

sudo apt-get install tcl8.5

Ejecuté de nuevo el test y funcionó perfectamente.

Sugerencia: Yo personalmente lo hice, total no cuesta nada y nos aseguramos de que todo va en orden.

Luego debemos hacer las siguientes copias, para ubicarlas en el lugar correcto. Para hacerlo lo que hay que hacer es ubicarnos en la siguiente ruta:

redis-stable/src/

Cuando descargamos redis y lo descomprimimos se creó un archivo con ese nombre: redis-stable y dentro de ésta se encuentra una carpeta con el nombre src, nos ubicamos ahí y realizamos las 2 siguientes copias:

  • sudo cp redis-server /usr/local/bin/
  • sudo cp redis-cli /usr/local/bin/

Luego de haber hecho esto incializamos Redis para probar que funciona, para hacerlo permanecemos en la ruta /redis-stable/src/ y ejecutamos el redis-server

Fuente: http://redis.io/topics/quickstart

Elastic Search: es un servidor de búsqueda basado en Apache Lucene.

Fuente: http://en.wikipedia.org/wiki/ElasticSearch

Para instalarlo seguí los siguientes pasos:

sudo apt-get install openjdk-7-jre -y

tar -xf elasticsearch.tar.gz
rm elasticsearch.tar.gz
sudo mv elasticsearch-* elasticsearch
sudo mv elasticsearch /usr/local/share
Nota: Se va a hacer uso de curl, en mi caso cuando lo quise ejecutar al comando que voy a colocar ahora, me dio un error, por problema de dependencia, que lo solucioné de la siguiente forma:
sudo apt-get install curl
Una vez satisfecha esta dependencia hay que seguir con esto:
mv *servicewrapper*/service /usr/local/share/elasticsearch/bin/
rm -Rf *servicewrapper*
sudo /usr/local/share/elasticsearch/bin/service/elasticsearch install
sudo ln -s `readlink -f /usr/local/share/elasticsearch/bin/service/elasticsearch` /usr/local/bin/rcelasticsearch
sudo service elasticsearch start
Bueno eso es todo por ahora, saludos.
 

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

 
A %d blogueros les gusta esto: