Repositorios de Ubuntu

Desde hace unas horas hasta hace poco el servidor principal que mantiene los archivos de los paquetes binarios y fuentes estaba caído.

Obteniendo respuesta desde http://archive.ubuntu.com/ubuntu.

<code>$ wget http://archive.ubuntu.com
--09:56:27--  http://archive.ubuntu.com/
           => `index.html'
Resolving archive.ubuntu.com... 82.211.81.151, 82.211.81.182
Connecting to archive.ubuntu.com[82.211.81.151]:80... failed: Connection refused.
Connecting to archive.ubuntu.com[82.211.81.182]:80... failed: Connection refused.</code>

En cambio, el servicio por ftp si estaba habilitado. Obteniendo respuesta desde ftp://archive.ubuntu.com/ubuntu

<code>$ wget ftp://archive.ubuntu.com
--09:58:24--  ftp://archive.ubuntu.com/
           => `.listing'
Resolving archive.ubuntu.com... 82.211.81.182, 82.211.81.151
Connecting to archive.ubuntu.com[82.211.81.182]:21... connected.
Logging in as anonymous ... Logged in!
==> SYST ... done.    ==> PWD ... done.
==> TYPE I ... done.  ==> CWD not needed.
==> PASV ... done.    ==> LIST ... done.

    [ < =>                                 ] 64            --.--K/s

