Archivos de la categoría tutoriales

Tutoriales sobre diversos temas.

Mi Ubuntu Desktop — Puesta a punto de una máquina de escritorio

Ubuntu recién instalado

Para eliminar los resultados de búsqueda en línea en el tablero, busca en Unity: Seguridad y privacidad → Búsqueda y da clic sobre el interruptor de Incluir resultados de búsqueda en línea.

Para activar los espacios de trabajo, busca en Unity: Apariencia → Comportamiento y da clic sobre Activar las áreas de trabajo.

Activa el firewall:

sudo ufw enable

Buscar e instalar actualizaciones

Ya sea con la aplicación de Actualización de software o con:

sudo apt-get update
sudo apt-get upgrade

Navegador

El mejor navegador en este momento: Google Chrome
Para activar el WebGL a veces es necesario entrar a: chrome://gpu/
Instalar chat de voz y video para gmail: Chat de vídeo y voz de Google
Un color browser útil : Chroma
Un color picker útil : Eye Dropper
Una app para leer feeds: Feedly

Misceláneos

Algunas cosas útiles que he encontrado a través de los años y que siempre termino instalando:

sudo apt-get install byobu alpine testdisk mlock conky-all gddrescue
sudo apt-get install comix gimp gimp-ufraw gnote calibre inkscape unetbootin
sudo apt-get install denyhosts logwatch chkrootkit unrar curl nmap htop mtr-tiny
sudo apt-get install pdftk wkhtmltopdf imagemagick poppler-utils pandoc

Instala youtube-dl

Clonar en un directorio, entrar a él y después ejecutar:

make cleanall
make all
sudo make install

Configuración básica

Abre una terminal y teclea:

echo "export EDITOR=nano" >> ~/.bashrc

Esto pone a nano como el editor por defecto, en lugar de vi.

Activa TRIM para mejorar el rendimiento de tu disco duro de estado sólido

Si cuentas con un SSD, lo más recomendable es que pongas un trabajo cron a realizar las tareas de mantenimiento que necesita este tipo de disco duro:
Enable TRIM on SSD in Ubuntu for better performance (Using a daily cron job – recommended)

Ubuntu desktop y entretenimiento

Drivers de Nvidia

Agrega repositorio con drivers recientes de Nvidia: 3rd Party Repository: Ubuntu-x-swat

sudo add-apt-repository ppa:ubuntu-x-swat/x-updates
sudo apt-get update
sudo apt-get install nvidia-current

Para ajustar los tonos del monitor de acuerdo a la hora del día

f.lux para una pantalla agradable al trabajar durante la noche.

sudo add-apt-repository ppa:kilian/f.lux
sudo apt-get update
sudo apt-get install fluxgui

Para escuchar música

Un reproductor de música decente: Clementine

sudo add-apt-repository ppa:me-davidsansome/clementine
sudo apt-get update
sudo apt-get install clementine

Ubuntu para desarrollo de software

git es mi herramienta predilecta para control de versiones, y la necesito para instalar herramientas de trabajo como rbenv y Ruby: Cómo instalar git

Para facilitar los cambios de directorio en la terminal: z

git clone https://github.com/rupa/z ~/z
echo '. ~/z/z.sh' >> ~/.bashrc

Ruby, mi lenguaje favorito en estos momentos: Cómo instalar Ruby

Si te interesa el gamedev en Ruby, checa los prerequisitos para Ubuntu: Getting Started on Linux

Y estas las gemas necesarias para darle rienda suelta al hobby:

gem install gosu chipmunk texplay lotu

Otro ambiente con el que me estoy involucrando últimamente es Node.js, aquí la guía de cómo instalarlo en Ubuntu.

PostgreSQL es una base de datos sólida y robusta: Cómo instalar PostgreSQL

Cómo instalar git en Ubuntu 13.10

Unos artículos atrás había comentado ya, un poco acerca de git y cuan grandioso es. :)

Instalación

Abre una terminal y teclea:

sudo apt-get install git

Listo, ya puedes usar git.

Para probar tu instalación teclea esto:

git --version

En mi caso presenta: git version 1.8.3.2.

Configuración

Es recomendable ejecutar los siguientes comandos para propósitos de identificación. Estos datos serán utilizados para marcar los commits que realices.

