jueves, 21 de julio de 2011

Transformar archivos de música .ogg a .mp3 en Ubuntu





El contexto es el siguiente (la hago corta):

Instalé el navegador web Opera 11.50 que viene con una funcionalidad maravillosa llamada Opera Unite, que te permite hacer de tu propia PC conectada a internet un servidor de streaming de música, la cual podés escuchar desde cualquier lugar del mundo y desde cualquier navegador (inclusive IE...). Impresionante. Todo sobre mi sistema operativo Linux Mint 10 (basado en Ubuntu).

Entonces estoy pasando mi colección de CDs a formato mp3 con Sound Juicer para almacenar mi música en la PC cuando me topé con un inconveniente que pareció insalvable.
Un CD de Bob Marley no permitía ser leído como directorio y archivos, por lo cual sólo podía reproducirlo con VLC o con RhythmBox, pero no ripearlo. En este punto me salvó el glorioso K3B (un orgullo del software libre). Pero no tenía las librerías para que K3B lo transformara en archivos .mp3, sólo lo podía pasar a .ogg, y eso hice.

Entonces, una vez salvado el primer inconveniente empecé a buscar un conversor de .ogg a .mp3, pero no lo encontré (tampoco es que busqué mucho). Lo que sí encontré es un post en un blog que me ayudóa a resolver este problema. El link de esta fuente:
http://novatillasku.com/2011/06/18/convertir-ogg-a-mp3-desde-terminal-en-ubuntu/

Básicamente hice esto:

Abrí una Terminal: Aplicaciones -> Accesorios -> Terminal

Puse lo siguiente:
sudo apt-get install vorbis-tools lame


Les pide la contraseña de administrador (la del usuario root), la escriben y dan Enter (no se preocupen si no se ven los caracteres que escriban, es por seguridad).
Esto les pasará siempre que ingresen una sentencia precedida de la palabra "sudo".

Luego abrí el procesador de texto gedit.
Desde la misma Terminal escriben lo siguiente:
sudo gedit


Entonces se abre un procesador de texto.

Hice un script en base a lo que encontré en la fuente que cité.
Es muy fácil, escribí lo siguiente en gedit (sugiero copiar y pegar a los principiantes):

#!/bin/bash
echo "Comienzo de transformación de archivos .ogg a .mp3"
SAVEIFS=$IFS
IFS=$(echo -en "\n\b")
for f in *ogg
do
file=$f;
base=${file%%.*};
ffmpeg -i $f ${base}".mp3";
done
IFS=$SAVEIFS
echo
echo "Fin de transformación de archivos .ogg a .mp3"


Bien, ahora lo guardamos en una carpeta especial del sistema (/usr/bin) con el nombre que quieran, pero con la terminación ".sh" de la siguiente manera:
En gedit van a Archivo -> Guardar como...
Allí buscan en "Sistema de archivos" la carpeta /usr y dentro de esta la carpeta /bin y le asignan un nombre al archivo. Por ejemplo yo lo guardé con el nombre: ogg2mp3.sh
Es muy importante que recuerden el nombre que le pusieron al archivo .sh ya que será la forma de invocarlo desde una Terminal.

Un paso importante es darle permisos de ejecución al archivo.
Nada más fácil. En la Terminal escribimos:
sudo chmod +x /usr/bin/ogg2mp3.sh


Ya estamos listos para pasar todos los archivos .ogg de una carpeta a formato .mp3
Y lo hacemos de la siguiente manera:
En la Terminal escribimos la palabra "cd" seguida de un espacio y luego el path de la carpeta que contenga los archivos .ogg
Por ejemplo, en mi caso tengo las canciones de Bob Marley en .ogg en la carpeta /home/jdiaz/Musica/BobMarley
Entonces en la Terminal escribo:
cd /home/jdiaz/Musica/BobMarley


Entonces la Terminal se posiciona en esta carpeta.

Nota: Es muy importante respetar las mayúsculas y minúsculas cuando ponemos la dirección de la carpeta (Unix es case sensitive)


Por último, ahora que estamos posicionados en la carpeta con los archivos .ogg en la Terminal, escribimos el nombre del archivo con el script que guardamos en /usr/bin. En mi caso escribo:
ogg2mp3.sh


