Archivo categoría Debian

Cómo actualizar el huso horario en Linux

time zone map

El 1° de mayo, el huso horario cambiará en Venezuela a UTC-4, por lo que debes actualizar el paquete tzdata en Linux para estar preparado para este cambio. Para hacer esto solo debes hacer lo siguiente:

Debian/Ubuntu

aptitude update
aptitude safe-upgrade tzdata

Red Hat

yum check-update
yum update tzdata

Para verificar que se la actualización tiene el cambio del huso horario se puede ejecutar la siguiente orden:

zdump -v /usr/share/zoneinfo/right/America/Caracas  | grep 2016

/usr/share/zoneinfo/right/America/Caracas  Sun May  1 06:59:59 2016 UT = Sun May  1 02:29:59 2016 VET isdst=0 gmtoff=-16200
/usr/share/zoneinfo/right/America/Caracas  Sun May  1 07:00:00 2016 UT = Sun May  1 03:00:00 2016 VET isdst=0 gmtoff=-14400

Referencia: How to check if the Time Zone database


2 Comentarios

Cómo instalar Oracle Java en Debian

centOS 6

Si necesitas instalar la versión de Java de Oracle en Debian, puede seguir los siguientes pasos para realizarlo una vez que hayas descargado el binario desde la página de descarga de Oracle:

Una vez descargado el  procedemos a extraerlo en el directorio /opt:

# tar xvzf jdk-8u45-linux-x64.tar.gz

Primero vamos a consultar la versión de java actual:

# java -version
java version "1.7.0_79"
OpenJDK Runtime Environment (IcedTea 2.5.5) (7u79-2.5.5-0ubuntu0.14.04.2)
OpenJDK 64-Bit Server VM (build 24.79-b02, mixed mode)

Aquí puede verse que la versión a la que se hace referencia actualmente es la 1.7.0_79 de OpenJDK. Ahora vamos agregar la ruta de la nueva versión a usar:

# update-alternatives --install /usr/bin/java java /opt/jdk1.8.0_45/bin/java 1

Esta última orden agrega la ruta /opt/jdk1.8.0_45/bin/java al binario /usr/bin/java java, es decir, este será el enlace simbólico a usar en caso de seleccionar esta opción. Vamos a configurar los alternatives para que apunte a la nueva ruta:

# update-alternatives --config java
  Selection Path Priority Status
------------------------------------------------------------
* 0 /usr/lib/jvm/java-7-openjdk-amd64/jre/bin/java 1071 auto mode
 1 /opt/jdk1.8.0_45/bin/java 1 manual mode
 2 /usr/lib/jvm/java-6-openjdk-amd64/jre/bin/java 1061 manual mode
 3 /usr/lib/jvm/java-7-openjdk-amd64/jre/bin/java 1071 manual mode

Enter to keep the current selection[+], or type selection number: 1

Luego de seleccionar la opción 1, verificamos  la versión de java una vez más:

# java -version
java version "1.8.0_45"
Java(TM) SE Runtime Environment (build 1.8.0_45-b14)
Java HotSpot(TM) 64-Bit Server VM (build 25.45-b02, mixed mode)

Ahora el binario de java apunta a la versión de Oracle. Cosa que podemos verificar consultando los enlaces simbólicos:

# ls -l /usr/bin/java
lrwxrwxrwx 1 root root 22 jun  9  2014 /usr/bin/java -> /etc/alternatives/java

# ls -l /etc/alternatives/java
lrwxrwxrwx 1 root root 25 jun 15 09:21 /etc/alternatives/java -> /opt/jdk1.8.0_45/bin/java

,

3 Comentarios

Problema de debmirror: gpgv: Can’t check signature: public key not found

NoMirror.jpg

Tengo un repositorio donde son servidos paquetes de Debian y Ubuntu de forma que las perosnas en la red interna puedan actualizar usando este repositorio. Pero el otro día me di cuenta que este no podía sincronizarse contra el repositorio de Debian como se describe en el artículo Cómo crear un mirror de Debian y Ubuntu con debmirror. Cuando trataba de ejecutar el script de sincronización este arrojaba errores y abortaba.

Síntomas

Cuando se ejecuta el ascript de debmirro este falla con un error similar a este:

gpgv: Signature made Wed 17 Jul 2013 04:40:31 PM CST using RSA key ID 473041FA
[GNUPG:] ERRSIG AED4B06F473041FA 1 2 00 1374050431 9
[GNUPG:] NO_PUBKEY AED4B06F473041FA
gpgv: Can’t check signature: public key not found
gpgv: Signature made Wed 17 Jul 2013 04:40:31 PM CST using RSA key ID 46925553
[GNUPG:] ERRSIG 8B48AD6246925553 1 2 00 1374050431 9
[GNUPG:] NO_PUBKEY 8B48AD6246925553
gpgv: Can’t check signature: public key not found
Release signature does not verify.

