pacman -Ss package_name - поиск по части названия
pacman -Qs package_name - поиск среди установленных пакетов
pacman -Rs package_name - удалить пакет со всеми зависимостями, не используемыми другими установленными пакетами
pacman -Scc - очистка кеша /var/cache/pacman/pkg
подготовка собственного реппозитория
pacman -Sw package_name - скачать пакет, но не устанавливать
pacman -U /путь/к/пакету/package_name-version.pkg.tar.gz - установить локальный пакет
свой реппозиторий
#!/usr/bin/perl
use strict;
unless (defined $ARGV[0] && defined $ARGV[1]){
print STDERR "\nUsage: gendb <DIR> <NAME>\n\n";
exit 1;
}
`rm -rf /tmp/pkgdb`;
opendir(DIR, $ARGV[0]) || die "Can't open dir $ARGV[0]: $!";
while(my $file=readdir(DIR)){
if($file =~ /^(.+)\.pkg.tar.gz$/){
my $pkg = $1;
my @filedata=stat($ARGV[0]."/".$file);
my %info = ();
my $i;
print STDERR "Processing $file\n";
`mkdir -p /tmp/pkgdb/$pkg`;
`rm -f /tmp/PKGINFO ; tar -O -xzf $ARGV[0]/$file .PKGINFO > /tmp/PKGINFO`;
open(INPUT, "/tmp/PKGINFO") || die "can't open PKGINFO file: $!";
while(<INPUT>)
{
chomp;
if( /^([a-z]+)\s?[=]\s?(.+)$/ )
{
my $attr = $1;
my $value = $2;
$info{$attr} .= $value." ";
}
}
close(INPUT);
open(OUT, "> /tmp/pkgdb/$pkg/desc") || die "can't open desc file: $!";
print OUT "\%NAME\%\n".$info{"pkgname"}."\n\n";
print OUT "\%VERSION\%\n".$info{"pkgver"}."\n\n";
print OUT "\%DESC\%\n".$info{"pkgdesc"}."\n\n";
print OUT "\%CSIZE\%\n".$filedata[7]."\n\n";
print OUT "\%MD5SUM\%\n";
close(OUT);
`md5sum $ARGV[0]/$file | cut -f1 -d' ' >> /tmp/pkgdb/$pkg/desc`;
open(OUT, ">> /tmp/pkgdb/$pkg/desc") || die "can't open desc file: $!";
print OUT "\n\%REPLACES\%\n";
foreach $i (split(' ',$info{"replaces"})){ print OUT $i."\n";}
print OUT "\n";
close(OUT);
open(OUT, "> /tmp/pkgdb/$pkg/depends") || die "can't open depends file: $!";
print OUT "\%DEPENDS\%\n";
foreach $i (split(' ',$info{"depend"})){ print OUT $i."\n";}
print OUT "\n";
print OUT "\%CONFLICTS\%\n";
foreach $i (split(' ',$info{"conflict"})){ print OUT $i."\n";}
print OUT "\n";
print OUT "\%PROVIDES\%\n";
foreach $i (split(' ',$info{"provides"})){ print OUT $i."\n";}
print OUT "\n";
close(OUT);
}
}
closedir DIR;
`cd /tmp/pkgdb ; tar -czf $ARGV[1].db.tar.gz *`;
`cp /tmp/pkgdb/$ARGV[1].db.tar.gz $ARGV[0]/`
repo-add /path/to/goglus.db.tar.gz *.pkg.tar.gz
путь до папки и имя свои
repo-add /path/to/goglus.db.tar.gz packagetoadd-1.0-1-i686.pkg.tar.gz - добавление пакетов в созданный репозиторий
http://wiki.archlinux.org
http://wiki.archlinux.org/index.php/Pacman
Комментариев нет:
Отправить комментарий