En un ratito ya tenemos todos los .ogg pasados a .mp3 en la misma carpeta.

Espero sea de utilidad.

Nuevamente gracias a novatillasku

Javier

domingo, 15 de mayo de 2011

Virtualbox 4.0.6 en Ubuntu 10.04

Dado que se me presentaron varios inconvenientes para actualizar la versión de VirtualBox 3.0.x a la versión 4.0.6 sea por no esxistir a la fecha de este post en los repositorios de Ubuntu o bien por no tener disponibles las dependencias necesarias para instalar el paquete .deb descargado directamente de la página oficial de Virtualbox, decidí postear la solución que encontré en internet y que me funcionó a la perfección.

Les cuento que lo hice todo muy simplemente desde la consola. Entonces primero abrimos una consola desde el menú Aplicaciones >> Accesorios >> Terminal

En primer lugar desinstalé completamente la versión vieja (incluyendo los archivos de configuración). Para ello escribimos en la consola lo siguiente:

sudo apt-get purge virtualbox

Ponemos la contraseña y aceptamos la confirmación si nos la pide.

Luego escribimos estas sentencias dando enter entre sentencia y sentencia:

sudo -v

Agregamos a los repositorios el de Virtualbox con la siguiente sentencia para asegurarnos que tendremos siempre la versión actualizada del programa:

echo "deb http://download.virtualbox.org/virtualbox/debian $(lsb_release -sc) contrib" | sudo tee -a /etc/apt/sources.list

Aquí agregamos la clave pública del repositorio para que no nos aparezcan esos molestos mensajes que nos dicen que el sitio no es seguro o que no nos pudimos conectar al repositorio:

wget -q http://download.virtualbox.org/virtualbox/debian/oracle_vbox.asc -O- | sudo apt-key add -

Actualizamos la lista de paquetes:

sudo apt-get update

Y ahora si instalamos la última versión de Virtualbox:

sudo apt-get install virtualbox-4.0


Algo muy importante para que anden los puertos USB en las máquinas virtualizadas y que cito textualmente de la fuente:

Mi consejo es instalar también el paquete en las extensiones de VirtualBox que se puede descargar desde esta página y una vez que inicie VirtualBox, ir a Archivo -> Configuración y haga clic en la ficha Extensiones para agregar una extensión (el diamante azul de primera) y seleccione la Extensión que acaba de descargar. Usted puede encontrar VirtualBox en Aplicaciones -> Herramientas del sistema.


Sólo resta aclarar que en Virtualbox 4.0.6 el camino para instalar la Extensión es Archivo >> Preferencias >> Extensiones, allí her click sobre el botón de la derecha para buscar el archivo descargado e instalarlo.

Cabe aclarar que funcionó perfectamente sin problemas con los drivers. Hasta me respetó las máquinas virtuales que tenía configuradas con la vieja versión.

Esta información la saqué de una página italiana. Cono corresponde en estos casos cito la fuente:
http://www.chimerarevo.com/2011/04/21/virtualbox-4-0-6-e-tra-noi-installiamolo-su-ubuntu/

jueves, 5 de mayo de 2011

Cómo instalar la base de datos Openoffice - Base en Ubuntu

Esta entrada responde a la necesidad de mi amiga Enriqueta que está trabajando con Ubuntu 10.10 en la Trapia Intermedia del Hospital Argerich de la Ciudad de Buenos Aires (ella es la Jefa de ese Servicio) y que desea cargar los datos de sus pacientes en una base de datos tipo Access.

Como Ubutu 10.10 viene con Openoffice pero no trae instalado por defecto Base aprovecho y explico cómo se instala.

Si bien este minitutorial está basado en Ubuntu 10.10 pero podría servir para cualquier versión de Ubuntu que no traiga Base por defecto, inclusive para cualquier distribución de Linux basada en Debian.

Cabe aclarar también que este proceso es similar para instalar cualquier aplicación mediante Synaptic (siempre que se encuentre disponible en nuestros repositorios).

Vamos a describir el proceso de instalación paso a paso para que los menos habituados a Ubuntu puedan seguirnos sin dificultades.