Causa

 Los paquetes son validados usando una llave, de forma que podamos confiar en lo que descargamos desde los repositorios de origen y qué es instado finalmente en nuestros computadores. Algunos repositorios tienen un juego de llaves con llaves conocidas, y es probable que una nueva llave firmada fue agregada al juego de llaves de Debian/Ubuntu. Esto puede ocurrir si hay una nueva versión de la distro, y nuevas llaves son añadidas, haciendo que nuestro juego de llaves quede obsolote (les falta las nuevas llaves).

Solución

Para arreglar este inconveniente, sigue los siguientes pasos dependiendo de la distro a la que le estés haciendo mirror:

Debian

Actualiza el repoitorio e importa las nuevas llaves:

aptitude update
aptitude safe-upgrade
gpg --keyring /usr/share/keyrings/debian-archive-keyring.gpg  --export | gpg --no-default-keyring --keyring /var/data/keyrings/debian/trustedkeys.gpg --import

Nota: Si las llaves no fueron agregadas, descarga el último paquete  debian-archive-keyring desde los repoitorioes, extráelo y usa este juego de llaves. Ejemplo:

wget http://ftp.us.debian.org/debian/pool/main/d/debian-archive-keyring/debian-archive-keyring_2012.4_all.deb
dpkg -x debian-archive-keyring_2012.4_all.deb  ~
gpg --keyring ~/usr/share/keyrings/debian-archive-keyring.gpg  --export | gpg --no-default-keyring --keyring /var/data/keyrings/debian/trustedkeys.gpg --import

Ubuntu

Descarga el último paquete ubuntu-archive-kering y extraélo, luego usa este juego de llaves. Ejemplo:

wget http://mirror.pnl.gov/ubuntu//pool/main/u/ubuntu-keyring/ubuntu-keyring_2012.05.19_all.deb
dpkg -x ubuntu-keyring_2012.05.19_all.deb ~
gpg --keyring ~/usr/share/keyrings/ubuntu-archive-keyring.gpg --export|gpg --no-default-keyring --keyring /home/hdrepo/keyrings/ubuntu/trustedkeys.gpg --import

Luego el script de sincronixación del mirror debe correr sin  errores, descargando las últimas actualizaciones.

, ,

2 Comentarios

Instalación de Raspbmc

Raspbmc = Rasberry Pi   XBMC

Un amigo me recomendó esta distro para correr XBMC, ya que según me comentó el desarrollador de XBMC sacó optimizaciones específicas para que corriera mejor en el hardware del Rasberry. Entonces me animé a probarla y explicó aquí todo lo que tuve que hacer para realizar la instalación, que dicho sea de paso me pareció algo accidentada pero al final satisfactoria.

Raspbmc desde el instalador|

Raspbmc install error

Desde la página del proyecto recomiendan usar el instalador o Network Image, un script en python que prácticamente hace todo el proceso de instalación, particionamiento y configuración inicial…o por lo menos lo intenta, ya que en mi caso no funciono debido a que la conexión a Internet en casa no ayudaba y por ende no podía descargarme la imagen. Por lo que tuve que usar la imagen completa de Raspbmc.

Imagen completa de Raspbmc

La otra opción que ofrecen en la página del proyecto es la de descargar la versión completa de 235 MB llamada Standalone Image, la cual al descomprimirse queda en 1.4 GB aproximadamente. Esto fue un problema ya que mi SD es de 1 GB y no pensaba comprar otra porque tengo un disco duro de 320 GB dedicado al Rasberry Pi. Entonces se me ocurrió que podía reducir el tamaño de esta imagen para que entrara en la SD de 1 GB.

Reparticionado de la imagen

Similar a como hice en el artículo que explica cómo Correr Raspberry Pi desde un disco USB, volqué la imagen en un pendrive de 8 GB para poder extraer luego la partición /boot y la partición del sistema operativo o partición raíz. Para copiar la imagen en el pendrive se debe descomprimir la imagen y luego volcar en crudo, como se muestra  a continuación:

# gunzip raspbmc-final.img.gz
# dd if=raspbmc-final.img of=/dev/sdb

Si verificamos con gparted veríamos algo como esto:

Rasbmc image

Luego con el mismo gparted se debe redimensionar el tamaño de la partición /dev/sdb2 para que ocupe 800 MB aproximadamente, de esta forma podría meter también la partición /boot de 74 MB en mi tarjeta SD de 1 GB.

Raspbmc

Luego para extraer la partición /boot del pendrive se debe hacer lo siguiente:

# dd if=/dev/sdb1 of=raspbmc-final_boot.img

Y de forma similar para extraer el sistema de archivos de 800 MB  que se encuentra en la otra partición:

# dd if=/dev/sdb2 of=raspbmc-final_fsext4.img

Configuración inicial

La configuración inicial se realiza desde el instalador, que en esencia es un script que realiza una serie de preguntas como parámetros de red, etc. Luego esto se puede modificar desde el mimos XBMC con un script que se agregó para Raspbmc:

Raspbmc

Reparticionado del disco