git config --global user.name "Pon aquí tu nombre"
git config --global user.email "pon@aqui.tu.correo"

Para tener texto en color:

git config --global color.ui "auto"

Para habilitar la detección automática del número de hilos a usar al empacar repositorios (bueno para computadoras multi-CPU o multi-núcleo):

git config --global pack.threads "0"

Aquí algunos alias que tengo dados de alta en mi ~/.gitconfig, ayudan a teclear menos en la terminal:

[alias]
    l = log --oneline --decorate --graph
    co = checkout
    ci = commit
    man = help
    h = help
    a = add
    f = fetch
    d = diff
    dc = diff --cached
    dt = difftool
    dtc = difftool --cached
    ds = diff --stat
    dsc = diff --stat --cached
    s = status --short --branch
    b = branch
 
[credential]
    helper = cache

Actualización

Para actualizar a una versión más reciente, sólo descarga el archivo y realiza los pasos descritos arriba: descomprime, compila e instala.

Si lo instalaste desde los repositorios, las actualizaciones te aparecerán en la aplicación de Actualización de software de Ubuntu.

GitHub Social Code Hosting

Si tienes un proyecto open source y quieres un servicio de hospedaje de código y control de versiones premium sin pagar un centavo, prueba con GitHub.
También cuentan con soporte para proyectos privados en planes.

Tutoriales

Cómo instalar Node.js en Ubuntu 13.10

Node.js es una plataforma construida sobre el JavaScript runtime de Chrome, útil para crear aplicaciones de red rápidas y escalables.

Veamos como instalarlo en Ubuntu:

sudo apt-get install python g++ make
sudo add-apt-repository ppa:chris-lea/node.js
sudo apt-get update
sudo apt-get install nodejs

Prueba que esté todo bien revisando las versiones de node y npm:

node -v #v0.10.24
npm -v #1.3.21

Instala un par de cosas útiles:

npm install -g yo grunt-cli bower jake
npm install generator-angular generator-karma jshint uglify-js karma-jasmine karma-chrome-launcher karma-mocha karma-phantomjs-launcher

Hablo de Yeoman, Grunt y Bower.

Y un par de extensiones para Yeoman:
generator-angular: Yeoman generator for AngularJS
generator-karma: Yeoman generator for Karma

Ya con Node.js instalado, podemos echarle un ojo al tutorial de AngularJS ¿no? ;)

Referencia

Installing from package managers
NPM modules won’t install globally without sudo

Sin sonido HDMI en laptop con ATI Radeon HD 4200 RS880 en Ubuntu

Si tienes sonido en las bocinas de tu laptop pero al conectar el cable HDMI a una televisión no se oye nada, hay varias cosas que puedes probar: ajustar el volumen y verificar que no esté en mute la salida.

Si a pesar de todo sigues sin sonido, espero esto te ayude.

Abre una terminal y teclea:

gksudo gedit /etc/default/grub

Busca esta línea:

GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"

Y cámbiala por esta otra:

GRUB_CMDLINE_LINUX_DEFAULT="quiet splash radeon.audio=1"

Por último:

sudo update-grub

¡Reinicia y listo!

Referencia

Fast video playback with no sound

Mi Ubuntu Desktop — Puesta a punto de una Alienware M11x R2

¿Qué hacer con una Alienware M11x R2 que trae por defecto Windows 7?

Instalarle Ubuntu, por supuesto. Je.
Estos son mis apuntes.

Ubuntu recién instalado

Para comenzar, no me late que aparezcan resultados de Amazon en mi menú de aplicaciones. Esto lo soluciona:

sudo apt-get remove unity-lens-shopping

Activa el firewall:

sudo ufw enable

Buscar e instalar actualizaciones

Ya sea con la aplicación de Actualización de software o con:

sudo apt-get update
sudo apt-get upgrade

Navegador

El mejor navegador en este momento: Google Chrome
Instalar chat de voz y video para gmail: Chat de vídeo y voz de Google
Instalar un color browser útil : Chroma
Instalar un color picker útil : Eye Dropper
Y una app para leer feeds: Feedly

Misceláneos

Algunas cosas útiles que he encontrado a través de los años y que siempre termino instalando:

sudo apt-get install byobu alpine testdisk mlock conky-all gddrescue
sudo apt-get install comix gimp gimp-ufraw gnote calibre inkscape unetbootin
sudo apt-get install denyhosts logwatch chkrootkit unrar curl nmap htop mtr-tiny
sudo apt-get install pdftk wkhtmltopdf imagemagick poppler-utils pandoc

Instala youtube-dl

Clonar en un directorio, entrar a él y después ejecutar:

make cleanall
make all
sudo make install

Configuración básica

Abre una terminal y teclea:

echo "export EDITOR=nano" >> ~/.bashrc

Esto pone a nano como el editor por defecto, en lugar de vi.

Activa TRIM para mejorar el rendimiento de tu disco duro de estado sólido

Si cuentas con un SSD, lo más recomendable es que pongas un trabajo cron a realizar las tareas de mantenimiento que necesita este tipo de disco duro:
Enable TRIM on SSD in Ubuntu for better performance (Using a daily cron job – recommended)

Ubuntu desktop y entretenimiento

La Alienware M11x R2 cuenta con la tecnología Optimus de nVidia y Ubuntu no trae soporte para esta tecnología, por lo tanto es necesario instalar un software que nos ayude a tomar control sobre la tarjeta de video (y de paso que no consuma tanta energía cuando no está siendo usada): Instala Bumblebee

Si tienes algún problema con los drivers y/o la pantalla, es posible que encuentres la solución aquí.

Para ajustar los tonos del monitor de acuerdo a la hora del día

f.lux para una pantalla agradable al trabajar durante la noche.

Para escuchar música

Un reproductor de música decente: Clementine
Puedes descargar la versión más reciente de Clementine para Ubuntu desde el PPA oficial:

sudo add-apt-repository ppa:me-davidsansome/clementine
sudo apt-get update
sudo apt-get install clementine

Ubuntu para desarrollo de software

git es mi herramienta predilecta para control de versiones, y la necesito para poder instalar otras cosas como Ruby y rbenv: Cómo instalar git

Para facilitar los cambios de directorio en la terminal: z

git clone https://github.com/rupa/z ~/z
echo '. ~/z/z.sh' >> ~/.bashrc

Ruby, qué puedo decir, es mi lenguaje favorito en estos momentos, el que me abrió los ojos a la programación funcional, hasta que llegue otro que me permita ser más productivo: Cómo instalar Ruby.

Si te interesa el gamedev en Ruby, checa los prerequisitos para Ubuntu: Getting Started on Linux

Y estas las gemas necesarias para darle rienda suelta al hobby:

gem install gosu chipmunk texplay lotu

Otro ambiente con el que me estoy involucrando últimamente es Node.js, aquí la guía de cómo instalarlo en Ubuntu.

PostgreSQL es una base de datos sólida y robusta: Cómo instalar PostgreSQL

emacs era mi editor de código favorito, aquí la guía para instalarlo: Cómo instalar emacs

Cómo instalar Google Chrome en Ubuntu 13.10

Selecciona de aquí la que gustes: Chrome Release Channels

Después de que descargues el .deb, da doble clic sobre él, te aparecerá el Centro de software de Ubuntu, da clic sobre Instalar y listo.

Ubuntu 12.10 y anteriores

Instala dependencias

Abre una terminal y teclea:

sudo apt-get install libxss1 libnss3-1d libgconf2-4

Descarga el navegador

Bájalo de aquí Navegador Chrome, o teclea en una terminal:

Para la versión de 64bit:

wget https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb

Para la versión de 32bit:

wget https://dl.google.com/linux/direct/google-chrome-stable_current_i386.deb

Ahora, sigue con la instalación dándole doble clic al .deb que descargaste o teclea en la terminal:

sudo dpkg -i google-chrome-stable_current_amd64.deb

¡Listo, ya cuentas con Google Chrome en tu máquina! ;)

Error: El paquete es de mala calidad

Si al tratar de instalar Google Chrome en Ubuntu te aparece un diálogo que dice:

El paquete es de mala calidad
 
No se permite la instalación de cualquier paquete que viole los estándares de calidad.
Eso podría causar problemas serios a su equipo. Contacte con la persona u organización
que le proporcionó este archivo de paquete e incluya los detalles a continuación.
 
