Un petit script “pas fini” qui m’a permis d’installer zattoo_tv sur ma machine amd64.
Ce script permet de rappatrier depuis le pool, puis de déployer salement dans /emul/ia32-linux/ les libs 32 bits qui manquent au paquet ia32-lib pour faire tourner certaines applications.
[code]#!/usr/bin/perl -w
use strict;
use warnings;
use constant DEBIAN_MIRROR_ROOT_URI => “http://mirror.home-dn.net/debian-multimedia/”;
#use constant DEBIAN_MIRROR_ROOT_URI => “http://ftp.fr.debian.org/debian/”;
use constant DBG=>undef;
#use AptPkg;
use AptPkg::Config ‘$_config’;
use AptPkg::System ‘$_system’;
use AptPkg::Cache;
#use Net::FTP;
use File::Basename;
(my $self = $0) =~ s#.*/##;
initialise the global config object with the default values and
setup the $_system object
$_config->init;
$_system = $_config->system;
supress cache building messages
$_config->{quiet} = 2;
set up the cache
my $cache = AptPkg::Cache->new;
my $packages = $cache->packages;
die “Usage: $self PACKAGE …\n” unless @ARGV;
for my $packname (@ARGV) {
print “Paquet: $packname\n”;
my $pkgrec = ${packages}->lookup($packname);
if ($pkgrec) {
my ($filename,$filepath) = fileparse($pkgrec->{FileName});
$filename =~ s/amd64/i386/;
print "FileName: $filename\n";
my $uri = DEBIAN_MIRROR_ROOT_URI."${filepath}${filename}";
print "File URI: $uri\n";
if (!system("wget -c $uri".(DBG ? "" : " 2>&1 >/dev/null"))) {
if ( $ftp->get("${filepath}${filename}",${filename},-s ${filename}) ) {
print "Telechargement termine.\n";
print "Deploiement de $filename dans le chroot:\n";
print "dpkg -X ${filename} /emul/ia32-linux) ->\n" if DBG;
if ( system("dpkg -X ${filename} /emul/ia32-linux".(DBG ? "" : " 2>&1 >/dev/null")) ) {
die "Echec du deploiement de $packname !\n";
} else {
print "Succes.\n";
};
} else { warn "Echec du telechargement sur $packname.\n"};
} else { print “$packname est un paquet virtuel.\n”; }
print “\n”;
}
1;[/code]Bon, vous le verrez à l’usage, c’est crade.
Par exemple, pour installer zatootv, mon script s’appelant chez moi prep32.pl, j’ai du commencer par faire:
sudo ../prep32.pl libgtkglext1 libbonoboui2-0 libavahi-glib1 libavformat1d librsvg2-common libssl0.9.8 libavahi-common3 libcurl3 libgnome2-0 libdbus-1-3 libavahi-client3 libgnome-keyring0 libgnomeui-0 libdbus-glib-1-2 libfaad0 libcomerr2 libgnomevfs2-0 libkrb53 libmozjs0d libidn11 libkeyutils1 libnspr4-0d libxul0d libssh2-1
puis comme certains paquets echouaient parcequ’ils ne venaient pas du dépot principal, j’ai dû aller modifier dans le script la valeur de DEBIAN_MIRROR_ROOT_URI , avant de faire un:
sudo ../prep32.pl libgnomeui-0 libmozjs0d libxul0d
pour les rappatrier depuis un deuxiême dépot.
Par contre, aprés, je n’ai plus eu qu’a faire un dpkg -i --force-arch du paquet propriétaire 32bits de zattoo, et maintenant, j’ai la télé sur le net sur ma 64 bits.
Et ça peut marcher pour d’autres trucs, sans se casser la tête avec un chroot 32.