package fs; # $Id$ use diagnostics; use strict; use MDK::Common::System; use MDK::Common::Various; use common; use log; use devices; use fs::type; use fs::get; use fs::format; use fs::mount_options; use run_program; use detect_devices; use modules; use fsedit; use loopback; sub read_fstab { my ($prefix, $file, @reading_options) = @_; if (member('keep_default', @reading_options)) { push @reading_options, 'freq_passno', 'keep_devfs_name', 'keep_device_LABEL'; } my %comments; my $comment; my @l = grep { if (/^Filename\s*Type\s*Size/) { 0; #- when reading /proc/swaps } elsif (/^\s*#/) { $comment .= chomp_($_) . "\n"; 0; } else { $comments{$_} = $comment if $comment; $comment = ''; 1; } } cat_("$prefix$file"); #- attach comments at the end of fstab to the previous line $comments{$l[-1]} = $comment if $comment; map { my ($dev, $mntpoint, $fs_type, $options, $freq, $passno) = split; my $comment = $comments{$_}; $options = 'defaults' if $options eq 'rw'; # clean-up for mtab read if ($fs_type eq 'supermount') { # normalize this bloody supermount $options = join(",", 'supermount', grep { if (/fs=(.*)/) { $fs_type = $1; 0; } elsif (/dev=(.*)/) { $dev = $1; 0; } elsif ($_ eq '--') { 0; } else { 1; } } split(',', $options)); } elsif ($fs_type eq 'smb') { # prefering type "smbfs" over "smb" $fs_type = 'smbfs'; } s/\\040/ /g foreach $mntpoint, $dev, $options; my $h = { mntpoint => $mntpoint, fs_type => $fs_type, options => $options, comment => $comment, if_(member('keep_freq_passno', @reading_options), freq => $freq, passno => $passno), }; put_in_hash($h, subpart_from_wild_device_name($dev)); if ($h->{device_LABEL} && member('keep_device_LABEL', @reading_options)) { $h->{prefer_device_LABEL} = 1; } elsif ($h->{devfs_device} && member('keep_devfs_name', @reading_options)) { $h->{prefer_devfs_name} = 1; } if ($h->{options} =~ /credentials=/ && !member('verbatim_credentials', @reading_options)) { require network::smb; #- remove credentials=file with username=foo,password=bar,domain=zoo #- the other way is done in fstab_to_string my ($options, $unknown) = fs::mount_options::unpack($h); my $file = delete $options->{'credentials='}; my $credentials = network::smb::read_credentials_raw($file); if ($credentials->{username}) { $options->{"$_="} = $credentials->{$_} foreach qw(username password domain); fs::mount_options::pack($h, $options, $unknown); } } $h; } @l; } sub merge_fstabs { my ($loose, $fstab, @l) = @_; foreach my $p (@$fstab) { my ($l1, $l2) = partition { fsedit::is_same_hd($_, $p) } @l; my ($p2) = @$l1 or next; @l = @$l2; $p->{mntpoint} = $p2->{mntpoint} if delete $p->{unsafeMntpoint}; if (!$loose) { $p->{fs_type} = $p2->{fs_type} if $p2->{fs_type}; $p->{options} = $p2->{options} if $p2->{options}; add2hash($p, $p2); } else { $p->{isMounted} ||= $p2->{isMounted}; } $p->{device_alias} ||= $p2->{device_alias} || $p2->{device} if $p->{device} ne $p2->{device} && $p2->{device} !~ m|/|; $p->{fs_type} && $p2->{fs_type} && $p->{fs_type} ne $p2->{fs_type} && $p->{fs_type} ne 'auto' && $p2->{fs_type} ne 'auto' and log::l("err, fstab and partition table do not agree for $p->{device} type: $p->{fs_type} vs $p2->{fs_type}"); } @l; } sub analyze_wild_device_name { my ($dev) = @_; if ($dev =~ m!^/u?dev/(.*)!) { 'dev', $dev; } elsif ($dev !~ m!^/! && (-e "/dev/$dev" || -e "$::prefix/dev/$dev")) { 'dev', "/dev/$dev"; } elsif ($dev =~ /^LABEL=(.*)/) { 'label', $1; } elsif ($dev eq 'none' || $dev eq 'rootfs') { 'virtual'; } elsif ($dev =~ m!^(\S+):/\w!) { 'nfs'; } elsif ($dev =~ m!^//\w!) { 'smb'; } elsif ($dev =~ m!^http://!) { 'dav'; } } sub subpart_from_wild_device_name { my ($dev) = @_; my $part = { device => $dev, faked_device => 1 }; #- default if (my ($kind, $val) = analyze_wild_device_name($dev)) { if ($kind eq 'label') { $part->{device_LABEL} = $val; } elsif ($kind eq 'dev') { my %part = (faked_device => 0); if (my $rdev = (stat "$::prefix$dev")[6]) { ($part{major}, $part{minor}) = unmakedev($rdev); } my $symlink = readlink("$::prefix$dev"); $dev =~ s!/u?dev/!!; if ($symlink && $symlink =~ m|^[^/]+$|) { $part{device_alias} = $dev; $dev = $symlink; } if (my (undef, $part_number) = $dev =~ m!/(disc|part(\d+))$!) { $part{part_number} = $part_number if $part_number; $part{devfs_device} = $dev; } else { my $part_number = devices::part_number(\%part); $part{part_number} = $part_number if $part_number; } $part{device} = $dev; return \%part; } } else { if ($dev =~ m!^/! && -f "$::prefix$dev") { #- it must be a loopback file or directory to bind } else { log::l("part_from_wild_device_name: unknown device $dev"); } } $part; } sub part2wild_device_name { my ($prefix, $part) = @_; if ($part->{prefer_device_LABEL}) { 'LABEL=' . $part->{device_LABEL}; } elsif ($part->{prefer_devfs_name}) { "/dev/$part->{devfs_device}"; } elsif ($part->{device_alias}) { "/dev/$part->{device_alias}"; } else { my $faked_device = exists $part->{faked_device} ? $part->{faked_device} : do { #- in case $part has been created without using subpart_from_wild_device_name() my ($kind) = analyze_wild_device_name($part->{device}); $kind ? $kind ne 'dev' : $part->{device} =~ m!^/!; }; if ($faked_device) { $part->{device}; } elsif ($part->{device} =~ m!^/dev/!) { log::l("ERROR: i have a full device $part->{device}, this should not happen. use subpart_from_wild_device_name() instead of creating bad part data-structures!"); $part->{device}; } else { my $dev = "/dev/$part->{device}"; eval { devices::make("$prefix$dev") }; $dev; } } } sub add2all_hds { my ($all_hds, @l) = @_; @l = merge_fstabs('', [ fs::get::really_all_fstab($all_hds) ], @l); foreach (@l) { my $s = $_->{fs_type} eq 'nfs' ? 'nfss' : $_->{fs_type} eq 'smbfs' ? 'smbs' : $_->{fs_type} eq 'davfs' ? 'davs' : isTrueLocalFS($_) || isSwap($_) || isOtherAvailableFS($_) ? '' : 'special'; push @{$all_hds->{$s}}, $_ if $s; } } sub get_major_minor { eval { my (undef, $major, $minor) = devices::entry($_->{device}); ($_->{major}, $_->{minor}) = ($major, $minor); } foreach @_; } sub merge_info_from_mtab { my ($fstab) = @_; my @l1 = map { my $l = $_; my $h = fs::type::fs_type2subpart('swap'); $h->{$_} = $l->{$_} foreach qw(device major minor); $h; } read_fstab('', '/proc/swaps'); my @l2 = map { read_fstab('', $_) } '/etc/mtab', '/proc/mounts'; foreach (@l1, @l2) { log::l("found mounted partition on $_->{device} with $_->{mntpoint}"); if ($::isInstall && $_->{mntpoint} =~ m!/tmp/(image|hdimage)!) { $_->{real_mntpoint} = delete $_->{mntpoint}; if ($_->{real_mntpoint} eq '/tmp/hdimage') { log::l("found hdimage on $_->{device}"); $_->{mntpoint} = "/mnt/hd"; #- remap for hd install. } } $_->{isMounted} = 1; set_isFormatted($_, 1); } merge_fstabs('loose', $fstab, @l1, @l2); } # - when using "$loose", it does not merge in type&options from the fstab sub merge_info_from_fstab { my ($fstab, $prefix, $uniq, $loose) = @_; my @l = grep { if ($uniq) { my $part = fs::get::mntpoint2part($_->{mntpoint}, $fstab); !$part || fsedit::is_same_hd($part, $_); #- keep it only if it is the mountpoint AND the same device } else { 1; } } read_fstab($prefix, '/etc/fstab', 'keep_default'); merge_fstabs($loose, $fstab, @l); } sub get_info_from_fstab { my ($all_hds) = @_; my @l = read_fstab($::prefix, '/etc/fstab', 'keep_default'); add2all_hds($all_hds, @l); } sub prepare_write_fstab { my ($fstab, $o_prefix, $b_keep_smb_credentials) = @_; $o_prefix ||= ''; my %new; my @smb_credentials; my @l = map { my $device = isLoopback($_) ? ($_->{mntpoint} eq '/' ? "/initrd/loopfs" : $_->{loopback_device}{mntpoint}) . $_->{loopback_file} : part2wild_device_name($o_prefix, $_); my $real_mntpoint = $_->{mntpoint} || ${{ '/tmp/hdimage' => '/mnt/hd' }}{$_->{real_mntpoint}}; mkdir_p("$o_prefix$real_mntpoint") if $real_mntpoint =~ m|^/|; my $mntpoint = loopback::carryRootLoopback($_) ? '/initrd/loopfs' : $real_mntpoint; my ($freq, $passno) = exists $_->{freq} ? ($_->{freq}, $_->{passno}) : isTrueLocalFS($_) && $_->{options} !~ /encryption=/ && (!$_->{is_removable} || member($_->{mntpoint}, fs::type::directories_needed_to_boot())) ? (1, $_->{mntpoint} eq '/' ? 1 : loopback::carryRootLoopback($_) ? 0 : 2) : (0, 0); if (($device eq 'none' || !$new{$device}) && ($mntpoint eq 'swap' || !$new{$mntpoint})) { #- keep in mind the new line for fstab. $new{$device} = 1; $new{$mntpoint} = 1; my $options = $_->{options}; if ($_->{fs_type} eq 'smbfs' && $options =~ /password=/ && !$b_keep_smb_credentials) { require network::smb; if (my ($opts, $smb_credentials) = network::smb::fstab_entry_to_credentials($_)) { $options = $opts; push @smb_credentials, $smb_credentials; } } my $fs_type = $_->{fs_type} || 'auto'; s/ /\\040/g foreach $mntpoint, $device, $options; # handle bloody supermount special case if ($options =~ /supermount/) { my @l = grep { $_ ne 'supermount' } split(',', $options); my ($l1, $l2) = partition { member($_, 'ro', 'exec') } @l; $options = join(",", "dev=$device", "fs=$fs_type", @$l1, if_(@$l2, '--', @$l2)); ($device, $fs_type) = ('none', 'supermount'); } else { #- if we were using supermount, the type could be something like ext2:vfat #- but this can not be done without supermount, so switching to "auto" $fs_type = 'auto' if $fs_type =~ /:/; } my $file_dep = $options =~ /\b(loop|bind)\b/ ? $device : ''; [ $file_dep, $mntpoint, $_->{comment} . join(' ', $device, $mntpoint, $fs_type, $options || 'defaults', $freq, $passno) . "\n" ]; } else { (); } } grep { $_->{device} && ($_->{mntpoint} || $_->{real_mntpoint}) && $_->{fs_type} && ($_->{isFormatted} || !$_->{notFormatted}) } @$fstab; sub sort_it { my (@l) = @_; if (my $file_based = find { $_->[0] } @l) { my ($before, $other) = partition { $file_based->[0] =~ /^\Q$_->[1]/ } @l; $file_based->[0] = ''; #- all dependencies are now in before if (@$other && @$before) { sort_it(@$before), sort_it(@$other); } else { sort_it(@l); } } else { sort { $a->[1] cmp $b->[1] } @l; } } @l = sort_it(@l); join('', map { $_->[2] } @l), \@smb_credentials; } sub fstab_to_string { my ($all_hds, $o_prefix) = @_; my $fstab = [ fs::get::really_all_fstab($all_hds), @{$all_hds->{special}} ]; my ($s, undef) = prepare_write_fstab($fstab, $o_prefix, 'keep_smb_credentials'); $s; } sub write_fstab { my ($all_hds, $o_prefix) = @_; log::l("writing $o_prefix/etc/fstab"); my $fstab = [ fs::get::really_all_fstab($all_hds), @{$all_hds->{special}} ]; my ($s, $smb_credentials) = prepare_write_fstab($fstab, $o_prefix, ''); output("$o_prefix/etc/fstab", $s); network::smb::save_credentials($_) foreach @$smb_credentials; } sub auto_fs() { grep { chop; $_ && !/nodev/ } cat_("/etc/filesystems"); } sub set_removable_mntpoints { my ($all_hds) = @_; my %names; foreach (@{$all_hds->{raw_hds}}) { my $name = detect_devices::suggest_mount_point($_) or next; $name eq 'zip' and next; my $s = ++$names{$name}; $_->{mntpoint} ||= "/mnt/$name" . ($s == 1 ? '' : $s); } } sub get_raw_hds { my ($prefix, $all_hds) = @_; push @{$all_hds->{raw_hds}}, detect_devices::removables(); $_->{is_removable} = 1 foreach @{$all_hds->{raw_hds}}; get_major_minor(@{$all_hds->{raw_hds}}); my @fstab = read_fstab($prefix, '/etc/fstab', 'keep_default'); $all_hds->{nfss} = [ grep { $_->{fs_type} eq 'nfs' } @fstab ]; $all_hds->{smbs} = [ grep { $_->{fs_type} eq 'smbfs' } @fstab ]; $all_hds->{davs} = [ grep { $_->{fs_type} eq 'davfs' } @fstab ]; $all_hds->{special} = [ (grep { $_->{fs_type} eq 'tmpfs' } @fstab), { device => 'none', mntpoint => '/proc', fs_type => 'proc' }, ]; } ################################################################################ # mounting functions ################################################################################ sub set_loop { my ($part) = @_; $part->{real_device} ||= devices::set_loop(devices::make($part->{device}), $part->{encrypt_key}, $part->{options} =~ /encryption=(\w+)/); } sub swapon { my ($dev) = @_; log::l("swapon called with $dev"); syscall_('swapon', devices::make($dev), 0) or die "swapon($dev) failed: $!"; } sub swapoff { my ($dev) = @_; syscall_('swapoff', devices::make($dev)) or die "swapoff($dev) failed: $!"; } sub formatMount_part { my ($part, $raids, $fstab, $prefix, $wait_message) = @_; if (isLoopback($part)) { formatMount_part($part->{loopback_device}, $raids, $fstab, $prefix, $wait_message); } if (my $p = fs::get::up_mount_point($part->{mntpoint}, $fstab)) { formatMount_part($p, $raids, $fstab, $prefix, $wait_message) unless loopback::carryRootLoopback($part); } if ($part->{toFormat}) { fs::format::part($raids, $part, $prefix, $wait_message); } mount_part($part, $prefix, 0, $wait_message); } sub formatMount_all { my ($raids, $fstab, $prefix, $wait_message) = @_; formatMount_part($_, $raids, $fstab, $prefix, $wait_message) foreach sort { isLoopback($a) ? 1 : isSwap($a) ? -1 : 0 } grep { $_->{mntpoint} } @$fstab; #- ensure the link is there loopback::carryRootCreateSymlink($_, $prefix) foreach @$fstab; #- for fun :) #- that way, when install exits via ctrl-c, it gives hand to partition eval { my ($_type, $major, $minor) = devices::entry(fs::get::root($fstab)->{device}); output "/proc/sys/kernel/real-root-dev", makedev($major, $minor); }; } sub mount { my ($dev, $where, $fs, $b_rdonly, $o_options, $o_wait_message) = @_; log::l("mounting $dev on $where as type $fs, options $o_options"); mkdir_p($where); $fs or log::l("not mounting $dev partition"), return; { my @fs_modules = qw(ext3 hfs jfs ntfs romfs reiserfs ufs xfs vfat); my @types = (qw(ext2 proc sysfs usbfs usbdevfs iso9660 devfs devpts), @fs_modules); push @types, 'smb', 'smbfs', 'nfs', 'davfs' if !$::isInstall; if (!member($fs, @types) && !$::move) { log::l("skipping mounting $dev partition ($fs)"); return; } if ($::isInstall) { if (member($fs, @fs_modules)) { eval { modules::load($fs) }; } elsif ($fs eq 'iso9660') { eval { modules::load('isofs') }; } } } $where =~ s|/$||; my @mount_opt = split(',', $o_options || ''); if ($fs eq 'vfat') { @mount_opt = 'check=relaxed'; } elsif ($fs eq 'jfs' && !$b_rdonly) { fsck_jfs($dev, $o_wait_message); } elsif ($fs eq 'ext2' && !$b_rdonly) { fsck_ext2($dev, $o_wait_message); } push @mount_opt, 'ro' if $b_rdonly; log::l("calling mount -t $fs $dev $where @mount_opt"); $o_wait_message->(N("Mounting partition %s", $dev)) if $o_wait_message; run_program::run('mount', '-t', $fs, $dev, $where, if_(@mount_opt, '-o', join(',', @mount_opt))) or die N("mounting partition %s in directory %s failed", $dev, $where); } sub fsck_ext2 { my ($dev, $o_wait_message) = @_; $o_wait_message->(N("Checking %s", $dev)) if $o_wait_message; foreach ('-a', '-y') { run_program::raw({ timeout => 60 * 60 }, "fsck.ext2", $_, $dev); my $err = $?; if ($err & 0x0100) { log::l("fsck corrected partition $dev"); } if ($err & 0xfeff) { my $txt = sprintf("fsck failed on %s with exit code %d or signal %d", $dev, $err >> 8, $err & 255); $_ eq '-y' ? die($txt) : cdie($txt); } else { last; } } } sub fsck_jfs { my ($dev, $o_wait_message) = @_; $o_wait_message->(N("Checking %s", $dev)) if $o_wait_message; #- needed if the system is dirty otherwise mounting read-write simply fails run_program::raw({ timeout => 60 * 60 }, "fsck.jfs", $dev) or do { my $err = $?; die "fsck.jfs failed" if $err & 0xfc00; }; } #- takes the mount point to umount (can also be the device) sub umount { my ($mntpoint) = @_; $mntpoint =~ s|/$||; log::l("calling umount($mntpoint)"); syscall_('umount2', $mntpoint, 0) or do { kill 15, fuzzy_pidofs('^fam\b'); syscall_('umount2', $mntpoint, 0) or die N("error unmounting %s: %s", $mntpoint, $!); }; substInFile { $_ = '' if /(^|\s)$mntpoint\s/ } '/etc/mtab'; #- do not care about error, if we can not read, we will not manage to write... (and mess mtab) } sub mount_part { my ($part, $o_prefix, $b_rdonly, $o_wait_message) = @_; #- root carrier's link can not be mounted loopback::carryRootCreateSymlink($part, $o_prefix); log::l("mount_part: " . join(' ', map { "$_=$part->{$_}" } 'device', 'mntpoint', 'isMounted', 'real_mntpoint')); if ($part->{isMounted} && $part->{real_mntpoint} && $part->{mntpoint}) { log::l("remounting partition on $o_prefix$part->{mntpoint} instead of $part->{real_mntpoint}"); if ($::isInstall) { #- ensure partition will not be busy. require install_any; install_any::getFile('XXX'); } eval { umount($part->{real_mntpoint}); rmdir $part->{real_mntpoint}; symlinkf "$o_prefix$part->{mntpoint}", $part->{real_mntpoint}; delete $part->{real_mntpoint}; $part->{isMounted} = 0; }; } return if $part->{isMounted}; unless ($::testing) { if (isSwap($part)) { $o_wait_message->(N("Enabling swap partition %s", $part->{device})) if $o_wait_message; swapon($part->{device}); } else { $part->{mntpoint} or die "missing mount point for partition $part->{device}"; my $mntpoint = ($o_prefix || '') . $part->{mntpoint}; if (isLoopback($part) || $part->{encrypt_key}) { set_loop($part); } elsif ($part->{options} =~ /encrypted/) { log::l("skip mounting $part->{device} since we do not have the encrypt_key"); return; } elsif (loopback::carryRootLoopback($part)) { $mntpoint = "/initrd/loopfs"; } my $dev = $part->{real_device} || part2wild_device_name('', $part); mount($dev, $mntpoint, $part->{fs_type}, $b_rdonly, $part->{options}, $o_wait_message); rmdir "$mntpoint/lost+found"; } } $part->{isMounted} = 1; set_isFormatted($part, 1); #- assume that if mount works, partition is formatted } sub umount_part { my ($part, $o_prefix) = @_; $part->{isMounted} || $part->{real_mntpoint} or return; unless ($::testing) { if (isSwap($part)) { swapoff($part->{device}); } elsif (loopback::carryRootLoopback($part)) { umount("/initrd/loopfs"); } else { umount(($o_prefix || '') . $part->{mntpoint} || devices::make($part->{device})); devices::del_loop(delete $part->{real_device}) if $part->{real_device}; } } $part->{isMounted} = 0; } sub umount_all($;$) { my ($fstab, $prefix) = @_; log::l("unmounting all filesystems"); foreach (sort { $b->{mntpoint} cmp $a->{mntpoint} } @$fstab) { $_->{mntpoint} and umount_part($_, $prefix); } } ################################################################################ # various functions ################################################################################ sub df { my ($part, $o_prefix) = @_; my $dir = "/tmp/tmp_fs_df"; return $part->{free} if exists $part->{free}; if ($part->{isMounted}) { $dir = ($o_prefix || '') . $part->{mntpoint}; } elsif ($part->{notFormatted} && !$part->{isFormatted}) { return; #- will not even try! } else { mkdir_p($dir); eval { mount(devices::make($part->{device}), $dir, $part->{fs_type}, 'readonly') }; if ($@) { set_isFormatted($part, 0); unlink $dir; return; } } my (undef, $free) = MDK::Common::System::df($dir); if (!$part->{isMounted}) { umount($dir); unlink($dir); } $part->{free} = 2 * $free if defined $free; $part->{free}; } sub mount_usbfs { my ($prefix) = @_; my $fs = cat_('/proc/filesystems') =~ /usbfs/ ? 'usbfs' : 'usbdevfs'; mount('none', "$prefix/proc/bus/usb", $fs); } 1; msgid ""
"# You can use uids to see the content of your uploads at this url :\n"
"# http://dudf.forge.mandriva.com/"
msgstr ""
+"# Questo è il log degli invii di file DUDF effettuati.\n"
+"# Il formato della linea è : <date ed ora di generazione> <uid>\n"
+"# Puoi usare gli uid per controllare il contenuto degli invii al seguente URL :\n"
+"# http://dudf.forge.mandriva.com/"
#: ../urpm/dudf.pm:239
#, c-format
msgid "curl is missing, cannot upload DUDF file.\n"
-msgstr ""
+msgstr "manca curl , non posso inviare il file DUDF.\n"
#: ../urpm/dudf.pm:242
#, c-format
msgid "Compressing DUDF data... "
-msgstr ""
+msgstr "Compressione dei dati DUDF..."
#: ../urpm/dudf.pm:244 ../urpm/dudf.pm:245
#, c-format
msgid "NOT OK\n"
-msgstr ""
+msgstr "NON OK\n"
#: ../urpm/dudf.pm:253 ../urpm/dudf.pm:485
#, c-format
msgid "OK\n"
-msgstr ""
+msgstr "OK\n"
#: ../urpm/dudf.pm:255
#, c-format
msgid "Uploading DUDF data:\n"
-msgstr ""
+msgstr "Invio dei dati DUDF:\n"
#: ../urpm/dudf.pm:276
#, c-format
@@ -793,6 +791,10 @@ msgid ""
"You can see your DUDF report at the following URL :\n"
"\t"
msgstr ""
+"\n"
+"Puoi controllare il rapporto DUDF al seguente URL:"
+"\n"
+"\t"
#: ../urpm/dudf.pm:279
#, c-format
@@ -800,6 +802,8 @@ msgid ""
"You can access to a log of your uploads in\n"
"\t"
msgstr ""
+"Puoi accedere al log degli invii in\n"
+"\t"
#: ../urpm/dudf.pm:358 ../urpm/msg.pm:76 ../urpmi:511 ../urpmi:526
#: ../urpmi:633
@@ -815,11 +819,15 @@ msgid ""
"This is a part of the Mancoosi european research project.\n"
"More at http://www.mancoosi.org\n"
msgstr ""
+"Si è verificato un problema. Puoi aiutare Mandriva a migliorare l'installazione\n"
+"dei pacchetti inviando un file di rapporto DUDF.\n"
+"Questo è parte del progetto di ricerca europeo Mancoosi.\n"
+"Maggiori informazioni su http://www.mancoosi.org\n"
#: ../urpm/dudf.pm:360
#, c-format
msgid "Do you want to upload to Mandriva a DUDF report?"
-msgstr ""
+msgstr "Desideri inviare il rapporto DUDF a Mandriva?"
#: ../urpm/dudf.pm:361 ../urpmi:513 ../urpmi:528 ../urpmi:634
#: ../urpmi.addmedia:135
@@ -833,13 +841,17 @@ msgid ""
"\n"
"Generating DUDF... "
msgstr ""
+"\n"
+"Generazione del rapporto DUDF... "
#: ../urpm/dudf.pm:489
-#, fuzzy, c-format
+#, c-format
msgid ""
"Cannot write DUDF file\n"
"."
-msgstr "Impossibile scrivere il file"
+msgstr ""
+"Impossibile scrivere il file DUDF\n"
+"."
#: ../urpm/get_pkgs.pm:16
#, c-format
@@ -863,8 +875,7 @@ msgstr "[rimpacchetto]"
#: ../urpm/install.pm:168
#, c-format
-msgid ""
-"created transaction for installing on %s (remove=%d, install=%d, upgrade=%d)"
+msgid "created transaction for installing on %s (remove=%d, install=%d, upgrade=%d)"
msgstr ""
"creata transazione per installare su %s (rimuove=%d, installa=%d, aggiorna=%"
"d)"
@@ -1033,7 +1044,7 @@ msgstr "installazione di %s"
#: ../urpm/main_loop.pm:256
#, c-format
msgid "Try installation without checking dependencies?"
-msgstr "Provare l'installazione senza controllare le dipendenze?"
+msgstr "Provo l'installazione senza controllare le dipendenze?"
#: ../urpm/main_loop.pm:263
#, c-format
@@ -1065,12 +1076,12 @@ msgstr ""
#: ../urpm/media.pm:256
#, c-format
msgid "unable to access list file of \"%s\", medium ignored"
-msgstr "impossibile accedere al file list per \"%s\", supporto ignorato"
+msgstr "impossibile accedere alla lista dei file \"%s\", supporto ignorato"
#: ../urpm/media.pm:259
#, c-format
msgid "unable to access synthesis file of \"%s\", medium ignored"
-msgstr "impossibile accedere al file di sintesi per \"%s\", supporto ignorato"
+msgstr "impossibile accedere al file synthesis per \"%s\", supporto ignorato"
#: ../urpm/media.pm:285
#, c-format
@@ -1119,12 +1130,12 @@ msgstr "installerebbe il pacchetto %s invece di aggiornarlo "
#: ../urpm/media.pm:765
#, c-format
msgid "medium \"%s\" already exists"
-msgstr "il supporto \"%s\" esiste già"
+msgstr "il supporto \"%s\" già esistente"
#: ../urpm/media.pm:804
#, c-format
msgid "(ignored by default)"
-msgstr "(ignorato per default)"
+msgstr "(ignorato come predefinito)"
#: ../urpm/media.pm:810
#, c-format
@@ -1137,9 +1148,9 @@ msgid "adding medium \"%s\""
msgstr "viene aggiunto il supporto \"%s\""
#: ../urpm/media.pm:842
-#, fuzzy, c-format
+#, c-format
msgid "failed to copy media.cfg to %s (%d)"
-msgstr "cp non riuscito sull'host %s (%d)"
+msgstr "Errore copiando il file media.cfg in %s (%d)"
#: ../urpm/media.pm:883
#, c-format
@@ -1159,8 +1170,7 @@ msgstr "impossibile esaminare media.cfg"
#: ../urpm/media.pm:913
#, c-format
msgid "unable to access the distribution medium (no media.cfg file found)"
-msgstr ""
-"impossibile accedere al supporto di installazione (manca il file media.cfg)"
+msgstr "impossibile accedere al supporto di installazione (manca il file media.cfg)"
#: ../urpm/media.pm:931
#, c-format
@@ -1205,12 +1215,12 @@ msgstr "riconfigurazione eseguita"
#: ../urpm/media.pm:1226
#, c-format
msgid "Error generating names file: dependency %d not found"
-msgstr "Problemi nel generare i nomi dei file: non esiste la dipendenza %d"
+msgstr "Errore generando i nomi dei file: non esiste la dipendenza %d"
#: ../urpm/media.pm:1247
#, c-format
msgid "medium \"%s\" is up-to-date"
-msgstr "il supporto \"%s\" è aggiornato"
+msgstr "il supporto \"%s\" risulta già aggiornato"
#: ../urpm/media.pm:1258
#, c-format
@@ -1425,7 +1435,7 @@ msgid "Marking %s as manually installed, it won't be auto-orphaned"
msgstr "Se segni %s come installato manualmente, non diventerà «auto-orphaned»"
#: ../urpm/orphans.pm:362
-#, fuzzy, c-format
+#, c-format
msgid ""
"The following package:\n"
"%s\n"
@@ -1437,16 +1447,20 @@ msgid_plural ""
"are now orphaned, if you wish to remove them, you can use \"urpme --auto-"
"orphans\""
msgstr[0] ""
-"Questo pacchetto ora è orfano. Se vuoi rimuoverlo, puoi eseguire «urpme --"
-"auto-orphans»."
+"Il seguente pacchetto:\n"
+"%s\n"
+"è ora orfano, se desideri rimuoverlo, puoi eseguire il comando \"urpme --auto-orphans"
+"\""
msgstr[1] ""
-"Questi pacchetti ora sono orfani. Esegui «urpme --auto-orphans» per "
-"rimuoverli."
+"I seguenti pacchetti:\n"
+"%s\n"
+"sono ora orfani, se desideri rimuoverli, puoi eseguire il comando \"urpme --auto-orphans"
+"\""
#: ../urpm/parallel.pm:15
#, c-format
msgid "unable to parse \"%s\" in file [%s]"
-msgstr "impossibile effettuare il parsing di \"%s\" nel file [%s]"
+msgstr "impossibile analizzare \"%s\" nel file [%s]"
#: ../urpm/parallel.pm:24
#, c-format
@@ -1520,13 +1534,11 @@ msgstr "sto smontando %s"
#: ../urpm/select.pm:31
#, c-format
msgid "urpmi was restarted, and the list of priority packages did not change"
-msgstr ""
-"urpmi è stato riavviato, ma l'elenco dei pacchetti prioritari non è cambiato"
+msgstr "urpmi è stato riavviato, ma l'elenco dei pacchetti prioritari non è cambiato"
#: ../urpm/select.pm:33
#, c-format
-msgid ""
-"urpmi was restarted, and the list of priority packages did change: %s vs %s"
+msgid "urpmi was restarted, and the list of priority packages did change: %s vs %s"
msgstr ""
"urpmi è stato riavviato. L'elenco dei pacchetti prioritari è cambiato da %s "
"a %s"
@@ -1587,7 +1599,7 @@ msgid ""
"The following package has to be removed for others to be upgraded:\n"
"%s"
msgstr ""
-"Questi pacchetti devono essere rimossi per poterne aggiornare altri:\n"
+"Questo pacchetto deve essere rimosso per poterne aggiornare altri:\n"
"%s"
#: ../urpm/select.pm:613
@@ -1664,13 +1676,12 @@ msgstr ""
"Questo è software libero e può essere ridistribuito secondo i termini della "
"licenza GNU GPL.\n"
"\n"
-"utilizzo:\n"
+"uso:\n"
#: ../urpme:47
#, c-format
msgid " --auto - automatically select a package in choices.\n"
-msgstr ""
-" --auto - include automaticamente un pacchetto nelle scelte.\n"
+msgstr " --auto - include automaticamente un pacchetto nelle scelte.\n"
#: ../urpme:48
#, c-format
@@ -1680,8 +1691,7 @@ msgstr " --auto-orphans - rimuove orfani\n"
#: ../urpme:49
#, c-format
msgid " --test - verify if the removal can be achieved correctly.\n"
-msgstr ""
-" --test - verifica se la rimozione può avvenire correttamente.\n"
+msgstr " --test - verifica se la rimozione può avvenire correttamente.\n"
#: ../urpme:51 ../urpmi:118 ../urpmq:68
#, c-format
@@ -1696,7 +1706,7 @@ msgstr " --repackage - Ri-pacchetta i file prima della cancellazione.\n"
#: ../urpme:53
#, c-format
msgid " --root - use another root for rpm removal.\n"
-msgstr " --root - usa un'altra root per rimuovere i file rpm. \n"
+msgstr " --root - usa un'altra directory root per rimuovere i file rpm. \n"
#: ../urpme:54 ../urpmf:40 ../urpmi:120 ../urpmi.addmedia:72
#: ../urpmi.removemedia:45 ../urpmi.update:48 ../urpmq:70
@@ -1714,7 +1724,7 @@ msgstr " --update - aggiorna solo il DB degli rpm, non il filesystem.\n"
#: ../urpme:56
#, c-format
msgid " --noscripts - do not execute package scriptlet(s).\n"
-msgstr " --noscripts - non esegue gli scriptlet presenti nei pacchetti.\n"
+msgstr " --noscripts - non esegue gli script presenti nei pacchetti.\n"
#: ../urpme:57
#, c-format
@@ -1742,7 +1752,7 @@ msgstr ""
#: ../urpme:75
#, c-format
msgid "Only superuser is allowed to remove packages"
-msgstr "Solo superuser è abilitato a rimuovere pacchetti"
+msgstr "Solo superuser può rimuovere pacchetti"
#: ../urpme:108
#, c-format
@@ -1764,7 +1774,7 @@ msgstr[1] "la rimozione dei seguenti pacchetti comprometterà il sistema:"
#: ../urpme:128
#, c-format
msgid "Nothing to remove"
-msgstr "Niente da rimuovere"
+msgstr "Nulla da rimuovere"
#: ../urpme:145
#, c-format
@@ -1774,11 +1784,9 @@ msgstr "Nessun orfano da rimuovere"
#: ../urpme:151
#, c-format
msgid "To satisfy dependencies, the following package will be removed"
-msgid_plural ""
-"To satisfy dependencies, the following %d packages will be removed"
+msgid_plural "To satisfy dependencies, the following %d packages will be removed"
msgstr[0] "Per soddisfare le dipendenze, sarà rimosso il seguente pacchetto"
-msgstr[1] ""
-"Per soddisfare le dipendenze, saranno rimossi i seguenti %d pacchetti"
+msgstr[1] "Per soddisfare le dipendenze, saranno rimossi i seguenti %d pacchetti"
#: ../urpme:156
#, c-format
@@ -1802,7 +1810,7 @@ msgstr "test di rimozione per %s"
#: ../urpme:185
#, c-format
msgid "Removal failed"
-msgstr "Rimozione fallita"
+msgstr "Rimozione non riuscita"
#: ../urpme:187
#, c-format
@@ -1834,8 +1842,7 @@ msgstr " --version - stampa la versione di questo tool.\n"
#: ../urpmf:37 ../urpmi:141 ../urpmq:80
#, c-format
msgid " --env - use specific environment (typically a bug report).\n"
-msgstr ""
-" --env - usa un ambiente specifico (tipicamente un bug report).\n"
+msgstr " --env - usa un ambiente specifico (tipicamente un bug report).\n"
#: ../urpmf:38 ../urpmi:83 ../urpmq:49
#, c-format
@@ -1844,16 +1851,14 @@ msgstr " --excludemedia - non usa i supporti elencati, separati da virgole.\n"
#: ../urpmf:39
#, c-format
-msgid ""
-" --literal, -l - don't match patterns, use argument as a literal string.\n"
+msgid " --literal, -l - don't match patterns, use argument as a literal string.\n"
msgstr ""
"--literal, -l - non considerare i caratteri speciali, usa l'argomento come "
"è.\n"
#: ../urpmf:42 ../urpmi:86 ../urpmq:50
#, c-format
-msgid ""
-" --sortmedia - sort media according to substrings separated by comma.\n"
+msgid " --sortmedia - sort media according to substrings separated by comma.\n"
msgstr ""
" --sortmedia - ordina i supporti in base alle sotto-stringhe separate da "
"virgole\n"
@@ -1866,8 +1871,7 @@ msgstr " --use-distrib - utilizza questo percorso per accedere al supporto\n"
#: ../urpmf:44 ../urpmi:87 ../urpmq:51
#, c-format
msgid " --synthesis - use the given synthesis instead of urpmi db.\n"
-msgstr ""
-" --synthesis - utilizza la synthesis specificata invece del db urpmi.\n"
+msgstr " --synthesis - utilizza il file synthesis specificato invece del db urpmi.\n"
#: ../urpmf:45
#, c-format
@@ -1901,7 +1905,7 @@ msgstr ""
#: ../urpmf:50
#, c-format
msgid " -F<str> - change field separator (defaults to ':').\n"
-msgstr "-F<str> - cambia il separatore di campo (default ':').\n"
+msgstr "-F<str> - cambia il separatore di campo (predefinito a ':').\n"
#: ../urpmf:51
#, c-format
@@ -1911,8 +1915,7 @@ msgstr "Chiavi di ricerca:\n"
#: ../urpmf:52
#, c-format
msgid " text - any text is parsed as a regexp, unless -l is used.\n"
-msgstr ""
-"-text - il testo è usato come regexp, se non viene specificato -l.\n"
+msgstr "-text - il testo è usato come regexp, se non viene specificato -l.\n"
#: ../urpmf:53
#, c-format
@@ -1942,7 +1945,7 @@ msgstr "( ) - parentesi destra e sinistra.\n"
#: ../urpmf:58
#, c-format
msgid "List of tags:\n"
-msgstr "Elenco dei tag\n"
+msgstr "Elenco delle etichette\n"
#: ../urpmf:59
#, c-format
@@ -1977,7 +1980,7 @@ msgstr " --conffiles - file di configurazione\n"
#: ../urpmf:65
#, c-format
msgid " --conflicts - conflict tags\n"
-msgstr " --conflicts - conflitti\n"
+msgstr " --conflicts - conflitti nelle etichette\n"
#: ../urpmf:66
#, c-format
@@ -2047,12 +2050,12 @@ msgstr " --size - dimensione del pacchetto installato.\n"
#: ../urpmf:79
#, c-format
msgid " --sourcerpm - source rpm name\n"
-msgstr " --sourcerpm - nome dei pacchetti rpm con sorgenti.\n"
+msgstr " --sourcerpm - nome dei pacchetti rpm con i sorgenti.\n"
#: ../urpmf:80
#, c-format
msgid " --suggests - suggests tags\n"
-msgstr " --suggests - cerca nel campo \"suggests\"\n"
+msgstr " --suggests - lista dei pacchetti suggeriti\n"
#: ../urpmf:81
#, c-format
@@ -2062,12 +2065,12 @@ msgstr " --summary - sommario del pacchetto.\n"
#: ../urpmf:82
#, c-format
msgid " --url - url\n"
-msgstr " --url - cerca nel campo \"url\"\n"
+msgstr " --url - URL del pacchetto\n"
#: ../urpmf:83
#, c-format
msgid " --vendor - vendor\n"
-msgstr " --vendor - distributore\n"
+msgstr " --vendor - fornitore\n"
#: ../urpmf:84
#, c-format
@@ -2077,8 +2080,7 @@ msgstr " -m - il supporto dov'è stato trovato il pacchetto\n"
#: ../urpmf:85 ../urpmq:99
#, c-format
msgid " -f - print version, release and arch with name.\n"
-msgstr ""
-" -f - stampa versione, release e architettura con il nome.\n"
+msgstr " -f - stampa versione, release e architettura con il nome.\n"
#: ../urpmf:153
#, c-format
@@ -2088,7 +2090,7 @@ msgstr "espressione non completata (%s)"
#: ../urpmf:198
#, c-format
msgid "Incorrect format: you may use only one multi-valued tag"
-msgstr "formato non corretto, puoi usare un solo tag "
+msgstr "formato non corretto, puoi usare una sola etichetta multi-valore"
#: ../urpmf:291
#, c-format
@@ -2098,18 +2100,17 @@ msgstr "manca il file hdlist per il supporto \"%s\""
#: ../urpmf:298
#, c-format
msgid "no synthesis available for medium \"%s\""
-msgstr "manca il file di sintesi per il supporto \"%s\""
+msgstr "manca il file di synthesis per il supporto \"%s\""
#: ../urpmf:307
#, c-format
msgid "no xml-info available for medium \"%s\""
-msgstr "manca xml-info per il supporto \"%s\""
+msgstr "manca il file xml-info per il supporto \"%s\""
#: ../urpmi:90
#, c-format
msgid " --auto-update - update media then upgrade the system.\n"
-msgstr ""
-" --auto-update - aggiorna i supporti prima di aggiornare il sistema.\n"
+msgstr " --auto-update - aggiorna i supporti prima di aggiornare il sistema.\n"
#: ../urpmi:91
#, c-format
@@ -2139,13 +2140,13 @@ msgid ""
" --no-uninstall - never ask to uninstall a package, abort the "
"installation.\n"
msgstr ""
-" --no-uninstall - non chiedere mai di rimuovere un pacchetto, ferma "
+" --no-uninstall - non chiedere mai di rimuovere un pacchetto, interrompe"
"l'installazione\n"
#: ../urpmi:96
#, c-format
msgid " --no-install - don't install packages (only download)\n"
-msgstr " --no-install - non installa i pacchetti, esegue solo il download\n"
+msgstr " --no-install - non installa i pacchetti, esegue solo il recupero\n"
#: ../urpmi:97 ../urpmq:56
#, c-format
@@ -2153,8 +2154,8 @@ msgid ""
" --keep - keep existing packages if possible, reject requested\n"
" packages that lead to removals.\n"
msgstr ""
-" --keep - usa i pacchetti esistenti se possibile, rifiuta\n"
-" i pacchetti richiesti se sono da rimuovere.\n"
+" --keep - mantiene i pacchetti esistenti se possibile, rifiuta\n"
+" i pacchetti richiesti che tentano di rimuoverli.\n"
#: ../urpmi:99
#, c-format
@@ -2164,8 +2165,8 @@ msgid ""
" default is %d.\n"
msgstr ""
" --split-level - divide l'operazione in piccole transazioni se più di\n"
-" un pacchetto sta per essere installato o\n"
-" aggiornato, il valore predefinito è %d.\n"
+" n pacchetti stanno per essere installati o\n"
+" aggiornato, il valore predefinito di n è %d.\n"
#: ../urpmi:103
#, c-format
@@ -2182,15 +2183,12 @@ msgstr " --fuzzy, -y - impone una ricerca fuzzy.\n"
#: ../urpmi:106
#, c-format
msgid " --buildrequires - install the buildrequires of the packages\n"
-msgstr ""
-" --buildrequires - installa quanto richiesto (buildrequires) per il "
-"pacchetto\n"
+msgstr " --buildrequires - installa i pacchetti necessari alla compilazione del pacchetto (buildrequires)\n"
#: ../urpmi:107
#, c-format
msgid " --install-src - install only source package (no binaries).\n"
-msgstr ""
-" --install-src - installa solo il pacchetto dei sorgenti (non i binari).\n"
+msgstr " --install-src - installa solo il pacchetto dei sorgenti (non i binari).\n"
#: ../urpmi:108
#, c-format
@@ -2202,14 +2200,12 @@ msgstr ""
#: ../urpmi:109
#, c-format
msgid " --noclean - don't clean rpms from cache.\n"
-msgstr " --noclean - tieni in cache gli rpm inutilizzati.\n"
+msgstr " --noclean - mantieni nella cache i pacchetti rpm scaricati\n"
#: ../urpmi:111
#, c-format
-msgid ""
-" --replacepkgs - force installing packages which are already installed.\n"
-msgstr ""
-" --replacepkgs - forza l'installazione dei pacchetti già installati.\n"
+msgid " --replacepkgs - force installing packages which are already installed.\n"
+msgstr " --replacepkgs - forza l'installazione dei pacchetti anche se già installati.\n"
#: ../urpmi:113
#, c-format
@@ -2232,8 +2228,7 @@ msgstr ""
#: ../urpmi:117
#, c-format
msgid " --allow-suggests - auto select \"suggested\" packages.\n"
-msgstr ""
-" --allow-suggests - seleziona automaticamente i pacchetti \"suggeriti\"\n"
+msgstr " --allow-suggests - seleziona automaticamente i pacchetti \"suggeriti\"\n"
#: ../urpmi:121
#, c-format
@@ -2243,7 +2238,7 @@ msgid ""
msgstr ""
"..--use-distrib - configura urpmi \"al volo\" da un albero distribuito, "
"utile\n"
-" per installare un pacchetto chroot con l'opzione --"
+" per installare un ambiente chroot con l'opzione --"
"root.\n"
#: ../urpmi:123 ../urpmi.addmedia:59 ../urpmi.update:37
@@ -2257,7 +2252,7 @@ msgid ""
" --downloader - program to use to retrieve distant files. \n"
" known programs: %s\n"
msgstr ""
-" --downloader - programma da usare per scaricare i file remoti. \n"
+" --downloader - programma da usare per recuperare i file remoti. \n"
" programmi noti: %s\n"
#: ../urpmi:127
@@ -2268,17 +2263,17 @@ msgstr "--curl-options - opzioni aggiuntive da passare a curl\n"
#: ../urpmi:128
#, c-format
msgid " --rsync-options- additional options to pass to rsync\n"
-msgstr "--rsync-options - opzioni da passare ad rsync\n"
+msgstr "--rsync-options - opzioni aggiuntive da passare ad rsync\n"
#: ../urpmi:129
#, c-format
msgid " --wget-options - additional options to pass to wget\n"
-msgstr "--wget-options - opzioni da passare a wget\n"
+msgstr "--wget-options - opzioni aggiuntive da passare a wget\n"
#: ../urpmi:130
#, c-format
msgid " --prozilla-options - additional options to pass to prozilla\n"
-msgstr "--prozilla-options - opzioni da passare a prozilla\n"
+msgstr "--prozilla-options - opzioni aggiuntive da passare a prozilla\n"
#: ../urpmi:131
#, c-format
@@ -2288,7 +2283,7 @@ msgstr " --aria2-options - opzioni aggiuntive da passare ad aria2\n"
#: ../urpmi:132 ../urpmi.addmedia:60 ../urpmi.update:38
#, c-format
msgid " --limit-rate - limit the download speed.\n"
-msgstr " --limit-rate - limita la velocità del download.\n"
+msgstr " --limit-rate - limita la velocità di recupero.\n"
#: ../urpmi:133
#, c-format
@@ -2297,9 +2292,8 @@ msgid ""
" (--no-resume disables it, default is disabled).\n"
msgstr ""
"..--resume - riprende il trasferimento dei file parzialmente "
-"scaricati\n"
-" (--no-resume lo disabilita, solitamente è "
-"disabilitato).\n"
+"recuperati\n"
+" (--no-resume lo disabilita, questa è l'opzione predefinita).\n"
#: ../urpmi:135 ../urpmi.addmedia:61 ../urpmi.update:39 ../urpmq:76
#, c-format
@@ -2341,19 +2335,17 @@ msgstr " --excludedocs - esclude i file di documentazione.\n"
#: ../urpmi:147
#, c-format
msgid " --ignoresize - don't verify disk space before installation.\n"
-msgstr ""
-" --ignoresize -non verifica lo spazio disponibile prima dell'installazione\n"
+msgstr " --ignoresize -non verifica lo spazio disponibile prima dell'installazione\n"
#: ../urpmi:148
#, c-format
msgid " --ignorearch - allow to install rpms for unmatched architectures.\n"
-msgstr ""
-"--ignore-arch...- permette di installare pacchetti di altre architetture.\n"
+msgstr " --ignorearch - permette di installare pacchetti di altre architetture.\n"
#: ../urpmi:149
#, c-format
msgid " --noscripts - do not execute package scriptlet(s)\n"
-msgstr "--noscripts - non esegue gli script contenuti nei pacchetti\n"
+msgstr " --noscripts - non esegue gli script contenuti nei pacchetti\n"
#: ../urpmi:150
#, c-format
@@ -2387,14 +2379,12 @@ msgstr "--nolock - non bloccare il db degli rpm\n"
#: ../urpmi:157
#, c-format
msgid " --strict-arch - upgrade only packages with the same architecture.\n"
-msgstr ""
-" --strict-arch - aggiorna solo i pacchetti della stessa architettura.\n"
+msgstr " --strict-arch - aggiorna solo i pacchetti della stessa architettura.\n"
#: ../urpmi:158 ../urpmq:97
#, c-format
msgid " -a - select all matches on command line.\n"
-msgstr ""
-" -a - seleziona tutte le corrispondenze da riga di comando.\n"
+msgstr " -a - seleziona tutte le corrispondenze da riga di comando.\n"
#: ../urpmi:161
#, c-format
@@ -2431,7 +2421,7 @@ msgstr ""
#: ../urpmi:235
#, c-format
msgid "You can't install binary rpm files when using --install-src"
-msgstr "Non puoi installare rpm binari rpm quando viene usato --install-src"
+msgstr "Non puoi installare rpm binari quando si usa --install-src"
#: ../urpmi:236
#, c-format
@@ -2441,13 +2431,12 @@ msgstr "Non puoi installare i file spec"
#: ../urpmi:243
#, c-format
msgid "defaulting to --buildrequires"
-msgstr "si mette --buildrequires come opzione predefinita"
+msgstr "impostata --buildrequires come opzione predefinita"
#: ../urpmi:248
#, c-format
-msgid ""
-"please use --buildrequires or --install-src, defaulting to --buildrequires"
-msgstr "devi utilizzare --buildrequires (predefinito) o --install-src"
+msgid "please use --buildrequires or --install-src, defaulting to --buildrequires"
+msgstr "bisogna usare --buildrequires (predefinito) o --install-src"
#: ../urpmi:268
#, c-format
@@ -2501,8 +2490,7 @@ msgstr "%s (da installare)"
msgid ""
"In order to satisfy the '%s' dependency, one of the following packages is "
"needed:"
-msgstr ""
-"Per soddisfare le dipendenze di \"%s\" serve uno dei seguenti pacchetti:"
+msgstr "Per soddisfare le dipendenze di \"%s\" serve uno dei seguenti pacchetti:"
#: ../urpmi:462
#, c-format
@@ -2570,8 +2558,8 @@ msgid ""
"has to be removed for others to be upgraded:\n"
"%s\n"
msgstr ""
-"L'installazione non può proseguire perché questi pacchetti\n"
-"devono essere rimossi per poterne aggiornare altri:\n"
+"L'installazione non può proseguire perché questo pacchetto\n"
+"deve essere rimosso per poterne aggiornare altri:\n"
"%s\n"
#: ../urpmi:549
@@ -2643,7 +2631,7 @@ msgstr "Annulla"
#: ../urpmi:656
#, c-format
msgid "Press Enter when mounted..."
-msgstr "Premi invio dopo averlo montato..."
+msgstr "Premi Invio dopo averlo montato..."
#. -PO: The URI types strings 'file:', 'ftp:', 'http:', and 'cdrom:' must not be translated!
#. -PO: neither the ``with''. Only what is between <brackets> can be translated.
@@ -2691,22 +2679,22 @@ msgstr ""
#: ../urpmi.addmedia:55 ../urpmi.update:33 ../urpmq:73
#, c-format
msgid " --wget - use wget to retrieve distant files.\n"
-msgstr " --wget - usa wget per recuperare file remoti.\n"
+msgstr " --wget - usa wget per scaricare file remoti.\n"
#: ../urpmi.addmedia:56 ../urpmi.update:34 ../urpmq:74
#, c-format
msgid " --curl - use curl to retrieve distant files.\n"
-msgstr " --curl - usa curl per recuperare i file remoti.\n"
+msgstr " --curl - usa curl per scaricare file remoti.\n"
#: ../urpmi.addmedia:57 ../urpmi.update:35 ../urpmq:75
#, c-format
msgid " --prozilla - use prozilla to retrieve distant files.\n"
-msgstr " --prozilla - usa prozilla per recuperare i file remoti.\n"
+msgstr " --prozilla - usa prozilla per scaricare file remoti.\n"
#: ../urpmi.addmedia:58 ../urpmi.update:36
#, c-format
msgid " --aria2 - use aria2 to retrieve distant files.\n"
-msgstr " --aria2 - usa aria2 per recuperare i file remoti.\n"
+msgstr " --aria2 - usa aria2 per scaricare file remoti.\n"
#: ../urpmi.addmedia:65
#, c-format
@@ -2724,9 +2712,9 @@ msgid ""
" one of: never, on-demand, update-only, always. cf urpmi."
"cfg(5)\n"
msgstr ""
-" --xml-info - segui una politica assegnata per scaricare i file xml-"
+" --xml-info - segui una politica assegnata per recuperare i file xml-"
"info\n"
-" scelta tra: never, on-demand, update-only, always. cf "
+" scelta tra: never(mai), on-demand(su richiesta), update-only(solo aggiornamenti), always(sempre). cf "
"urpmi.cfg(5)\n"
#: ../urpmi.addmedia:69
@@ -2761,14 +2749,12 @@ msgstr "--interactive - con --distrib, chiede conferma per ogni supporto\n"
#: ../urpmi.addmedia:76
#, c-format
msgid " --all-media - with --distrib, add every listed media\n"
-msgstr ""
-" --all-media - with --distrib, aggiunge tutti supporti disponibili.\n"
+msgstr " --all-media - with --distrib, aggiunge tutti supporti disponibili.\n"
#: ../urpmi.addmedia:77
#, c-format
msgid " --virtual - create virtual media wich are always up-to-date.\n"
-msgstr ""
-" --virtual - crea supporti virtuali che sono sempre aggiornati.\n"
+msgstr " --virtual - crea supporti virtuali che sono sempre aggiornati.\n"
#: ../urpmi.addmedia:78 ../urpmi.update:44
#, c-format
@@ -2778,14 +2764,12 @@ msgstr " --no-md5sum - disabilita il controllo MD5SUM sui file.\n"
#: ../urpmi.addmedia:79
#, c-format
msgid " --nopubkey - don't import pubkey of added media\n"
-msgstr ""
-"--nopubkey - non importa la chiave pubblica dei supporti aggiunti\n"
+msgstr "--nopubkey - non importa la chiave pubblica dei supporti aggiunti\n"
#: ../urpmi.addmedia:80
#, c-format
msgid " --raw - add the media in config, but don't update it.\n"
-msgstr ""
-"--raw - aggiunge il supporto alla configurazione ma non lo aggiorna.\n"
+msgstr "--raw - aggiunge il supporto alla configurazione ma non lo aggiorna.\n"
#: ../urpmi.addmedia:81 ../urpmi.removemedia:43 ../urpmi.update:53
#, c-format
@@ -2800,7 +2784,7 @@ msgstr " -v - modalità prolissa.\n"
#: ../urpmi.addmedia:95
#, c-format
msgid "known xml-info policies are %s"
-msgstr "le politiche conosciute per gli xml-info sono: %s"
+msgstr "le regole conosciute per gli xml-info sono: %s"
#: ../urpmi.addmedia:106
#, c-format
@@ -2878,7 +2862,7 @@ msgstr " -y - imponi una ricerca fuzzy sul nome dei supporti.\n"
#: ../urpmi.removemedia:59
#, c-format
msgid "Only superuser is allowed to remove media"
-msgstr "Solo superuser è abilitato a rimuovere i supporti"
+msgstr "Solo superuser può rimuovere i supporti"
#: ../urpmi.removemedia:72
#, c-format
@@ -2921,14 +2905,12 @@ msgstr " --ignore - non aggiornare, segna il supporto come ignorato.\n"
#: ../urpmi.update:47
#, c-format
msgid " --no-ignore - don't update, mark the media as enabled.\n"
-msgstr ""
-" --no-ignore - non aggiornare, segna il supporto come disponibile.\n"
+msgstr " --no-ignore - non aggiornare, segna il supporto come disponibile.\n"
#: ../urpmi.update:49
#, c-format
msgid " --probe-rpms - do not use synthesis, use rpm files directly\n"
-msgstr ""
-" --probe-rpms - usa direttamente i file rpm, invece di synthesis\n"
+msgstr " --probe-rpms - usa direttamente i file rpm, invece di synthesis\n"
#: ../urpmi.update:50
#, c-format
@@ -2948,7 +2930,7 @@ msgstr " -ff - impone con forza l'aggiornamento di synthesis\n"
#: ../urpmi.update:69
#, c-format
msgid "Only superuser is allowed to update media"
-msgstr "Solo superuser è abilitato ad aggiornare i supporti"
+msgstr "Solo superuser può aggiornare i supporti"
#: ../urpmi.update:86
#, c-format
@@ -2962,7 +2944,7 @@ msgid ""
"(one of %s)\n"
msgstr ""
"la voce da aggiornare non è presente\n"
-"(uno di %s)\n"
+"(una di %s)\n"
#: ../urpmi.update:98
#, c-format
@@ -3033,8 +3015,7 @@ msgstr " --list-url - elenca i supporti disponibili e la loro url.\n"
#: ../urpmq:61
#, c-format
msgid " --list-nodes - list available nodes when using --parallel.\n"
-msgstr ""
-" --list-nodes - elenca i nodi disponibili quando si utilizza --parallel.\n"
+msgstr " --list-nodes - elenca i nodi disponibili quando si utilizza --parallel.\n"
#: ../urpmq:62
#, c-format
@@ -3043,8 +3024,7 @@ msgstr " --list-aliases - elenca gli alias paralleli disponibili.\n"
#: ../urpmq:63
#, c-format
-msgid ""
-" --dump-config - dump the config in form of urpmi.addmedia argument.\n"
+msgid " --dump-config - dump the config in form of urpmi.addmedia argument.\n"
msgstr ""
" --dump-config - mostra la configurazione nella forma usata da urpmi."
"addmedia\n"
@@ -3058,17 +3038,15 @@ msgstr ""
#: ../urpmq:65
#, c-format
-msgid ""
-" --sources - give all source packages before downloading (root only).\n"
+msgid " --sources - give all source packages before downloading (root only).\n"
msgstr ""
-" --sources - elenca tutti i pacchetti sorgenti prima del download "
+" --sources - elenca tutti i pacchetti sorgenti prima del recupero "
"(solo root).\n"
#: ../urpmq:67
#, c-format
msgid " --ignorearch - allow to query rpms for unmatched architectures.\n"
-msgstr ""
-" --ignorearch - permette di cercare rpm per un'altra architettura.\n"
+msgstr " --ignorearch - permette di cercare rpm per un'altra architettura.\n"
#: ../urpmq:71
#, c-format
@@ -3082,7 +3060,7 @@ msgstr ""
#: ../urpmq:81
#, c-format
msgid " --changelog - print changelog.\n"
-msgstr " --changelog - mostra la lista delle modifiche.\n"
+msgstr " --changelog - mostra l'elenco delle modifiche.\n"
#: ../urpmq:82
#, c-format
@@ -3097,7 +3075,7 @@ msgstr " --obsoletes - elenca obsoleti.\n"
#: ../urpmq:84
#, c-format
msgid " --provides - print provides.\n"
-msgstr " --provides - elenca gli elementi forniti(provides).\n"
+msgstr " --provides - elenca gli elementi forniti.\n"
#: ../urpmq:85
#, c-format
@@ -3150,7 +3128,7 @@ msgid ""
" - search in provides to find package.\n"
msgstr ""
" --whatprovides, -p\n"
-" - cerca tra i \"provides\" per trovare il pacchetto.\n"
+" - cerca tra gli elementi forniti per trovare il pacchetto.\n"
#: ../urpmq:98
#, c-format
@@ -3165,7 +3143,7 @@ msgstr " -g - stampa i gruppi anche col nome.\n"
#: ../urpmq:101
#, c-format
msgid " -i - print useful information in human readable form.\n"
-msgstr " -i - stampa informazioni utili in forma leggibile.\n"
+msgstr " -i - mostra informazioni utili in forma leggibile.\n"
#: ../urpmq:102
#, c-format
@@ -3180,7 +3158,7 @@ msgstr " -m - equivalente a -du\n"
#: ../urpmq:104
#, c-format
msgid " -r - print version and release with name also.\n"
-msgstr " -r - stampa versione e release anche col nome.\n"
+msgstr " -r - mostra versione e release anche col nome.\n"
#: ../urpmq:105
#, c-format
@@ -3211,8 +3189,7 @@ msgstr " -Y - come -y, ma non distingue maiuscole da minuscole.\n"
#: ../urpmq:109
#, c-format
msgid " names or rpm files given on command line are queried.\n"
-msgstr ""
-" i nomi o i file rpm passati da riga di comando vengono interrogati.\n"
+msgstr " i nomi o i file rpm passati da riga di comando vengono interrogati.\n"
#: ../urpmq:156
#, c-format
@@ -3245,32 +3222,28 @@ msgstr ""
#: ../urpmq:409
#, c-format
-msgid ""
-"no xml info for medium \"%s\", unable to return any result for package %s"
+msgid "no xml info for medium \"%s\", unable to return any result for package %s"
msgstr ""
-"manca xml-info per il supporto \"%s\", impossibile dare risultati per il "
+"manca xml-info per il supporto \"%s\", impossibile fornire risultati per il "
"pacchetto %s"
#: ../urpmq:410
#, c-format
-msgid ""
-"no xml info for medium \"%s\", unable to return any result for packages %s"
+msgid "no xml info for medium \"%s\", unable to return any result for packages %s"
msgstr ""
-"manca xml-info per il supporto \"%s\", impossibile dare risultati per i "
+"manca xml-info per il supporto \"%s\", impossibile fornire risultati per i "
"pacchetti %s"
#: ../urpmq:477
#, c-format
msgid "No changelog found\n"
-msgstr "Nessun changelog trovato\n"
+msgstr "Nessun elenco delle modifiche trovato\n"
#: ../gurpmi.desktop.in.h:1
msgid "Graphical front end to install RPM files"
-msgstr "Front end grafico per l'installare i pacchetti RPM"
+msgstr "Interrfaccia grafica per l'installazione dei pacchetti RPM"
#: ../gurpmi.desktop.in.h:2
msgid "Software Installer"
-msgstr "Installazione software"
+msgstr "Programma d'installazione"
-#~ msgid "due to already installed %s"
-#~ msgstr "perché è già installato %s"