Detalles:
Lintian check results for /home/victor/Descargas/google-chrome-stable_current_amd64.deb:
E: google-chrome-stable: file-in-etc-not-marked-as-conffile etc/cron.daily/google-chrome

Instálalo con el procedimiento manual descrito arriba, usando sudo dpkg -i …

Referencia

Install Latest Google Chrome in Ubuntu 12.10/12.04/11.10/Linux Mint

Cómo compilar e instalar Emacs 24.3 en Ubuntu 13.04

Emacs se ha convertido en mi editor de código favorito, aquí presento los pasos necesarios para compilarlo e instalarlo en Ubuntu a partir del código fuente (ya sabes, la versión más reciente aún no se encuentra en los repositorios oficiales). ;)

El procedimiento para hacernos con la versión más reciente de Emacs es descargar el código fuente, descomprimir el archivo, instalar las dependencias necesarias para compilarlo, compilar el código fuente e instalar.

Al momento de editar este artículo, la última versión disponible era la 24.3
Revisa cuál es la más reciente aquí.

Instalación

Abre una terminal, ingresa al directorio en donde se va a descargar el código fuente de Emacs (por ejemplo ~/tmp), luego teclea lo siguiente:

1
2
3
4
5
6
wget http://ftp.gnu.org/pub/gnu/emacs/emacs-24.3.tar.gz
tar -xzvf emacs-24.3.tar.gz
sudo apt-get install xorg-dev libjpeg-dev libpng-dev libgif-dev libtiff-dev autoconf automake libgconf2-dev libgpm-dev libtool libdbus-1-dev libgtk2.0-dev libm17n-dev libncurses-dev libotf-dev librsvg2-dev libXpm-dev texinfo
cd emacs-24.3
./configure
make

Prueba si se compiló bien:

src/emacs -q

Si no hubo problemas para ejecutarlo, instálalo con:

sudo make install

Listo, para probar tu instalación teclea esto:

emacs &

Cierra la aplicación, cerrando la ventana o con la combinación Control+x+c, que usualmente se denota así:

C-x-c

Un ambiente más amigable: emacs-starter-kit

Primero debemos agregar el repositorio donde se encuentra el starter-kit:

gedit ~/.emacs.d/init.el