Si bien la instalación detectó el disco duro de forma automática no me dejó particionarlo, de hecho borra todo el contenido y crea una única partición que se monta en /media con el UUID de la partición. Pero lo que quería era tener tres particiones: una para el sistema operativo (/), otra para la memoria de intercambio (swap) y el resto para los datos (/media/Toshiba320), aparte de la partición /boot que debe estar en la tarjeta SD .

Para particionar el disco, borré y creé las particiones usando para ello fdisk. Al final el disco quedó distribuido de la siguiente manera:

Raspbmc

Luego edité el /etc/fstab para reflejar estos cambios:

proc /proc proc defaults 0 0
devpts /dev/pts devpts rw,nosuid,noexec,relatime,gid=5,mode=620 0 0
#/dev/sda2 / ext4 defaults,noatime 0 0
UUID=e7db90716-9911-4fc8-95da-86c463f926a4 / ext4 defaults,noatime 0 0
UUID=70a55bca-9fdb-4073-87f6-c15fd7b351dc none swap sw 0 0
UUID=1ff934a3-f7ce-451f-9a07-0915e174a007 /media/Toshiba320 ext4 defaults 0 0
/dev/mmcblk0p1 /boot vfat defaults,noatime 0 0

Y por último modifiqué el archivo /boot/cmdline.txt, en particular para que la partición del sistema operativo fuese leída desde el disco duro y no desde la tarjeta SD:

dwc_otg.lpm_enable=0 root=/dev/sda1 rootfstype=ext4 noatime quiet rootwait loglevel=1   persistent-logs sdhci-bcm2708.enable_llm=1 dwc_otg.microframe_schedule=1 dwc_otg.fiq_fix_enable=1

Deshabilitar el Firewall

Para deshabilitar el firewall que viene por omisión con una regla  DROP  en el Raspbmc,  hay que editar el archivo /etc/network/if-up.d/secure-rmc, donde se debe comentar la línea:

iptables -A INPUT -i $IFACE -j DROP

También puedes deshabilitar el firewall desde el script de configuración desde XBMC como se muestra a continuación:

Raspbmc settings

Control remoto

Si bien tengo un teclado un un ratón conectado al Rasberry Pi, lo ideal es tener un control remoto. Como el Rasberry Pi está conectado a la red WiFI lo ideal es usar este medio y no tener que usar IR o Bluetooth. Por eso pensé en una aplicación en Android y mi primera elección fue XBMC Remote pero pareciera que tiene un problema de comunicación que vuelve loco al XBMC (tanto del Raspbmc como el XBMC que se puede conseguir por ahí para el Rasberry Pi), pero al final conseguí otra llamada Yatse que funciona correctamente y la presentación es mucho mejor como puede verse a continuación de las capturas que tomé desde mi teléfono:

Yatse XBMC remote  Yatse XBMC remote  Yatse XBMC remote

Desempeño

Comparado con el XBMC que había probado con Raspbian, esta versión verdaderamente se comporta muy bien. Reproduce las películas en varios formatos (.avi, .mkv, .mp4, etc) de forma fluida. Adicionalmente como tiene Linux también es mi centro de descarga con qbittorrent-nox, y otras cosas adicionales que le estoy colocando para pruebas. Y esto es lo que reporta XBMC como consumo de recursos:

Raspbmc

Referencias

, ,

11 Comentarios

Cómo crear un paquete Debian en 3 pasos

 Debian pakage

Existen varias formas de crear un paquete Debian. En este artículo veremos cómo crearlo con las herramientas equivs, para la creación de un paquete sencillo (por ejemplo que se quiera empaquetar un binario). Sin preámbulos veamos el procedimiento:

Requisitos

Necesitaremos instalar previamente las herramientas que se usará, en particular:

aptitude install equivs

Procedimiento

A modo de ejemplo vamos a empaquetar unos scripts y una tarea programada en un archivo .deb. Estos son los pasos:

  1. Crear el archivo plantilla. Para ello usaremos la orden equivs-control, la cual genera un archivo base que luego podremos editar para quitar los comentarios en las opciones de interes. Para generar la plantilla usamos la siguiente orden:
$ equivs-control backups
  1. Editar la plantilla, que en este ejemplo se llama backups. Colocar los datos necesarios para la creación del paquete descomentando los campos que se necesiten editar:
### Commented entries have reasonable defaults.
### Uncomment to edit them.
# Source:
Section: miscD
Priority: optional
Homepage: www.lgallardo.com
Standards-Version: 3.9.2
Package: backups
Version: 1.1
Maintainer: Luis M. Gallardo D. <lgallard@gmail.com>
# Pre-Depends:
# Depends:
# Recommends:
# Suggests:
# Provides:
# Replaces:
Architecture: all
# Copyright:
# Changelog:
Readme: README.Debian
# Extra-Files:
Files: backup.sh /usr/local/bin/
 restore.sh /usr/local/bin/
 backups-cron /etc/cron.d/
Description: Backups scripts
 Scripts for backuping up files on Debian systems

Para este ejemplo se debe tener creados los archivos backup.sh, restore.sh, backups-cron y README.debian, este último para que no coloque el README genérico.

  1. Crear el paquete. Solo escribe la siguiente orden:
$equivs-build backups

Esto generará el paquete de nombre backups_1.1_all.deb.  Para consultar la información del mismo podemos ejecutar los siguiente:

$ dpkg -I backups_1.1_all.deb
 new debian package, version 2.0.
 size 2396 bytes: control archive=582 bytes.
 25 bytes, 1 lines conffiles 
 302 bytes, 12 lines control 
 322 bytes, 5 lines md5sums 
 Package: backups
 Version: 1.1
 Architecture: all
 Maintainer: Luis M. Gallardo D. <lgallard@gmail.com>
 Architecture: all
 Readme: README.debian
 Installed-Size: 42
 Section: misc
 Priority: optional
 Homepage: www.lgallardo.com
 Description: Backups scripts
 Scripts for backuping up files on Debian systems

¡Eso es todo, ya creaste tu primer paquete Debian!

,

3 Comentarios

Instalación de SubDownloader en Raspberry Pi

SubDownloader 2.0.14 (on raspberrypi)

Ya instalé XBMC como mi centro multimedia y también qbittorrent como mi centro de “descargas”. Pero me faltaba algo: un programa descargar subtítulos. Conocía de subdownloader, así que decidí intentarlo en my Rasberry Pi pero no estaba en los repos de Rasbian…qué se puede hacer?

Fácil, solo agrega el repo oficial de Debian para Sid e instálalo. Recuerda que Debian suporta muchas arquitecturas, incluso armhf. Veamos cómo hacerlo…