En primer lugar descargué Ubuntu 10.10 y lo instalé en una máquina virtual con Virtualbox que es un muy buen gestor de máquinas virtuales de código abierto desarrollado por Sun Microsystems y adquirido recientemente por Oracle. Hice esto para tener un entorno similar al de Enriqueta.

Una vez en Ubuntu:

1) Abrimos el Gestor de Paquetes Synaptic desde el menú (Sistema >> Administración >> Gestor de Paquetes Synaptic





2) Buscamos el paquete openoffice.org-base en el buscador de Synaptic





3) Seleccionamos la fila openoffice.org-base y con el click derecho marcamos la opción Marcar para instalar





4) Nos muestra los paquetes que se instalarán. Para continuar pulsamos el botón Marcar





5) Aplicamos los cambios con el botón Aplicar





6) Nos pide confirmar la acción. Pulsamos el botón Aplicar de la ventana emergente





7) Aparece la barra que nos indica el progreso de la descarga. Esperamos un poco porque este paso puede demorar un poco dependiendo de la velocidad de descarga de nuestra conexión a internet.





8) Automáticamente aparece la barra que indica el progreso de la instalación. No hacemos nada hasta que termine este proceso.






9) Al terminar la instalación aparece el aviso que nos confirma que el proceso finalizó correctamente. Pulsamos el botón Cerrar.





10) Veremos que ahora la casilla de selección de openoffice.org-base en Synaptic está verde. Esto significa que este programa está instalado y que se cuenta con la última versión disponible





11) Podemos ver ahora que apareció la aplicación Base en el menú Aplicaciones >> Oficina >> Openoffice.org Base de Datos





12) Al abrir Base nos aparece la opción de abrir una base de datos existente o crear una nueva. Como vamos a crear una nueva seleccionamos esta opción y pulsamos el botón Siguiente





13) Luego nos pregunta si queremos registrar la base de datos. No conozco las ventajas de este registro, así que habitualmente le pongo que no (reconozco que debo investigar un poco este asunto). Pulsamos el botón Finalizar.





14) Nos pide que pongamos un nombre a la Base de Datos recién creada y nos pregunta dónde queremos guardarla. Indicamos estos datos y pulsamos el botón Guardar.





15) Ya podemos empezar a trabajar creando tablas, formularios, consultas, etc.





16) Al cerrar la aplicación podemos ver el archivo creado con su icono y su nombre con extensión .odb





Espero que sea de utilidad.

Javier


jueves, 24 de febrero de 2011

Reactivar el teclado numérico en Ubuntu

Los niños usando la PC a veces logran cosas impensables.

Por ejemplo mis hijos (no se cómo) inactivaron el teclado numérico (Uso Linux Mint basada en Ubuntu 10.10).

Buscando en los foros y blogs encontré esta solución:

Ve a Sistema->Preferencias->Teclado y allí te vas a Teclas del Raton, desactiva la opcion “Permitir controlar el puntero usando el teclado”.


Y eso resolvió el misterioso problema.

La fuente:

http://bifrost.wordpress.com/2008/04/26/teclado-numerico-en-ubuntu-hardy-solucionado/


Moraleja: Los niños siempre nos sorprenden con lo impensable...



sábado, 8 de enero de 2011

Backup en Linux desde consola con el comando cp

Estuve analizando en Linux el asunto del backup y encontré este potente comando: cp
En resumen comparando con el xcopy de Windows sería lo siguiente:

Win / Linux /Significado

xcopy = cp (Copia )
/d = -u (Update)
/e = -R ( Recursive)
/y = (default con "cp". En Linux no hace pide confirmación para cada acción)
(sin /y) = -i (Interactivo, pide confirmar cada acción)

Ejemplo en Linux (para escribir en la consola: Aplicaciones -> Accesorios -> Terminal) (El símbolo "$" no se escribe):

$cp -u -R /home/jdiaz/origen /media/disk/Varios/destino

(Nótese que en Linux las opciones van antes que los paths)

Para hacer un script:

#! /bin/sh
cp -u -R /home/jdiaz/origen /media/disk/Varios/destino


Lo guardás en un archivo con extensión .sh, le das permisos de ejecución y listo.