Y agrega estas líneas:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
;; Agrega el repositorio de paquetes Marmalade para poder instalar el starter-kit
(require 'package)
(add-to-list 'package-archives
             '("marmalade" . "http://marmalade-repo.org/packages/") t)
(package-initialize)
 
;; Instala automáticamente paquetes que hagan falta
(when (not package-archive-contents)
  (package-refresh-contents))
 
;; Agrega los paquetes que desees a esta lista, en mi caso los que ocupo son estos:
(defvar my-packages '(starter-kit ruby-mode ruby-end haml-mode sass-mode scss-mode coffee-mode)
  "A list of packages to ensure are installed at launch.")
 
(dolist (p my-packages)
  (when (not (package-installed-p p))
    (package-install p)))

Inicia Emacs y… ¡Listo, a programar!

Configuración

Para personalizar Emacs, abre una terminal y teclea:

gedit ~/.emacs.d/$USER.el

A continuación presento el contenido del mío:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
; tab width to two spaces
(setq-default indent-tabs-mode nil)
(setq-default tab-width 2)
 
; move across buffers
; http://stackoverflow.com/questions/91071/emacs-switch-active-window
(global-set-key (kbd "S-<up>") 'windmove-up)
(global-set-key (kbd "S-<down>") 'windmove-down)
(global-set-key (kbd "S-<right>") 'windmove-right)
(global-set-key (kbd "S-<left>") 'windmove-left)
 
; resize buffers
; http://www.emacswiki.org/emacs/WindowResize
(global-set-key (kbd "S-C-<left>") 'shrink-window-horizontally)
(global-set-key (kbd "S-C-<right>") 'enlarge-window-horizontally)
(global-set-key (kbd "S-C-<down>") 'shrink-window)
(global-set-key (kbd "S-C-<up>") 'enlarge-window)
 
; default theme
(load-theme 'wombat)
 
; default global mode
; http://stackoverflow.com/questions/6378831/emacs-globally-enable-whitespace-mode
(global-whitespace-mode 1)
(column-number-mode 1)
 
; font settings
;(set-face-attribute 'default nil :height 110)
(if (eq window-system 'x)
  (set-default-font "DejaVu Sans Mono-13"))
 
; incrementar/decrementar el tamaño de la fuente
(defun sacha/increase-font-size ()
  (interactive)
  (set-face-attribute 'default
                      nil
                      :height
                      (ceiling (* 1.10
                                  (face-attribute 'default :height)))))
(defun sacha/decrease-font-size ()
  (interactive)
  (set-face-attribute 'default
                      nil
                      :height
                      (floor (* 0.9
                                  (face-attribute 'default :height)))))
(global-set-key (kbd "C-+") 'sacha/increase-font-size)
(global-set-key (kbd "C--") 'sacha/decrease-font-size)
 
 
; Agregar modo CSS para abrir así los archivos .scss
(add-to-list 'auto-mode-alist '("\\.scss$" . scss-mode))
 
; Agregar modo coffeescript para abrir así los archivos .coffee.erb
(add-to-list 'auto-mode-alist '("\\.coffee.erb$" . coffee-mode))
 
;; https://github.com/bbatsov/emacs-dev-kit/blob/master/ruby-config.el
;; Rake files are ruby, too, as are gemspecs, rackup files, and gemfiles.
(add-to-list 'auto-mode-alist '("\\.rake$" . ruby-mode))
(add-to-list 'auto-mode-alist '("Rakefile$" . ruby-mode))
(add-to-list 'auto-mode-alist '("\\.gemspec$" . ruby-mode))
(add-to-list 'auto-mode-alist '("\\.ru$" . ruby-mode))
(add-to-list 'auto-mode-alist '("Gemfile$" . ruby-mode))
(add-to-list 'auto-mode-alist '("Guardfile$" . ruby-mode))
(add-to-list 'auto-mode-alist '("\\.rabl$" . ruby-mode))
 
;; We never want to edit Rubinius bytecode
(add-to-list 'completion-ignored-extensions ".rbc")
 
;; Load ruby-end minor mode when ruby-mode is loaded
;; http://stackoverflow.com/questions/4767557/how-do-i-get-hs-minor-mode-to-load-automatically-on-php-mode-in-emacs
(add-hook 'ruby-mode-hook (lambda () (ruby-end-mode 1)))
;(add-to-list 'load-path "/home/victor/.emacs.d")
;(require 'ruby-end)
 
;transparent emacs!
(defun djcb-opacity-modify (&optional dec)
  "modify the transparency of the emacs frame; if DEC is t,
    decrease the transparency, otherwise increase it in 5%-steps"
  (let* ((alpha-or-nil (frame-parameter nil 'alpha)) ; nil before setting
         (oldalpha (if alpha-or-nil alpha-or-nil 100))
         (newalpha (if dec (- oldalpha 5) (+ oldalpha 5))))
    (when (and (>= newalpha frame-alpha-lower-limit) (<= newalpha 100))
      (modify-frame-parameters nil (list (cons 'alpha newalpha))))))
 
;; C-8 will increase opacity (== decrease transparency)
;; C-9 will decrease opacity (== increase transparency
;; C-0 will returns the state to normal
(global-set-key (kbd "C-8") '(lambda()(interactive)(djcb-opacity-modify)))
(global-set-key (kbd "C-9") '(lambda()(interactive)(djcb-opacity-modify t)))
(global-set-key (kbd "C-0") '(lambda()(interactive)
                               (modify-frame-parameters nil `((alpha . 100)))))

Referencias

Installing Emacs from Source on Ubuntu
Emacs Starter Kit

Cómo instalar Ruby 2.0 con rbenv en Ubuntu 13.10

Después de haber pasado de instalar Ruby a mano, a instalarlo usando el cómodo RVM, me he ido ahora por rbenv.

Es menos intrusivo, y se siente más pulido que el propio RVM.

Preliminares

Vas a necesitar git, instálalo siguiendo esta guía.

Instalación de rbenv

¿Instalación local o en un VPS?

Si vas a instalar Ruby para desplegar aplicaciones en un VPS (Virtual Private Server, tipo Linode), es recomendable crear un usuario específico para ello.

Si deseas una instalación local, sáltate este paso y pasa a clonar el repositorio directamente en tu $HOME

sudo adduser deployer
sudo su deployer

Clona el repositorio

git clone git://github.com/sstephenson/rbenv.git ~/.rbenv

Agrega ~/.rbenv/bin al $PATH para tener acceso al comando rbenv.

echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bashrc

Agrega rbenv init a tu shell para habilitar los shims y la función de autocompletar.

echo 'eval "$(rbenv init -)"' >> ~/.bashrc

Reinicia tu shell para que los cambios surtan efecto.

exec $SHELL

El mejor amigo de rbenv: ruby-build

ruby-build es un plugin que te permite instalar las diferentes versiones de Ruby de una manera sencilla y accesible.

El proyecto ruby-build nos permite usar el comando rbenv install para instalar nuevas versiones de Ruby.

mkdir -p ~/.rbenv/plugins
cd ~/.rbenv/plugins
git clone git://github.com/sstephenson/ruby-build.git

Instalación de Ruby

Instala los prerequisitos (sacados de los que lista RVM como requisitos para Ubuntu):

sudo apt-get install bison libreadline-dev libyaml-dev libsqlite3-dev sqlite3 libxml2-dev libxslt-dev autoconf texinfo libncurses-dev automake libssl-dev

Para ver la lista de versiones disponibles, teclea en una terminal:

rbenv install --list

Cuando salgan nuevas versiones de Ruby, para poder instalarlas, teclea en una terminal:

cd ~/.rbenv
git pull
cd ~/.rbenv/plugins/ruby-build
git pull

Ahora, para instalar Ruby versión 2.1.0, y ponerlo como la versión por defecto, teclea en la terminal:

rbenv install 2.1.0
rbenv rehash
rbenv global 2.1.0

Con Ruby instalado y configurado, al escribir esto:

ruby -v

Debe aparecer algo como:

ruby 2.1.0p0 (2013-12-25 revision 44422) [x86_64-linux]

Verifica si hay actualizaciones para el administrador de paquetes gem:

gem update --system

También verifica si hay actualizaciones para las gemas que vienen instaladas por defecto:

gem update

¡Listo, ya puedes ejecutar código Ruby en tu máquina!

Instalación de Rails

Para instalar la versión estable más reciente de Rails, ejecuta:

gem install rails
rbenv rehash

Teclea:

rails --version

Debe aparecer algo como:

Rails 4.0.2

Recuerda usar rbenv rehash

Después de instalar una nueva versión de Ruby, o cualquier gema que provea ejecutables, teclea:

rbenv rehash

Esto pondrá a tu disposición los ejecutables instalados por Ruby y las gemas.

Cómo descargar videos de YouTube en Ubuntu con youtube‑dl

Para instalar la última versión directa desde el repositorio en github, necesitarás instalar git.

Clona el repo de youtube-dl, compila e instala, en una terminal teclea:

git clone https://github.com/rg3/youtube-dl.git ~/development/github/youtube-dl
cd ~/development/github/youtube-dl
make all
sudo make install

Para usarlo sólo ve al directorio donde desees que se guarde el archivo, copia la URL de algún video de YouTube y ponlo delante del comando youtube-dl, de esta manera:

youtube-dl http://www.youtube.com/watch?v=I1c9KGbgxck

Espera a que finalize la descarga y listo, ¡un video más para la colección!

Cómo ver las resoluciones y formatos soportados

youtube-dl --list-formats http://www.youtube.com/watch?v=I1c9KGbgxck

Lo cual muestra:

[youtube] Setting language
[youtube] I1c9KGbgxck: Downloading video webpage
[youtube] I1c9KGbgxck: Downloading video info webpage
[youtube] I1c9KGbgxck: Extracting video information
Available formats:
37      :       mp4     [1080x1920]
46      :       webm    [1080x1920]
22      :       mp4     [720x1280]
45      :       webm    [720x1280]
35      :       flv     [480x854]
44      :       webm    [480x854]
34      :       flv     [360x640]
18      :       mp4     [360x640]
43      :       webm    [360x640]
5       :       flv     [240x400]
17      :       mp4     [144x176]

Digamos que te interesa bajar el video en formato, webm en resolución 720×1280, que viene siendo el número 45, entonces teclea en tu terminal:

youtube-dl -f 45 http://www.youtube.com/watch?v=I1c9KGbgxck
Si no se le especifica un formato, youtube-dl automáticamente descargará el archivo con la más alta calidad, es decir el que aparece hasta arriba en la lista de formatos.

¿Qué otros proveedores soporta youtube-dl?

youtube-dl --list-extractors

En la versión utilizada aquí (2012.09.27) aparecen estos:

youtube:playlist
youtube:user
youtube:search
youtube
metacafe
dailymotion
video.google
video.google:search
photobucket
video.yahoo
video.yahoo:search
DepositFiles
facebook
blip.tv:user
blip.tv
vimeo
myvideo
comedycentral
escapist
collegehumor
xvideos
soundcloud
infoq
mixcloud
stanfordoc
mtv
Youku
xnxx
generic

Cómo arreglar el infame ERROR: unable to download video

Si al tratar de descargar algún video te aparece algo como esto:

youtube-dl http://www.youtube.com/watch?v=I1c9KGbgxck
[youtube] Setting language
[youtube] I1c9KGbgxck: Downloading video webpage
[youtube] I1c9KGbgxck: Downloading video info webpage
[youtube] I1c9KGbgxck: Extracting video information
 
ERROR: unable to download video

Seguramente es porque necesitas una actualización, abre una terminal y teclea lo siguiente:

sudo youtube-dl -U

Y listo, happy downloading! ;)

Ayuda

El programa cuenta con muchas opciones, para verlas teclea:

youtube-dl -h

Cómo instalar LEMP en Ubuntu 13.10 — Linux nginx MySQL PHP

Instalación de nginx

Ligero, estable, buena arquitectura, rápido para servir contenido estático.

Aquí la guía para instalar nginx en Ubuntu:

nginx=development # usa nginx=stable para la versión estable
sudo add-apt-repository ppa:nginx/$nginx
sudo apt-get update
sudo apt-get install nginx

Al momento de escribir este artículo nginx -v reporta:

nginx version: nginx/1.5.6

Inicia el servidor

sudo service nginx start

Ahora en tu navegador ve hacia: http://localhost

Deberías ver algo como esto:

Welcome to nginx!

Siguiente, MySQL.

Instalación de MySQL

sudo apt-get install mysql-server mysql-client libmysqlclient-dev

Prueba si todo funciona bien:

mysql -uroot -pxxx

Donde xxx es la contraseña que especificaste durante la instalación de MySQL.

Para cambiar la contraseña de la cuenta root, ejecuta el siguiente comando después de ingresar a MySQL:

SET PASSWORD FOR 'root'@'localhost' = PASSWORD('yyy');

Sustituye yyy por la nueva contraseña.

Si en algún momento necesitas resetear la contraseña del root del servidor MySQL, ejecuta el siguiente comando:

sudo dpkg-reconfigure mysql-server-5.5

Puede que la versión cambie, si es así, puedes ver información sobre el paquete mysql-server con:

dpkg -s mysql-server

Mejorando la seguridad

Ejecuta el siguiente comando y contesta a todas las preguntas:

mysql_secure_installation

Listo, vamos por PHP.

Instalación de PHP

Necesito PHP para algunos sitios que utilizan WordPress y los foros de Simple Machines.

Así que, si hay que instalar PHP, hay que hacerlo con lo mejor: PHP-FPM

Sin más, dale:

sudo apt-get install php5-fpm

Establece algunos valores sanos para nginx en:

sudo nano /etc/nginx/nginx.conf

Y cambia:

keepalive_timeout 65;

Por:

keepalive_timeout 5;

Esto le indica a nginx que corte cualquier petición hecha por algún cliente que dilate más de 5 segundos.

Configura nginx para que pueda servir archivos .php, modifica:

sudo nano /etc/nginx/sites-available/default

Y asegúrate de que estas líneas se vean así:

# redirect server error pages to the static page /50x.html
#
error_page 500 502 503 504 /50x.html;
location = /50x.html {
        root /usr/share/nginx/html;
}
 
# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
#
location ~ .php$ {
        try_files $uri =404;
        # NOTE: You should have "cgi.fix_pathinfo = 0;" in php.ini
 
        # With php5-cgi alone:
        #fastcgi_pass 127.0.0.1:9000;
        # With php5-fpm:
        fastcgi_pass unix:/var/run/php5-fpm.sock;
        fastcgi_index index.php;
        include fastcgi_params;
}
 
# deny access to .htaccess files, if Apache's document root
# concurs with nginx's one
#
location ~ /.ht {
        deny all;
}

Reinicia nginx para que los cambios en la configuración surtan efecto:

sudo service nginx restart

Lectura recomendada: Nginx Pitfalls

Mejorando la seguridad

Elimina un hueco de seguridad que se presenta en la configuración por defecto de nginx con php, sólo necesitas modificar una línea en php.ini:

sudo nano /etc/php5/fpm/php.ini

Aségurate de quitar el punto y coma del frente de la línea y cambiar el 1 por un 0, de tal manera que luzca así (el número de línea es 765 aprox):

cgi.fix_pathinfo=0

Reinicia php-fpm con:

sudo service php5-fpm restart

Comunicación por medio de un socket UNIX

Normalmente, PHP-FPM escucha en el puerto 9000 en 127.0.0.1.
Dado que php-fpm y nginx están en la misma máquina, se puede mejorar el rendimiento si se comunican a través de un socket UNIX en vez de usar TCP.
Get High Performance PHP-FPM with socket connections

Para indicarle a php-fpm que escuche en un socket UNIX en lugar de uno TCP, modifica:

sudo nano /etc/php5/fpm/pool.d/www.conf

Y asegúrate de que aparezcan las siguientes líneas (en este caso, el punto y coma se utiliza para comentar):

;listen = 127.0.0.1:9000
listen = /var/run/php5-fpm.sock
...
listen.owner = www-data
listen.group = www-data
listen.mode = 0666

Reinicia php-fpm con:

sudo service php5-fpm restart

Ahora, para probar que PHP está funcionando perfectamente a través de nginx, crea un archivo de ejemplo:

sudo nano /usr/share/nginx/html/info.php

Y ponle este contenido:

1
2
3
<?php 
  phpinfo();
?>

Guarda el archivo y en tu navegador ve a: http://localhost/info.php

Debes ver una página con información sobre PHP.

Instala soporte para MySQL

sudo apt-get install php5-mysql

Reinicia php-fpm:

sudo service php5-fpm restart

Instala Xcache

Xcache cachea y optimiza código intermedio PHP. En pocas palabras es bueno para tu servidor, ya que acelera la generación de tus páginas PHP.

sudo apt-get install php5-xcache

Reinicia php-fpm:

sudo service php5-fpm restart

Más extensiones para PHP

Puedes encontrar más extensiones listas para instalar con el comando:

apt-cache search php5

Ejemplos:

php5-curl php5-gd php5-intl php-pear php5-imagick php5-imap php5-mcrypt php5-memcache php5-ps php5-pspell php5-recode php5-snmp php5-sqlite php5-tidy php5-xmlrpc php5-xsl

Permitir uploads de archivos grandes

A veces requieres subir archivos grandes a tu sitio, ya sea para importar algún respaldo, video, audio, etc. Desgraciadamente la configuración que trae por defecto nginx y PHP sólo permite recibir cómo máximo archivos de 1MB y 2MB respectivamente.

A continuación se muestra como incrementar este límite.

Del lado de nginx

sudo nano /etc/nginx/nginx.conf

Dentro de la sección http ingresa el client_max_body_size deseado:

http {
        ...
        client_max_body_size 8m;
...

Reinicia nginx:

sudo service nginx restart

Del lado de PHP

sudo nano /etc/php5/fpm/php.ini

Estas son las líneas que te interesan:

post_max_size = 8M
...
upload_max_filesize = 8M

Reinicia php-fpm:

sudo service php5-fpm restart

¡Listo!

Referencias

Installing Nginx With PHP5 (And PHP-FPM) And MySQL Support (LEMP) On Ubuntu 12.04 LTS
Setting up nginx maximum upload size