Instalación

  1. Editar el archivo /etc/apt/sources.list para incluir los repos de sid:
    deb http://ftp.debian.org/debian/ sid main contrib non-free
  2. Actualizar el listado de paquetes:
    aptitude update
  3. Instalar SubDonwloader:
    aptitude install subdownloader
  4. Editar nuevamente el /etc/apt/sources.list para quitar los repos de sid (basta con comentar la línea con #):
    #deb http://ftp.debian.org/debian/ sid main contrib non-free
  5. Hacer la actualización del listado de paquetes:
    aptitude update

Ahora puedes usar el programa desde tu Rasberry Pi localmente o usando ssh…pero ten en cuenta que será algo lento. Disfrútalo!

Referencia: Página de SubDownloader

, , , ,

2 Comentarios

Repositorio portátil en Debian

Repositorio Móvil Debian

Si de casualidad  tienes una conexión lenta, pero si tienes una buen enlace en otro sitio (escuela, universidad,trabajo, etc.) y tienes un equipo con Debian en la misma arquitectura (x86, x64,etc.) mas o menos con la misma selección de software, puedes usar este pequeño truco para llevarte parte de los paquetes descargados:

Máquina con buena conexión

Actualiza el PC con buena conexión:

dell:~# aptitude update
dell:~# aptitude safe-upgrade

En Debian y distribuciones derivadas los paquetes descargados se guardan en /var/cache/apt/archives, por lo que podemos copiar el contenido de este directorio en un pen-drive o disco externo:

cp -r /var/cache/apt/archives /media/usb0

Máquina sin buena conexión

Actualiza el listado de paquetes. Aunque la conexión es mala, igual necesitarás Internet para descarga la información de los paquetes:

cupcake:~# aptitude update
cupcake:~# aptitude safe-upgrade
The following packages will be upgraded:
bind9-host dnsutils evolution-data-server evolution-data-server-common gdm3 gnome-shell gnome-shell-common google-chrome-stable gvfs
gvfs-backends gvfs-bin gvfs-common gvfs-daemons gvfs-libs host icedtea-netx icedtea-netx-common krb5-locales libbind9-80 libc-bin libc-dev-bin
libc6 libc6:i386 libc6-dev libc6-i386 libc6-i686:i386 libcairo-gobject2 libcairo2 libcamel-1.2-33 libdbus-glib-1-2 libdns88 libebackend-1.2-2
libebook-1.2-13 libecal-1.2-11 libedata-book-1.2-13 libedata-cal-1.2-15 libedataserver-1.2-16 libedataserverui-3.0-1 libglib2.0-0
libglib2.0-0:i386 libglib2.0-bin libglib2.0-data libgssapi-krb5-2 libgssapi-krb5-2:i386 libisc84 libisccc80 libisccfg82 libk5crypto3
libk5crypto3:i386 libkrb5-3 libkrb5-3:i386 libkrb5support0 libkrb5support0:i386 liblwres80 libperl5.14 libproxy0 libssh-4 libxen-4.1
libxenstore3.0 locales multiarch-support openssh-client openssh-server perl perl-base perl-modules python python-minimal vim vim-common
vim-runtime vim-tiny xserver-xorg-video-nouveau
The following packages are RECOMMENDED but will NOT be installed:
xserver-xephyr
73 packages upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
Need to get 103 MB of archives. After unpacking 16.6 MB will be used.
Do you want to continue? [Y/n/?] n

Aquí puedes ver que se requieren 103 MB para descargar. Le decimos que no con la letra “n”, y ahora copiamos los paquetes del pen-drive al directorio /var/cache/apt/archive/:

cupcake:~# cp -R /media/C6A7-9F3C/archives/* /var/cache/apt/archives/

Ahora actualizamos nuevamente el listado de paquetes e intentamos actualizar:

cupcake:~# aptitude update
cupcake:~# aptitude safe-upgrade
The following packages will be upgraded:
bind9-host dnsutils evolution-data-server evolution-data-server-common gdm3 gnome-shell gnome-shell-common google-chrome-stable gvfs
gvfs-backends gvfs-bin gvfs-common gvfs-daemons gvfs-libs host icedtea-netx icedtea-netx-common krb5-locales libbind9-80 libc-bin libc-dev-bin
libc6 libc6:i386 libc6-dev libc6-i386 libc6-i686:i386 libcairo-gobject2 libcairo2 libcamel-1.2-33 libdbus-glib-1-2 libdns88 libebackend-1.2-2
libebook-1.2-13 libecal-1.2-11 libedata-book-1.2-13 libedata-cal-1.2-15 libedataserver-1.2-16 libedataserverui-3.0-1 libglib2.0-0
libglib2.0-0:i386 libglib2.0-bin libglib2.0-data libgssapi-krb5-2 libgssapi-krb5-2:i386 libisc84 libisccc80 libisccfg82 libk5crypto3
libk5crypto3:i386 libkrb5-3 libkrb5-3:i386 libkrb5support0 libkrb5support0:i386 liblwres80 libperl5.14 libproxy0 libssh-4 libxen-4.1
libxenstore3.0 locales multiarch-support openssh-client openssh-server perl perl-base perl-modules python python-minimal vim vim-common
vim-runtime vim-tiny xserver-xorg-video-nouveau
The following packages are RECOMMENDED but will NOT be installed:
xserver-xephyr
73 packages upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
Need to get 2,474 kB/103 MB of archives. After unpacking 16.6 MB will be used.
Do you want to continue? [Y/n/?]

Como puede verse, ahora solo requiere 2,4 MB, mucho menos de lo que originalmente solicitó y que tardará mucho menos en descargarse en una conexión deficiente como en las redes  3G de Venezuela (coloque aquí el nombre de su operadora favorita).

, ,

4 Comentarios

Intalación de CrossOver en Debian x64

CrossOverCrossOver es una herramienta que permite instalar mucha de las aplicaciones que son muy populares en Windows así como juegos en un computador con Linux.  Está desarrollado por la gente de Codewevers, y de las características que ellos resaltan está el hecho de que es fácil, se puede costear, no requiere de licencias para el sistema operativo Window,  y que se tendrá las aplicaciones de Windows integradas de forma transparente en Linux con solo hacer clic y ejecutar.

Después de este comercial gratis que le hice a la gente de Codeweavers,  aclaro que CrossOver no e mas que un Wine con veneno, es decir, es Wine con una serie de librerías que garantizan ciertos programas de Windows funcionen sin necesidad tener que lidiar con esas dependencias, además de que organizan el software instalado en “botellas” que no es mas que entornos de Wine con discos duros separados.

Si están interesado en bajar la versión de prueba pueden hacerlo aquí.

El problema

Hasta la introducción, todo suena bonito…pero al tratar de instalarlo en mi máquina con Debian x64 me encontré con el siguiente problema:

# gdebi /home/lgallard/Downloads/ia32-crossover_12.1.0-1_amd64.deb
Reading package lists... Done
 Building dependency tree
 Reading state information... Done
 Building data structures... Done
 Building data structures... Done
Requires the installation of the following packages:
 lib32asound2 lib32gcc1 lib32nss-mdns lib32z1 libc6-i386
 Run Windows applications like MS Office
 CrossOver Linux makes it possible to run Windows productivity applications
 such as Microsoft Office, and Quicken, and also lets you play Windows games
 like Skyrim and World of Warcraft.
 Do you want to install the software package? [y/N]: y
  [...]

 (Reading database ... 118461 files and directories currently installed.)
 Unpacking ia32-crossover (from .../ia32-crossover_12.1.0-1_amd64.deb) ...
 dpkg: dependency problems prevent configuration of ia32-crossover:
 ia32-crossover depends on ia32-libs; however:
 Package ia32-libs is not installed.
dpkg: error processing ia32-crossover (--install):
 dependency problems - leaving unconfigured
 Errors were encountered while processing:
 ia32-crossover

Me pareció extraño que gdebi no instalara la dependencia, por lo que decidí instalarlo manualmente:

# aptitude install ia32-libs
 The following NEW packages will be installed:
 ia32-libs{b}
 The following partially installed packages will be configured:
 ia32-crossover
 0 packages upgraded, 1 newly installed, 0 to remove and 0 not upgraded.
 Need to get 114 kB of archives. After unpacking 114 kB will be used.
 The following packages have unmet dependencies:
 ia32-libs : Depends: ia32-libs-i386 which is a virtual package.
 The following actions will resolve these dependencies:
Remove the following packages:
 1) ia32-crossover
Keep the following packages at their current version:
 2) ia32-libs [Not Installed]
