Cómo instalar node.js con NVM

NVM o Node Version Manager es como nombre lo indica un manejador de versiones de node, igual que RVM lo es para Ruby o Virtualenv en Python. La idea es poder use poder ejecutar diferentes versiones de node y npm cada uno en un contenedor diferente sin afectar a las otras, asi tener un entorno con paquetes específicos para cada uno de nuestros proyectos.

Instalando

NVM no esta disponible para windows, puedes revisar en el repositorio del proyecto algunas herramientas alternativas

Debes asegurarte tener una versión de c++ en tu computador, para las distribuciones de Linux basadas en Debian funciona si ya tienes instalado el paquete build-essential.

Como indica su repositorio en github podemos instalarlo tenemos 3 alternativas:

1.- cURL, para ello debemos instalarlo con el manejador de paquetes de nuestra sistema operativo.

curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.29.0/install.sh | bash

2.- wget, viene instalado por defecto en las distribuciones mas populares de GNU/Linux

wget -qO- https://raw.githubusercontent.com/creationix/nvm/v0.29.0/install.sh | bash

3.- git, clonando el repositorio, para ello debes instalar git en tu computador

git clone https://github.com/creationix/nvm.git ~/.nvm && cd ~/.nvm && git checkout `git describe --abbrev=0 --tags`

Cómo usar NVM

Para descargar, compilar y instalar

nvm install <version>

donde <version> es el numero de la versión que quieren instalar, así:

nvm install 5.0

NVM permite instalar tantas versiones de node como necesites

Usar node

como ya dije es posible instalar varias versiones de node.js, por lo tanto es necesario especificarle a NVM cual versión queremos usar:

nvm use 5.0

¿Dónde se instala?

Para saber donde se encuentra nuestra instalación de node usamos el comando which:

nvm which <version>

Otros comandos

Listar versiones disponibles para instalar:

nvm ls-remote

Asignar una versión de node por defecto

nvm alias default node

podemos, si queremos, solo correr una versión especifica

nvm run 5.0 --version <script>

donde <script> es algún script que queramos correr con la versión especificada, así:

nvm run 5.0 --versión app.js

también podemos correr un comando especifico de una versión especifica de node, así:

nvm exec 5.0 node app.js

Más que node.js

Con NVM si así lo queremos podemos instalar io.js

nvm install io.js 3.3.1

Como notas es la misma nomenclatura que usamos para instalar node.js con un parámetro adicional “io.js”, de igual forma ocurre con todos los comandos descritos hasta acá.

 

 

Fuente: https://github.com/creationix/nvm

¿Qué es composer?

Ya en un articulo anterior explique cómo instalar composer? pero ¿qué es y para qué sirve?

Como su propia web lo describe, composer es un manejador de dependencias, es decir, todas aquellas clases PHP que hace uso nuestro proyecto y pero no desarrollamos nosotros.

En palabras sencillas

composer-esquema

composer.phar: precompilado ejecutable con el cual interactuamos para instalar, remover y actualizar paquetes.

packagist.org: sitio web y repositorio (sitio desde el cual se descargan los paquetes) principal de composer, nos permite buscar y examinar información de paquetes para usar en nuestro proyecto.

composer.json: archivo de configuración de composer para nuestro proyecto, es donde se especifican los paquetes que necesitamos, se coloca uno por cada proyecto.

Directorio vendor: los paquetes que especificamos en composer.json se descargan en una carpeta de nombre vendor que se coloca al mismo nivel que el archivo composer.json.

vendor/package: cuando intentas instalar un paquetes notarás que su nombre se compone de la estructura palabra1/palabra2, palabra1 es el identificador del autor o también conocido como vendor y palabra2 es el nombre del paquete, ejemplo:

intervention/image

donde intervention es el vendor y image el nombre del paquete. si un autor tiene varios paquetes la primera palabra permanece mientras que la segunda cambiará para cada paquete.

De esta misma forma se descargáramos un paquete por medio del composer, por ejemplo con:

php composer.phar require intervention/image

al terminal el proceso encontraríamos dentro de nuestra carpeta vendor un directorio de nombre intervention y dentro de este otro con el nombre image.

 

Para mayor información sobre las opciones del cli composer.phar recomiendo leer este articulo.

Crear, activar y desactivar entornos virtuales con Virtualenv

Creación

Bien una vez tengamos instalado virtualenenv (las instrucciones para instalarlo puedes encontrarlas en este acá) para crear un entorno virtual solo tenemos que escribir virtualenv y un nombre para nuestro entorno virtual, así:

~$ virtualenv my_enviroment
New python executable in my_enviroment/bin/python
Installing setuptools, pip, wheel...done.