09:58:24 (48.75 KB/s) - `.listing' saved [64]

Removed `.listing'.
Wrote HTML-ized index to `index.html' [302].</code>

Ahora bien, en este caso simplemente bastaba con cambiar la entrada http por ftp en el fichero /etc/apt/sources. Para evitar cualquier tipo de inconvenientes en el futuro, es recomendable hacer uso de sitios espejo o mirrors.

En https://wiki.ubuntu.com/Archive encontrará toda la información necesaria, si utiliza los repositorios del proyecto Ubuntu Backport es recomendable que vea su sección de las URL de los Repositorios.

NOTA: Siempre es recomendable hacer uso de sitios espejos puesto que estos presentan menos demanda que los sitios oficiales de los proyectos.

1 min read

Cambiando la ubicación del cache de apt

El día 21 de Septiembre Jorge Villarreal preguntó en la entrada Creando un repositorio local lo siguiente:

… tengo un laptop lentisimo , ahora mi pregunta ya que puedo navegar desde la oficina y en ella solo tienen windows como hago para descargar actualizaciones y llevarlas en una pen o en cd?. a como anexo en las tardes navego con cd-live ubuntu, me pregunto si podre bajar virtualmente desde ahi?

Mi respuesta es la siguiente:

Sí, en efecto puedes descargar los paquetes desde tu LiveCD de Ubuntu, de hecho, existen dos maneras para mí, las expongo a continuación.

Primer método

La primera es usar la memoria que dispones, la cual es limitada, recuerda que los ficheros que descarga la interfaz apt (o aptitude) se almacenan en el directorio /var/cache/apt/archives, como te mencione anteriormente, este método puede ser limitado.

Veamos ahora el segundo método, te recomiendo éste porque vamos a escribir en el disco duro.

Segundo método

Ya que en la oficina utilizas Windows, el único requisito que se necesita es disponer de una partición cuyo formato de ficheros sea FAT, asumiré en el resto de mi respuesta que dicha partición se encuentra en /dev/hdb1 y se ha montado en /mnt/backup. Por lo tanto:

$ sudo mount -t vfat /dev/hdb1 /mnt/backup

Posteriormente se debe crear el fichero /etc/apt.conf, esto se puede hacer fácilmente con cualquier editor. Dicho fichero debe contener lo siguiente:

DIR "/"
{
  Cache "mnt/backup/apt/" {
    Archives "archives/";
    srcpkgcache "srcpkgcache.bin";
    pkgcache "pkgcache.bin";
  };
};

Lo anterior simplemente está cambiando el directorio usual (/var/cache/apt/archives) del cache, de ahora en adelante se estará escribiendo de manera permanente en disco duro. Previamente debes haber creado el directorio /mnt/backup/apt/archives/. Seguidamente tienes que crear el fichero lock y el directorio partial. Resumiendo tenemos:

$ mkdir -p /mnt/backup/apt/archives/partial
$ touch /mnt/backup/apt/archives/lock

Pasos comunes en ambos métodos

Recuerda que sea cual sea el método que decidas usar, debes editar el fichero /etc/apt/sources.list, mejora la lista de repositorios que se presentan, luego de guardar los cambios en el fichero, ejecuta el siguiente comando.

$ sudo aptitude update

El comando anterior actualizará tú lista de paquetes con los que se encuentran en los repositorios que añadiste previamente. Ahora bien, para almacenar ficheros en el directorio cache haz uso del comando.

$ sudo aptitude --download-only install <em>packages</em>

Cuando me refiero a packages recuerda que son los nombres de los paquetes.

Seguidamente puedes seguir los pasos que se te indican en la entrada Creando un repositorio local, por supuesto, si cambias la dirección del cache que hará uso la interfaz apt (o aptitude) debes hacer los ajustes necesarios. Espero te sirva la información.

Si alguien desea realizar un aporte bienvenido será.

2 min read

Recuperar el Terminal después de ejecutar un comando en primer plano

Si regularmente ejecuta programas desde el Terminal, seguramente en alguna ocasión habrá olvidado añadirle al final del comando un carácter &, por si no lo sabe, el uso del carácter & permite ejecutar el comando en segundo plano, por lo tanto, podrá seguir utilizando el Terminal para llevar a cabo otras actividades.

Si por casualidad se encuentra ante la situación descrita en el párrafo anterior, existe una solución rápida y efectiva, después de ejecutar el comando desde el Terminal sin el carácter & presione la combinación de teclas Ctrl + Z dentro del mismo Terminal, esto permitirá detener (más no cancelar) el programa que ha ejecutado previamente, para reanudar la ejecución del programa use el comando bg.

Veamos un ejemplo para aclarar las posibles dudas.

milmazz@omega:~$ gaim

[1]+  Stopped                 gaim
milmazz@omega:~$ bg
[1]+ gaim &

El comando bg permite ejecutar el programa que se encontraba detenido en segundo plano, es decir, como si desde el principio hubiese ejecutado el programa de la siguiente manera:

$ gaim &

Este tip me ha servido en muchas ocasiones, espero lo encuentre útil al igual que yo.

~1 min read

Automatiza el uso de pastebin desde la línea de comandos

Si deseas colocar gran cantidad de código en un canal IRC, Chat o haciendo uso de la mensajería instantánea, es realmente recomendable que haga uso de un sistema pastebin, por ejemplo, pastebin.com, el cual es una herramienta colaborativa que permite depurar código.

Además, siguiendo esta metodología se evita incurrir en el conocido flood, el cual consiste en el envio de gran cantidad de información a un usuario o canal, la mayoría de las ocasiones con el fin de molestar, incluso, puede lograr desconectar a otros usuarios. Este tipo de prácticas se castigan en muchos canales IRC.

Si no está familiariazado con la idea de los sistemas pastebin, un resúmen le puede ayudar en algo:

  • Envie un fragmento de código al sistema pastebin de su preferencia, obtendrá una dirección similar a http://pastebin.com/1234
  • Informe de la URL obtenida en los canales IRC o a través de la conversación que mantenga por mensajería instantánea.
  • Cualquier persona puede leer su código, a su vez, pueden enviar modificaciones de éste.
  • Si no se da cuenta de las modificaciones a primera vista, puede hacer uso de las opciones que le muestran las diferencias entre los ficheros de manera detallada.

Existe un script hecho en Python que le permite de manera automática y fácil el colocar la salida del terminal o de otros programas hechos en Python al sitio de pastebin que usted prefiera.

Instalación

Ejecute los siguientes pasos:

$ wget http://www.ubuntulinux.nl/files/pastebin
$ chmod +x pastebin
$ sudo ./pastebin --install

El comando anterior instalará el script dentro del directorio /usr/bin/ con permisos de ejecución.

Uso

pastebin [--name Autor] [--pid Entrada_Padre] [--bin URL_Pastebin]

Los valores entre corchetes son opcionales, cada uno significa lo siguiente:

  • --name: Recibe como valor el nombre del autor del código.
  • --pid: Debe usarlo cuando está dando una respuesta o corrección a alguna entrada. Normalmente es el número que le sigue inmediatamente al nombre del servidor por ejemplo: Si usted tiene una URL de este tipo, http://pastebin.com/2401, el pid sería 2401.
  • --bin: Recibe como valor el sistema pastebin que esté usando.

Si no desea estar especificando a todo momento el nombre del autor (--name) y el servicio pastebin que usa (--bin), puede crear un fichero en /etc/pastebinrc o en ~/.pastebinrc. El primero aplica a todos los usuarios y el segundo a un usuario local. En cualquiera de los casos, dicho fichero debe contener lo siguiente:

poster = Nombre Autor
pastebin = Servicio Pastebin

Por ejemplo, en mi caso particular, el contenido del fichero /etc/pastebinrc es el siguiente:

poster = [MilMazz]
pastebin = paste.ubuntulinux.nl

Haciendo uso de la tubería o pipe

Colocando la salida estándar

`$ comando | pastebin`

Colocando la salida estándar y los posibles errores

`$ comando 2>&1 | pastebin`

Recuerde que debe sustituir comando en los dos ejemplos mostrados previamente por el nombre real del comando del cual desea obtener una respuesta.

Vía: Ubuntu Blog.

2 min read