Accept this solution? [Y/n/q/?] Y
 The following packages will be REMOVED:
 ia32-crossover{a} lib32asound2{u} lib32gcc1{u} lib32nss-mdns{u} lib32z1{u} libc6-i386{u}
 0 packages upgraded, 0 newly installed, 6 to remove and 0 not upgraded.
 Need to get 0 B of archives. After unpacking 163 MB will be freed.
 Do you want to continue? [Y/n/?]
 (Reading database ... 120124 files and directories currently installed.)
 Removing ia32-crossover ...
 Removing lib32asound2 ...
 Removing lib32gcc1 ...
 Removing lib32nss-mdns ...
 Removing lib32z1 ...
 Removing libc6-i386 ...

Current status: 0 broken [-1], 36004 new [-1].

Pero al consultar el paquete nuevamente por el paquete me doy cuenta que no está instalado:

# aptitude search ia32-libs
 p ia32-libs - Transitional package to migrate ia32-libs to multiarch
 p ia32-libs-gtk - Transitional package to migrate ia32-libs-gtk to multiarch

La solución

Viendo las librerías que CrossOver intenta instalar recordé que hay que agregar la rama i386. Esto se hace de la siguiente manera:

# dpkg --add-architecture i386
# aptitude update

Luego de actualizar el listado de paquetes e intentar instalar nuevamente CrossOver se ve que el número de paquetes requeridos aumenta:

# gdebi /home/lgallard/Downloads/ia32-crossover_12.1.0-1_amd64.deb

Reading package lists... Done Building dependency tree Reading state information... Done Building data structures... Done Building data structures... Done

Requires the installation of the following packages:

esound-common freeglut3:i386 gcc-4.7-base:i386 ia32-libs ia32-libs-i386:i386 lesstif2:i386 lib32asound2 lib32gcc1 lib32nss-mdns lib32z1 libacl1:i386 libaio1:i386 libasound2:i386 libasyncns0:i386 libattr1:i386 libaudio2:i386 libaudiofile1:i386 libavahi-client3:i386 libavahi-common-data:i386 libavahi-common3:i386 libbsd0:i386 libc6-i386 libc6-i686:i386 libc6:i386 libcaca0:i386 libcap2:i386 libcomerr2:i386 libcups2:i386 libcurl3:i386 libdb5.1:i386 libdbus-1-3:i386 libdirectfb-1.2-9:i386 libdrm-intel1:i386 libdrm-nouveau1a:i386 libdrm-radeon1:i386 libdrm2:i386 libedit2:i386 libesd0:i386 libexif12:i386 libexpat1:i386 libffi5:i386 libflac8:i386 libfltk1.1:i386 libfontconfig1:i386 libfreetype6:i386 libgcc1:i386 libgcrypt11:i386 libgd2-xpm:i386 libgdbm3:i386 libgl1-mesa-dri:i386 libgl1-mesa-glx:i386 libglapi-mesa:i386 libglu1-mesa:i386 libgnutls26:i386 libgpg-error0:i386 libgphoto2-2:i386 libgphoto2-l10n libgphoto2-port0:i386 libgpm2:i386 libgssapi-krb5-2:i386 libice6:i386 libidn11:i386 libieee1284-3:i386 libjack-jackd2-0:i386 libjbig0:i386 libjpeg62:i386 libjpeg8:i386 libjson0:i386 libk5crypto3:i386 libkeyutils1:i386 libkrb5-3:i386 libkrb5support0:i386 liblcms1:i386 libldap-2.4-2:i386 libltdl7:i386 liblzma5:i386 liblzo2-2:i386 libmpg123-0:i386 libncursesw5:i386 libnspr4-0d:i386 libnspr4:i386 libnss3-1d:i386 libnss3:i386 libodbc1:i386 libogg0:i386 libopenal1:i386 libp11-kit0:i386 libpam0g:i386 libpciaccess0:i386 libpng12-0:i386 libpopt0:i386 libpulse0:i386 librtmp0:i386 libsamplerate0:i386 libsane-extras-common libsane-extras:i386 libsane:i386 libsasl2-2:i386 libsasl2-modules:i386 libsdl1.2debian:i386 libselinux1:i386 libsigc++-2.0-0c2a:i386 libslang2:i386 libsm6:i386 libsndfile1:i386 libsqlite3-0:i386 libssh2-1:i386 libssl1.0.0:i386 libstdc++5:i386 libstdc++6:i386 libsvga1:i386 libsysfs2:i386 libtasn1-3:i386 libtdb1:i386 libtiff4:i386 libtinfo5:i386 libts-0.0-0:i386 libusb-0.1-4:i386 libuuid1:i386 libv4l-0:i386 libv4lconvert0:i386 libvorbis0a:i386 libvorbisenc2:i386 libvorbisfile3:i386 libwrap0:i386 libx11-6:i386 libx11-xcb1:i386 libx86-1:i386 libxau6:i386 libxaw7:i386 libxcb-glx0:i386 libxcb-render-util0:i386 libxcb-render0:i386 libxcb1:i386 libxcomposite1:i386 libxcursor1:i386 libxdamage1:i386 libxdmcp6:i386 libxext6:i386 libxfixes3:i386 libxft2:i386 libxi6:i386 libxinerama1:i386 libxml2:i386 libxmu6:i386 libxmuu1:i386 libxp6:i386 libxpm4:i386 libxrandr2:i386 libxrender1:i386 libxslt1.1:i386 libxss1:i386 libxt6:i386 libxtst6:i386 libxv1:i386 libxxf86vm1:i386 odbcinst1debian2:i386 uuid-runtime xaw3dg:i386 zlib1g:i386

 Run Windows applications like MS Office