Si lo Gurdás en alguna carpeta del $PATH se puede invocar desde la consola o con la pantalla de Ejecutar (Alt+F2). Para saber cuáles son los directorios del $PATH podés escribir en una terminal lo siguiente:

$ cat /etc/environment


Tarea para el hogar:

Lo combinás con una sentencia "cron" ...y te olvidás!!!

Por si quieren profundizar incluyo las aclaraciones y el manual de xcopy para Windows que me pasó mi amigo LDJ, que es todo lo que sigue:



xcopy "C:\Documents and Settings\LDJ\Mis documentos\Origen\*" "\\Server\BackUp\Destino\" /v /d /e /y

pause

Esto lo podés guardar con extensión .bat y lo ejecutás cuando querés o lo asociás a las tareas programadas de Windows.

HELP DEL XCOPY
XcopyCopia archivos y directorios, incluidos subdirectorios.

Sintaxis
xcopy Origen [Destino] [/w] [/p] [/c] [/v] [/q] [/f] [/l] [/g] [/d[:mm-dd-aaaa]] [/u] [/i] [/s [/e]] [/t] [/k] [/r] [/h] [{/a|/m}] [/n] [/o] [/x] [/exclude:archivo1[+[archivo2]][+[archivo3]] [{/y|/-y}] [/z]

Parámetros
Origen
Obligatorio. Especifica la ubicación y los nombres de los archivos que desea copiar. Este parámetro debe incluir una unidad o una ruta de acceso.
Destino
Especifica el destino de los archivos que se van a copiar. Este parámetro puede incluir una letra de unidad y dos puntos, un nombre de directorio, un nombre de archivo o una combinación de éstos.
/w
Muestra el siguiente mensaje y espera la respuesta para comenzar a copiar archivos:
Presione cualquier tecla para empezar a copiar los archivos

/p
Pide confirmación antes de crear cada archivo de destino.
/c
Omite los errores.
/v
Comprueba cada archivo al escribirlo en el archivo de destino para asegurarse de que los archivos de destino y de origen son idénticos.
/q
Suspende la presentación de mensajes de xcopy.
/f
Muestra los nombres de los archivos de origen y de destino mientras se realiza la copia.
/l
Muestra una lista con los archivos que se van a copiar.
/g
Crea archivos de destino descifrados.
/d[:mm-dd-aaaa]
Copia sólo los archivos de origen que se hayan cambiado en o después de la fecha especificada. Si no se incluye un valor de mm-dd-aaaa, xcopy copia todos los archivos de Origen que sean más recientes que los archivos de Destino existentes. Esta opción de línea de comandos permite actualizar los archivos que se hayan cambiado.
/u
Copia sólo los archivos de Origen que existan en Destino.
/i
Si Origen es un directorio o contiene comodines y Destino no existe, xcopy supone que destino especifica un nombre de directorio y crea un nuevo directorio. A continuación, xcopy copia en el nuevo directorio todos los archivos especificados. De manera predeterminada, xcopy le pedirá que indique si Destino es un archivo o un directorio.
/s
Copia directorios y subdirectorios, a menos que estén vacíos. Si omite /s, xcopy se aplica a un único directorio.
/e
Copia todos los subdirectorios, incluso si están vacíos. Utilice /e con las opciones de línea de comandos /s y /t.
/t
Sólo copia la estructura (árbol) de subdirectorios, no los archivos. Para copiar directorios vacíos, debe incluir la opción de línea de comandos /e.
/k
Copia archivos y conserva el atributo de sólo lectura en los archivos de destino, si está presente en los archivos de origen. De manera predeterminada, xcopy quita el atributo de sólo lectura.
/r
Copia archivos de sólo lectura.
/h
Copia archivos con atributos de sistema y oculto. De manera predeterminada, xcopy no copia los archivos del sistema ni los ocultos.
/a
Sólo copia los archivos de origen a los que se haya asignado el atributo de modificado. /a no cambia el atributo de modificado de los archivos de origen. Para obtener información acerca de cómo establecer el atributo de modificado mediante attrib, consulte los Temas relacionados.
/m
Copia los archivos de origen a los que se haya asignado el atributo de modificado. A diferencia del modificador /a, el modificador /m quita el atributo de modificado de los archivos especificados en el origen. Para obtener información acerca de cómo establecer el atributo de modificado mediante attrib, consulte los Temas relacionados.
/n
Crea copias usando los nombres cortos de archivos o directorios de NTFS. /n es necesario cuando copie archivos o directorios de un volumen NTFS a un volumen FAT o cuando la convención de nomenclatura del sistema de archivos FAT (8,3) sea necesaria en el sistema de archivos de destino. El sistema de archivos de destino puede ser FAT o NTFS.
/o
Copia la información de propiedad de archivo y de la lista de control de acceso discrecional (DACL).
/x
Copia información de la configuración de auditoría de archivos y de la lista de control de acceso al sistema (SACL) (implica el uso de /o).
/exclude:nombreDeArchivo1[+[nombreDeArchivo2]][+[nombreDeArchivo3]]
Especifica una lista de archivos que contienen cadenas.
/y
Suprime las preguntas que le piden que confirme que desea sobrescribir un archivo de destino existente.
/-y
Le pide que confirme que desea sobrescribir un archivo de destino existente.
/z
Copia a través de una red en modo reiniciable.
/?
Muestra la Ayuda en el símbolo del sistema.
Observaciones
Usar /v
Windows XP no utiliza este comando. Solamente se acepta por compatibilidad con los archivos de MS-DOS.

Usar /exclude
Muestra cada cadena en una línea distinta en cada archivo. Si alguna de las cadenas mostradas coincide con cualquier parte de la ruta de acceso absoluta del archivo que se va a copiar, ese archivo queda excluido del proceso de copia. Por ejemplo, si especifica la cadena "\Obj\", se excluirán todos los archivos del directorio Obj. Si especifica la cadena ".obj", se excluirán todos los archivos con la extensión .obj.

Usar /z
Si la conexión se interrumpe durante la fase de copia (por ejemplo, si se desconecta el servidor que sirve la conexión), la copia se reanudará una vez que la conexión se haya vuelto a establecer. /z también presenta el porcentaje de la operación de copia que se ha completado en cada archivo.

Usar /y en la variable de entorno COPYCMD Puede utilizar /y en la variable de entorno COPYCMD Este comando puede suplantarse mediante el modificador /-y en la línea de comandos. De manera predeterminada, se le preguntará si desea sobrescribir, a menos que ejecute copy desde un archivo de comandos por lotes.

Copiar archivos cifrados
La copia de archivos cifrados en un volumen que no admita EFS generará un error. Descifre primero los archivos o cópielos en un volumen que admita EFS.

Anexar archivos
Para anexar archivos, especifique un único archivo de destino, pero varios archivos de origen (mediante caracteres comodín o el formato archivo1+archivo2+archivo3).

Valor predeterminado para Destino
Si omite Destino, el comando xcopy copia los archivos al directorio actual.

Especificar si Destino es un archivo o un directorio Si Destino no contiene un directorio existente y no termina con una barra diagonal inversa (\), aparece el siguiente mensaje:

¿El parámetro de destino especifica un archivo o un directorio como destino (F = archivo, D = directorio)?

Presione F si desea que los archivos se copien en un archivo. Presione D si desea que los archivos se copien en un directorio.

Este mensaje se puede suprimir si utiliza la opción de línea de comandos /i, que hará que xcopy suponga que el destino es un directorio si el origen son varios archivos o un directorio.

Usar el comando xcopy para establecer el atributo de modificado de los archivos de Destino El comando xcopy crea archivos con el atributo de modificado, aunque este atributo no se haya asignado a los archivos de origen. Para obtener más información acerca de los atributos de modificado y del comando attrib, consulte Temas relacionados.

Diferencias entre xcopy y diskcopy
Si tiene un disco que contiene archivos que se encuentren en subdirectorios y desea copiarlos a un disco que tenga un formato diferente, debe utilizar el comando xcopy en lugar de diskcopy. Como el comando diskcopy copia los discos pista a pista, requiere que tanto el disco de origen como el de destino tengan el mismo formato. El comando xcopy no tiene este requisito. Utilice xcopy a menos que necesite una copia completa de la imagen del disco.

Códigos de salida de xcopy
Para procesar los códigos de salida que devuelve xcopy, utilice el parámetro errorlevel en la línea de comandos if de un programa por lotes. Si desea ver un ejemplo de un programa por lotes que procese los códigos de salida con if, consulte los Temas relacionados. En la siguiente tabla se enumera cada código de salida y una descripción.

Código de salida Descripción
0 Archivos copiados sin error.
1 No se encontraron archivos para copiar.
2 El usuario presionó CTRL+C para finalizar xcopy.
4 Error de inicialización. No hay suficiente memoria o espacio en el disco, se escribió un nombre de unidad no válido o se utilizó una sintaxis incorrecta en la línea de comandos.
5 Error de escritura de disco.

Ejemplos
Para copiar todos los archivos y subdirectorios (incluidos los subdirectorios vacíos) de la unidad A a la unidad B, escriba:

xcopy a: b: /s /e

Para incluir los archivos del sistema y los ocultos en el ejemplo anterior, agregue la opción de línea de comandos /h del modo siguiente:

xcopy a: b: /s /e /h

Para actualizar archivos del directorio \Informes con los archivos del directorio \Datos que se hayan cambiado desde el 29 de diciembre de 1993, escriba:

xcopy \rawdata \reports /d:12-29-1993

Para actualizar todos los archivos que existan en el directorio \Informes del ejemplo anterior, independientemente de la fecha, escriba:

xcopy \rawdata \reports /u

Para obtener una lista de los archivos que se van a copiar en el ejemplo anterior (sin copiarlos realmente), escriba:

xcopy \rawdata \reports /d:12-29-1993 /l > xcopy.out

El archivo Xcopy.out contiene una lista de todos los archivos que se van a copiar.

Para copiar el directorio \Cliente y todos los subdirectorios al directorio \\Pública\Dirección de la unidad H de red:, conservar el atributo de sólo lectura y que se le avise cuando se cree un nuevo archivo en H:, escriba:

xcopy \customer h:\public\address /s /e /k /p

Para emitir el comando anterior, asegurarse de que xcopy crea el directorio \Dirección, en caso de que no exista, y suprima el mensaje que aparece cuando se crea un nuevo directorio, agregue la opción de línea de comandos /i de la forma siguiente:

xcopy \customer h:\public\address /s /e /k /p /i

Puede crear un programa por lotes para realizar operaciones de xcopy y usar el comando if de procesos por lotes para procesar los códigos de salida si se produce un error. Por ejemplo, el siguiente programa por lotes utiliza parámetros reemplazables para los parámetros origen y destino de xcopy:

@echo off
rem Copias.bat transfiere todos los archivos de todos los subdirectorios rem de la unidad o directorio de origen (%1) a la unidad o directorio de destino

rem (%2)

xcopy %1 %2 /s /e

if errorlevel 4 goto pocaMemoria
if errorlevel 2 goto cancelar
if errorlevel 0 goto salir

:pocaMemoria
echo Memoria insuficiente para copiar archivos, echo unidad no válida o sintaxis de la línea de comandos incorrecta.
goto salir

:cancelar
echo Presionó CTRL+C para finalizar la operación de copia.
goto salir

:salir

Para utilizar este programa por lotes a fin de copiar en la unidad B todos los archivos del directorio C:\Codprog y de sus subdirectorios, escriba:

copias c:\codprog b:

El intérprete de comandos reemplaza C:\codprog por %1 y B: por %2, a continuación ejecuta xcopy con las opciones de línea de comandos /e y /s. Si xcopy encuentra un error, el programa por lotes leerá el código de salida y pasará a la etiqueta indicada en la instrucción IF ERRORLEVEL correspondiente. A continuación, mostrará el mensaje adecuado y saldrá del programa por lotes.

Leyenda de formato
Formato Significado
Cursiva Información que debe suministrar el usuario Negrita Elementos que el usuario debe escribir exactamente como se muestran Puntos suspensivos (...) Parámetro que se puede repetir varias veces en una línea de comandos Entre corchetes ([]) Elementos opcionales Entre llaves ({}); las opciones se separan mediante la barra vertical (|). Ejemplo: {par|impar} Conjunto de opciones de las que el usuario debe elegir sólo una Fuente Courier Código o salida de un programa

(Gracias LDJ)