Si queremos especificar una versión de python diferente a la que por defecto nos brinda el sistema operativo, podemos especificarlo con la opción -p de esta manera:

~$ virtualenv my_enviroment3 -p /usr/bin/python3

Activación

El paso anterior nos creará un directorio de con el nombre que le hayamos dado a nuestro entorno virtual, nuestro caso my_enviroment, dentro del el debemos buscar el script activate y pasarlo como argumento al comendo source:

~$ source my_enviroment/bin/activate

si todo va bien el promt de nuestra terminal debe verse similar a esto:

(my_enviroment):~$

cuando el promt se encuentre de esta forma, todo los cambios que hagamos a nuestro entorno python se hará de forma local sin afectar a la instalación del sistema.

Desactivación

Para desactivar el entorno virtual solo debemos escribir la palabra deactivate en nuestra terminal:

(my_enviroment):~$ deactivate

El promt volverá a su forma inicial sin el nombre del entorno virtual entre paréntesis al principio

Cómo instalar Whoops en Laravel 5.1

whoops-ssLamentablemente Whoops el paquete que nos permitía en la versión 4 de Laravel tener una interfaz de debug linda y amigable no viene incluido por defecto en Laravel 5.x, sin embargo no es tan complicado agregarlo.

En la carpeta de nuestro proyecto en Laravel escribimos esto en la terminal:

~$ composer require filp/whoops

esto modificará nuestro archivo composer.json, e instalará whoops en el directorio vendor de nuestro proyecto.

Luego abrimos con el editor de texto de nuestra preferencia el archivo app/Exceptions/Handler.php y editamos el método render() de la siguiente forma:

/**
 * Render an exception into an HTTP response.
 *
 * @param  \Illuminate\Http\Request  $request
 * @param  \Exception  $e
 * @return \Illuminate\Http\Response
 */
public function render($request, Exception $e)
{
    if ($this->isHttpException($e))
    {
        return $this->renderHttpException($e);
    }


    if (config('app.debug'))
    {
        return $this->renderExceptionWithWhoops($e);
    }

    return parent::render($request, $e);
}

/**
 * Render an exception using Whoops.
 * 
 * @param  \Exception $e
 * @return \Illuminate\Http\Response
 */
protected function renderExceptionWithWhoops(Exception $e)
{
    $whoops = new \Whoops\Run;
    $whoops->pushHandler(new \Whoops\Handler\PrettyPageHandler());

    return new \Illuminate\Http\Response(
        $whoops->handleException($e),
        $e->getStatusCode(),
        $e->getHeaders()
    );
}

Y eso es todo, ahora deberías tener tener whoops activo en tu proyecto.

 

Fuente: mattstauffer.co

Cómo instalar Composer

Estas instrucciones las puedes encontrar en la web de composer en su la sección download.

Abrimos una terminal y ejecutamos.

~$ curl -sS https://getcomposer.org/installer | php

Sino tenemos instalado curl podemos hacerlo a través del gestor de paquetes de nuestra distribución; si no podemos instalar curl podemos cambiar el comando de arriba por:

~$ php -r "readfile('https://getcomposer.org/installer');" | php

una vez hecho esto tendremos en nuestro computador un archivo de nombre composer.phar, el cual ejecutamos con:

~$ php composer.phar