CrossOver Linux makes it possible to run Windows productivity applications
such as Microsoft Office, and Quicken, and also lets you play Windows games
like Skyrim and World of Warcraft.
Do you want to install the software package? [y/N]:y

Al aceptar, se descargarán los paquetes necesarios (son varios) y se instalará correctamente CrossOver.

Referencias:

,

No hay Comentarios

Habilitando el ecualizador en Amarok

Amarok - Equalizer issue

Si de casualidad intentan configurar el ecualizador en Amarok y le sale el mensaje mostrado arriba, basta con instalar el backend phonom de gstreamer:

# aptitude install phonon-backend-gstreamer

Luego de esto podrán usar el ecualizador como se muestra en esta otra imagen:

Amarok - Equalizer solved

También podrán aplicarse los ajustes predeterminados de acuerdo al género que se desee escuchar o modificar manualmente los valores a voluntad.

,

2 Comentarios

Cómo crear un mirror de Debian y Ubuntu con debmirror

Debmirror

A continuación explico cómo configurar un mirror de Debian y Ubuntu, en un servidor de Debian. Los pasos explicados a continuación se pueden conseguir en otro sitios, salvo la parte de importación de las llaves de los repositorios. Por ejemplo, en los tutoriales de Ubuntu explican cómo instalar las llaves suponiendo que el servidor donde se va a hacer el mirror corre Ubuntu, pero y si es un servidor con Debian?

Instalación de debmirror

Como mencioné, usé debmirror para hacer el mirror de ambas distribuciones. Existen otros, como por ejemplo apt-cacher, pero se escogió debmirror porque en esencia se necesita hacer mirror de todo los repositorios de Ubuntu y Debian. Entonces, para instalar debmiror basta con escribir lo siguiente como root:

aptitude install debmirror

Instalación de las llaves

Luego se deben instalar la llaves (keyrings) de los repositorios. Como se quiere hacer un mirror tanto de Debian como de Ubuntu, bajaremos los paquetes e importaremos las llaves para cada distro:

Debian

Para instalar las llaves de los repositorios de Debian se debe bajar el paquete debian-archive-keyrings mas reciente, por ejemplo de testing:

# wget http://ftp.us.debian.org/debian/pool/main/d/debian-archive-keyring/debian-archive-keyring_2012.4_all.deb

Luego se procede a extraer el contenido del paquete en el directorio home de root:

# dpkg-deb -x debian-archive-keyring_2012.4_all.deb ~

Ahora se debe importar las llaves:

# gpg --no-default-keyring --keyring /home/repo/keyrings/debian/trustedkeys.gpg --import /root/usr/share/keyrings/debian-archive-keyring.gpg
 gpg: keyring `/home/repo/keyrings/debian/trustedkeys.gpg' created
 gpg: key B98321F9: public key "Squeeze Stable Release Key " imported
 gpg: key 473041FA: public key "Debian Archive Automatic Signing Key (6.0/squeeze) " imported
 gpg: key 65FFB764: public key "Wheezy Stable Release Key " imported
 gpg: key 46925553: public key "Debian Archive Automatic Signing Key (7.0/wheezy) " imported
 gpg: Total number processed: 4
 gpg: imported: 4 (RSA: 4)
 gpg: no ultimately trusted keys found

Ubuntu

Para Ubuntu se debe hacer algo similar. Se debe bajar el paquete ubuntu-keyring mas reciente. Para la fecha tomé uno de los repositorios de quantal:

# wget http://pa.archive.ubuntu.com/ubuntu/pool/main/u/ubuntu-keyring/ubuntu-keyring_2012.05.19_all.deb

Luego se procede a extraer el contenido del paquete en el directorio home de root e importar las llaves:

# dpkg-deb -x ubuntu-keyring_2012.05.19_all.deb ~
# gpg --no-default-keyring --keyring /home/repo/keyrings/ubuntu/trustedkeys.gpg --import /root/usr/share/keyrings/ubuntu-archive-keyring.gpg
gpg: keyring `/home/repo/Ubuntu/mirrorkeyring/trustedkeys.gpg' created
 gpg: key 437D05B5: public key "Ubuntu Archive Automatic Signing Key " imported
 gpg: key FBB75451: public key "Ubuntu CD Image Automatic Signing Key " imported
 gpg: key C0B21F32: public key "Ubuntu Archive Automatic Signing Key (2012) " imported
 gpg: key EFE21092: public key "Ubuntu CD Image Automatic Signing Key (2012) " imported
 gpg: Total number processed: 4
 gpg: imported: 4 (RSA: 2)
 gpg: no ultimately trusted keys found

