Vineri 29 Aprilie 2005 01:26, Roy O. Wright a scris:
> Howdy,
>
> I was wanting to install just kdebase-3.4.0 without unmasking all of
> kde-3.4.0. The "HOWTO
> Update KDE 3.3 to KDE 3.4"
> (http://www.gentoo-wiki.com/HOWTO_Update_KDE_3.3_to_KDE_3.4)
> suggested running emerge kdebase -p, find a package that is blocking,
> then add that package to
> /etc/portage/packages.keywords, and repeat until no more packages are
> blocking. Tedious.
> So here's a perl script to do just that. It will work for any package.
>
> Usage: unmask.pl packageName
>
> -- begin: unmask.pl --------------------------------------------
> #!/usr/bin/perl -w
>
> # quick hack to recursively unmask all packages that are blocking the given
> # package from emerging.
> # usage: unmask.pl packageName
>
> print "unmasking:=$ARGV[0]\n";
>
> &doit;
> exit(0);
>
> # doit()
> sub doit {
> local $flag = 1;
> local $package = $ARGV[0];
>
> while($flag) {
> $flag = 0;
> open my $fh, "emerge $package -p|" || die "could not open:
> emerge $package -p";
> while(<$fh>) {
> if(/^\-\s+(.*)\-[\d\.]+\s+\(masked
> by\:\s+(\~\S+)\s+keyword\)/) {
> unmask($1, $2);
> $flag = 1;
> last;
> }
> }
> close($fh);
> }
> }
>
> # unmask the file by adding it to /etc/portage/package.keywords
> sub unmask
> {
> local($name, $arch) = @_;
> print "unmasking: $name\n";
> open my $fh, ">>/etc/portage/package.keywords" || die "can't open
> package.keywords: $!";
> print $fh "$name $arch\n";
> close $fh;
> }
> -- end: unmask.pl --------------------------------------------
>
> Have fun,
> Roy
I wish you posted this 2 days ago ... great work! :)
--
Adi
--
gentoo-user@gentoo.org mailing list