y nos debe dar una salida parecida a esta:

   ______
  / ____/___  ____ ___  ____  ____  ________  _____
 / /   / __ \/ __ `__ \/ __ \/ __ \/ ___/ _ \/ ___/
/ /___/ /_/ / / / / / / /_/ / /_/ (__  )  __/ /
\____/\____/_/ /_/ /_/ .___/\____/____/\___/_/
                    /_/
Composer version 1.0-dev (b6bac0c2d31e4f84d607638277322d8d256e61af) 2015-11-29 17:21:38

Usage:
  command [options] [arguments]

Options:
  -h, --help                     Display this help message
  -q, --quiet                    Do not output any message
  -V, --version                  Display this application version
      --ansi                     Force ANSI output
      --no-ansi                  Disable ANSI output
  -n, --no-interaction           Do not ask any interactive question
      --profile                  Display timing and memory usage information
  -d, --working-dir=WORKING-DIR  If specified, use the given directory as working directory.
  -v|vv|vvv, --verbose           Increase the verbosity of messages: 1 for normal output, 2 for more verbose output and 3 for debug

Available commands:
  about           Short information about Composer
  archive         Create an archive of this composer package
  browse          Opens the package's repository URL or homepage in your browser.
  clear-cache     Clears composer's internal package cache.
  clearcache      Clears composer's internal package cache.
  config          Set config options
  create-project  Create new project from a package into given directory.
  depends         Shows which packages depend on the given package
  diagnose        Diagnoses the system to identify common errors.
  dump-autoload   Dumps the autoloader
  dumpautoload    Dumps the autoloader
  global          Allows running commands in the global composer dir ($COMPOSER_HOME).
  help            Displays help for a command
  home            Opens the package's repository URL or homepage in your browser.
  info            Show information about packages
  init            Creates a basic composer.json file in current directory.
  install         Installs the project dependencies from the composer.lock file if present, or falls back on the composer.json.
  licenses        Show information about licenses of dependencies
  list            Lists commands
  remove          Removes a package from the require or require-dev
  require         Adds required packages to your composer.json and installs them
  run-script      Run the scripts defined in composer.json.
  search          Search for packages
  self-update     Updates composer.phar to the latest version.
  selfupdate      Updates composer.phar to the latest version.
  show            Show information about packages
  status          Show a list of locally modified packages
  suggests        Show package suggestions
  update          Updates your dependencies to the latest version according to composer.json, and updates the composer.lock file.
  validate        Validates a composer.json and composer.lock

Si te dio una salida parecida, eso quiere decir que ya tienes composer funcional en tu equipo. Ahora solo resta un ultimo paso, para tener composer de forma global y no tener que descargar el archivo en cada proyecto en el cual vayamos a trabajar, debemos mover nuestro archivo composer.phar al directorio /usr/local/bin:

~$ sudo mv composer.phar /user/local/bin/composer

Ahora si escribimos composer en nuestra terminal, sin importar el directorio donde nos encontremos, debería producirse la misma salida que cuando escribimos php composer.phar.

~$ composer
   ______
  / ____/___  ____ ___  ____  ____  ________  _____
 / /   / __ \/ __ `__ \/ __ \/ __ \/ ___/ _ \/ ___/
/ /___/ /_/ / / / / / / /_/ / /_/ (__  )  __/ /
\____/\____/_/ /_/ /_/ .___/\____/____/\___/_/
                    /_/
Composer version 1.0-dev (b6bac0c2d31e4f84d607638277322d8d256e61af) 2015-11-29 17:21:38

Usage:
  command [options] [arguments]

Options:
  -h, --help                     Display this help message
  -q, --quiet                    Do not output any message
  -V, --version                  Display this application version
      --ansi                     Force ANSI output
      --no-ansi                  Disable ANSI output
  -n, --no-interaction           Do not ask any interactive question
      --profile                  Display timing and memory usage information
  -d, --working-dir=WORKING-DIR  If specified, use the given directory as working directory.
  -v|vv|vvv, --verbose           Increase the verbosity of messages: 1 for normal output, 2 for more verbose output and 3 for debug

Available commands:
  about           Short information about Composer
  archive         Create an archive of this composer package
  browse          Opens the package's repository URL or homepage in your browser.
  clear-cache     Clears composer's internal package cache.
  clearcache      Clears composer's internal package cache.
  config          Set config options
  create-project  Create new project from a package into given directory.
  depends         Shows which packages depend on the given package
  diagnose        Diagnoses the system to identify common errors.
  dump-autoload   Dumps the autoloader
  dumpautoload    Dumps the autoloader
  global          Allows running commands in the global composer dir ($COMPOSER_HOME).
  help            Displays help for a command
  home            Opens the package's repository URL or homepage in your browser.
  info            Show information about packages
  init            Creates a basic composer.json file in current directory.
  install         Installs the project dependencies from the composer.lock file if present, or falls back on the composer.json.
  licenses        Show information about licenses of dependencies
  list            Lists commands
  remove          Removes a package from the require or require-dev
  require         Adds required packages to your composer.json and installs them
  run-script      Run the scripts defined in composer.json.
  search          Search for packages
  self-update     Updates composer.phar to the latest version.
  selfupdate      Updates composer.phar to the latest version.
  show            Show information about packages
  status          Show a list of locally modified packages
  suggests        Show package suggestions
  update          Updates your dependencies to the latest version according to composer.json, and updates the composer.lock file.
  validate        Validates a composer.json and composer.lock

 

Fuente: getcomposer.org

Cómo instalar Virtualenv en Ubuntu 15.10

Lo primero que tenemos que hacer es instalar el paquete python-setuptools:

~$ sudo aptitude install python-setuptools

Luego con easy_install instalamos pip:

~$ sudo easy_install pip

Después con pip instalamos virtualenv:

~$ sudo pip install virtualenv

Debemos colocar sudo tanto para el comando easy_install como para pip, porque al igual que aptitude realizarán cambios en los directorios del sistema.

con esto ya tenemos instalado virtual en nuestro sistema operativo, listo para usar.