El script de debmirror

Para Ubuntu

El script como tal es una adaptación de la documentación que se consigue en Ubuntu, el cual se puede guardar en el archivo /home/repo/scripts/debian.sh con la siguiente información:

#!/bin/sh
# Don't touch the user's keyring, have our own instead
export GNUPGHOME=/home/repo/keyrings/ubuntu

# Architecture. For Ubuntu can be i386, powerpc or amd64.
arch=i386,amd64

# Minimum Ubuntu system requires main, restricted
# Section (One of the following - main/restricted/universe/multiverse).
section=main,multiverse,universe,restricted

# Release of the system (Quantal, Precise, etc)
release=quantal,quantal-security,quantal-updates,quantal-backports,precise,precise-security,precise-updates,precise-backports

# Server name, minus the protocol and the path at the end
server=us.archive.ubuntu.com

# Path from the main server, so http://my.web.server/$dir, Server dependant
inPath=/ubuntu

# Protocol to use for transfer (http, ftp, hftp, rsync)
proto=http

# Directory to store the mirror in
outPath=/home/repo/mirrors/ubuntu

# Start script

debmirror       -a $arch \
                --no-source \
                --md5sums \
                --progress \
                --passive \
                --verbose \
                -s $section \
                -h $server \
                -d $release \
                -r $inPath \
                -e $proto \

Para Debian

Para Debian cambiarían los valores, y en esencia en el archivo archivo /home/repo/scripts/debian.sh pondríamos algo como esto:

#!/bin/sh

# Don't touch the user's keyring, have our own instead
export GNUPGHOME=/home/repo/keyrings/debian

# Architecture (i386, powerpc, amd64, etc.)
arch=i386,amd64

# Section (main,contrib,non-free)
section=main,contrib,non-free

# Release of the system (squeeze,lenny,stable,testing,etc)
release=squeeze

# Server name, minus the protocol and the path at the end
server=ftp.us.debian.org

# Path from the main server, so http://my.web.server/$dir, Server dependant
inPath=/debian

# Protocol to use for transfer (http, ftp, hftp, rsync)
proto=http

# Directory to store the mirror in
outPath=/home/repo/mirrors/debian

# Start script

debmirror       -a $arch \
                --no-source \
		--md5sums \
		--progress \
		--passive \
		--verbose \
                -s $section \
                -h $server \
                -d $release \
                -r $inPath \
                -e $proto \
                $outPath

Nota: Para ambos casos se debe dar permisología de ejecución a los scripts, se debe probar la conexión a los servidores seleccionados, y que habrá suficiente espacio para alojar dichos repositorios.

Tarea programada (crontab)

Una vez que se tienen los scripts, se puede configurar una tarea programada para que la sincronización del mirror se haga a un tiempo determinado. Por ejemplo, para que se ejecute diariamente a las 12 de la media noche podemos colocar esto en el /etc/crontab:

0 0 * * *    root    /home/repo/scripts/debian.sh
0 0 * * *    root    /home/repo/scripts/ubuntu.sh

Publicación de los mirrror

Para publicar los mirror vía http se puede instalar un servidor web, como Apache:

aptitude install apache2

Por omisión en Debian, Apache  tiene el directorio /var/www/ como la raíz. Entonces para configurar los mirrors basta con crear los enlaces simbólicos apuntando a este directorio:

# ln -s /home/repo/mirrors/ubuntu /var/www/
# ln -s /home/repo/mirrors/debian /var/www/

Configuración de los clientes

Para configurar los clientes habría que editar el archivo de configuración /etc/apt/sources.list, según sea la versión de Linux que se esté usando en el cliente:

Para Ubuntu

Para Ubuntu precise (12.04) se debería tener algo como esto en el /etc/apt/sources.list:

deb http://192.168.1.1/ubuntu/ precise main restricted universe multiverse
deb http://192.168.1.1/ubuntu/ precise-updates main restricted universe multiverse
deb http://192.168.1.1/ubuntu/ precise-backports main restricted universe multiverse
deb http://192.168.1.1/ubuntu/ precise-security main restricted universe multiverse

En este caso la dirección IP 192.168.1.1 corresponde al servidor que aloja los repositorios, los cuales se publicaron vía http con Apache. Se debe cambiar por la IP del servidor que se esté configurando o una entrada de DNS válida que lo identifique.

Para Debian

Para Debian Squeeze se debe escribir lo siguiente en el /etc/apt/sources.list:

deb http://192.168.1.1/debian squeeze main contrib non-free
deb http://192.168.1.1/debian-security squeeze/updates main contrib non-free

Para ambos casos, luego se debe actualizar la lista de paquetes:

aptitude update

Una vez que se hayan actualizado el listado de paquetes ya se podrá instalar y actualizar aplicaciones desde estos repositorios.

, ,

17 Comentarios