20150318

Instalar Softcover en Ubuntu

Hace unos meses, siguiendo links dentro del muy recomendado Ruby on Rails Tutorial, me enteré que es publicado con Softcover, una interesante herramienta/plataforma para la auto-publicación y distribución de escritos que trabaja sobre Ruby.

En un esfuerzo por proveer el tutorial «Aprende a programar» de una forma más amigable, decidí probar ésta nueva herramienta, pero encontré que el proceso de instalación puede ser un tanto complicado debido a todas las dependencias que maneja, por lo que a continuación detallo el proceso.

Nota: Se uso la versión 1.0.5 de Softcover sobre Xubuntu 14.10.

Preparando el entorno

Hay que tomar en cuenta que al momento de escribir ésta entrada, EventMachine (una de las dependencias de Softcover cómo gema) no funciona en versiones de Ruby de la rama 2.2.x, por lo que hay que utilizar la versiones de 2.1.x.

Para ello recomiendo usar RVM, que nos permite jugar con varias versiones de Ruby en un mismo sistema, lo cual puede hacerse por medio de las siguientes instrucciones en la consola.
   $ gpg --keyserver hkp://keys.gnupg.net --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3
    $ \curl -sSL https://get.rvm.io | bash -s
    $ echo "source $HOME/.rvm/scripts/rvm" >> ~/.bash_profile
Al completarse sólo hay que cerrar la consola para abrirla de nuevo y poder ver que versión de Ruby seleccionaremos para trabajar, con el siguiente comando.
    $ rvm list known
Éste listará todas las versiones de Ruby disponibles para ser instaladas, pero la que nos interesa es la más reciente de la rama 2.1.x, que al momento de escribir la entrada es la 2.1.5. Sin más, procedemos a instalarla. (Está atento a los mensajes de la consola por si pide la contraseña de administrador para poder continuar).
    $ rvm install ruby-2.1.5
Una vez que se haya terminado, recomiendo crear un gemset exclusivo para éste proyecto y un alias para poder seleccionar el entorno rápidamente.
    $ rvm use ruby-2.1.5
    $ rvm gemset create softcover
    $ rvm alias create softcover ruby-2.1.5@softcover
Con ésto, podremos seleccionar la version de Ruby y el gemset para softcover simplemente escribiendo
    $ rvm use softcover
Ya con el entorno listo, podemos instalar la gema de softcover.
    $ gem install softcover --no-rdoc --no-ri

Instalación de dependencias

Ahora viene la parte de las dependencias... ¡sí, más dependencias! Pero son necesarias para poder transformar sencillos escritos en Markdown a HTML, Epub, Mobi y PDF.

`apt` simplifica el trabajo con la mayoría de ellas, por lo que sólo hay que ejecutar en la consola
    $ sudo apt-get install default-jre
para elegir una versión de Java (en caso de que no tengas instalada alguna), y
    $ sudo apt-get install imagemagick inkscape nodejs phantomjs calibre texlive-full texlive-xetex
para un pesado conjunto de paquetes. (Recomiendo ir por un café o un bocadillo mientras se instalan estos últimos.)

Ahora sólo resta instalar Kindlegen, descargando la versión para Linux de (http://www.amazon.com/gp/feature.html?ie=UTF8&docId=1000765211). Descomprímelo y coloca la carpeta en algún lugar donde no sufra el riesgo de ser borrada después. (Yo lo tengo dentro de `$HOME/Applications`.)

Así, sólo es necesario crear un enlace de esa ubicación dentro de alguna ruta revisada en el `PATH`, como `/usr/local/bin`.
    $ cd Applications/kindlegen_linux_2.6_i386_v2_9/kindlegen
    $ sudo ln -s kindlegen /usr/local/bin/kindlegen
Por ultimo, procedemos a hacer lo mismo con Epubcheck. Lo descargamos de (https://github.com/IDPF/epubcheck/releases/download/v3.0/epubcheck-3.0.zip), para después descomprimirlo, colocarlo en un lugar seguro (`$HOME/Applications` en mi caso) y crear un enlace simbólico a la carpeta.
    $ cd /Applications
    $ sudo ln -s epubcheck-3.0 /usr/local/bin/epubcheck-3.0
Si todo salio correctamente, al ejecutar `softcover check`, todas las dependencias estarán marcadas como encontradas.

Probando la instalación

Para corroborar que todo funciona, crearemos un proyecto de ejemplo. (Si has cerrado la consola en algún momento, recuerda ejecutar `rvm use softcover`.)
    $ softcover new example_book
    $ cd example_book
    $ softcover build:all
Al completarse, debes encontrar los archivos generados dentro de `/ebooks` en el directorio del proyecto.

Así concluye

Si quieres saber más sobre cómo se utiliza Softcover para crear y distribuir tus propias aplicaciones, recomiendo leer el manual. (¿Mencione que cuentan con una plataforma que te permite monetizar el contenido?) También puedes ver las excelente publicaciones que se han hecho con ésta herramienta en su catalogo.
Publicar un comentario