Как работает apt-btrfs-snapshot?

Спасибо за направление Добей! Это проблема с цитированием.

Я прочитал здесь документ: http://standards.freedesktop.org/desktop-entry-spec/desktop-entry-spec-latest.html

[d3 ] Существует два правила: 1 - мы должны использовать \ s для представления пространства в обычных строках; 2-Строка Exec является специальной, если в любой ее части есть место, мы должны процитировать эту часть.

Для линии TryExec это нормальная строка, поэтому я должен написать TryExec=/home/allfox/Ubuntu\sOne/fun_goods/thumbnailer/gnome_thumbnailer_with_mplayer .

Для строки Exec я должен написать Exec="/home/allfox/Ubuntu One/fun_goods/thumbnailer/gnome_thumbnailer_with_mplayer" %u %o %s.

Теперь он работает;)

Почему эти спецификации не используют одно и то же правило на всех линиях? Мне потребовалось столько времени, чтобы выяснить проблему> _ & lt; .

Для всех желающих я также разместил свой thumbnailer здесь:

#!/usr/bin/env perl
use strict;
use 5.010;

# allfox's GNOME thumbnailer using MPlayer

use File::Temp qw(tempdir);
use List::Util qw(min);
use File::Spec qw();
use URI::Escape qw(uri_unescape);

&thumbnailer(@ARGV);
sub thumbnailer
{
    my($mplayer) = `which mplayer`;
    chomp $mplayer;
    my($input, $output, $size) = @_;
    $input = uri_unescape($input);
    $output = uri_unescape($output);
    if($input =~ /\.part$/i)
    {
        return;
    }
    my $common_arguments = '-nosound -noautosub -really-quiet -noar -noconsolecontrols -nojoystick -nolirc -nomouseinput -nosub';
    my $video_information = `$mplayer -identify -frames 0 $common_arguments '$input'`;
    $video_information =~ /^ID_VIDEO_WIDTH=(?<width>[0-9.]+)
                .*
                ^ID_VIDEO_HEIGHT=(?<height>[0-9.]+)
                .*
                ^ID_LENGTH=(?<length>[0-9.]+)
                /msix;
    my $width = $+{'width'} / 1;
    my $height = $+{'height'} / 1;
    my $length = $+{'length'} / 1;
    if(defined $size)
    {
        if($width > $height)
        {
            my $scale_to = min $width, $size;
            $width = $scale_to;
            $height = $height * ($scale_to / $width);
        }
        else
        {
            my $scale_to = min $height, $size;
            $width = $width * ($scale_to / $height);
            $height = $scale_to;
        }
    }
    my($temp_frames) = tempdir('gnome_thumbnailer_with_mplayer-XXXXXXXXXXXX', TMPDIR => 1, CLEANUP => 1);
    for(1..3)
    {
        $length /= 3;
        if(0 == system "$mplayer -vo jpeg:quality=100:outdir='$temp_frames' -ss $length -frames 1 $common_arguments '$input'")
        {
            last;
        }
    }
    my $convert = `which convert`;
    chomp $convert;
    opendir TEMP_FRAMES, $temp_frames;
    for(readdir TEMP_FRAMES)
    {
        if(/^\d+/)
        {
            my $jpeg_result = File::Spec->catfile($temp_frames, $_);
            system "$convert '$jpeg_result' -thumbnail ${width}x$height png:'$output'";
            last;
        }
    }
    closedir TEMP_FRAMES;
}
7
задан 11 March 2011 в 14:30

8 ответов

Я не знаю apt-btrfs-snapshot, но из того, что я быстро прочитал в коде, он просто использует функцию моментального снимка btrfs перед действиями apt.

btrfs использует много B-деревьев для хранения данных. Дублирование сохраняется до минимума (даже не используя hardlink, а copy-on-write). Читайте: «он будет использовать столько же памяти, что вы удаляете данные вне /home".

EDIT:

После прочтения кода у apt-btrfs-snapshot возникли некоторые проблемы. Например:

он делает большие предположения: ваш btrfs должен иметь конкретное имя субволона (ваш корневой объем должен быть назван «@»), если ваши /home и /var/lib находятся на одном и том же subvolume как ваш корень /, они также будут сняты.
2
ответ дан 25 May 2018 в 22:36
  • 1
    Когда я установил с помощью btrfs, эти вещи были установлены по умолчанию - дом был установлен на субволи, а у root было специальное имя. Это правда, что если бы вы перешли на существующую установку ext4 на btrfs, у вас не обязательно было бы все, что было бы хорошо настроено для этого. – RAOF 5 October 2011 в 05:37

Я не знаю apt-btrfs-snapshot, но из того, что я быстро прочитал в коде, он просто использует функцию моментального снимка btrfs перед действиями apt.

btrfs использует много B-деревьев для хранения данных. Дублирование сохраняется до минимума (даже не используя hardlink, а copy-on-write). Читайте: «он будет использовать столько же памяти, что вы удаляете данные вне /home".

EDIT:

После прочтения кода у apt-btrfs-snapshot возникли некоторые проблемы. Например:

он делает большие предположения: ваш btrfs должен иметь конкретное имя субволона (ваш корневой объем должен быть назван «@»), если ваши /home и /var/lib находятся на одном и том же subvolume как ваш корень /, они также будут сняты.
2
ответ дан 25 July 2018 в 22:22

Я не знаю apt-btrfs-snapshot, но из того, что я быстро прочитал в коде, он просто использует функцию моментального снимка btrfs перед действиями apt.

btrfs использует много B-деревьев для хранения данных. Дублирование сохраняется до минимума (даже не используя hardlink, а copy-on-write). Читайте: «он будет использовать столько же памяти, что вы удаляете данные вне /home".

EDIT:

После прочтения кода у apt-btrfs-snapshot возникли некоторые проблемы. Например:

он делает большие предположения: ваш btrfs должен иметь конкретное имя субволона (ваш корневой объем должен быть назван «@»), если ваши /home и /var/lib находятся на одном и том же subvolume как ваш корень /, они также будут сняты.
2
ответ дан 2 August 2018 в 03:49

Я не знаю apt-btrfs-snapshot, но из того, что я быстро прочитал в коде, он просто использует функцию моментального снимка btrfs перед действиями apt.

btrfs использует много B-деревьев для хранения данных. Дублирование сохраняется до минимума (даже не используя hardlink, а copy-on-write). Читайте: «он будет использовать столько же памяти, что вы удаляете данные вне /home".

EDIT:

После прочтения кода у apt-btrfs-snapshot возникли некоторые проблемы. Например:

он делает большие предположения: ваш btrfs должен иметь конкретное имя субволона (ваш корневой объем должен быть назван «@»), если ваши /home и /var/lib находятся на одном и том же subvolume как ваш корень /, они также будут сняты.
2
ответ дан 4 August 2018 в 19:53

Я не знаю apt-btrfs-snapshot , но из того, что я быстро прочитал в коде, он просто использует функцию моментального снимка btrfs перед действиями apt .

btrfs использует много B-деревьев для хранения данных. Дублирование сохраняется до минимума (даже не используя hardlink, а copy-on-write). Читайте: «он будет использовать столько more-memory , что вы удаляете данные за пределами /home".

EDIT:

После прочтения кода apt-btrfs-snapshot имеют некоторые проблемы. Например:

  • он делает большие предположения: ваш btrfs должен иметь конкретное имя субволона (ваш корневой объем должен быть назван « @ »)
  • , если ваши / home и / var / lib находятся в одном и том же субволе, как ваш корень / , они также будут быть снято снизу.
2
ответ дан 6 August 2018 в 03:56

Я не знаю apt-btrfs-snapshot , но из того, что я быстро прочитал в коде, он просто использует функцию моментального снимка btrfs перед действиями apt .

btrfs использует много B-деревьев для хранения данных. Дублирование сохраняется до минимума (даже не используя hardlink, а copy-on-write). Читайте: «он будет использовать столько more-memory , что вы удаляете данные за пределами /home".

EDIT:

После прочтения кода apt-btrfs-snapshot имеют некоторые проблемы. Например:

  • он делает большие предположения: ваш btrfs должен иметь конкретное имя субволона (ваш корневой объем должен быть назван « @ »)
  • , если ваши / home и / var / lib находятся в одном и том же подвыполнении, как ваш корень / , они также будут быть снято снизу.
2
ответ дан 7 August 2018 в 21:53

Я не знаю apt-btrfs-snapshot , но из того, что я быстро прочитал в коде, он просто использует функцию моментального снимка btrfs перед действиями apt .

btrfs использует много B-деревьев для хранения данных. Дублирование сохраняется до минимума (даже не используя hardlink, а copy-on-write). Читайте: «он будет использовать столько more-memory , что вы удаляете данные за пределами /home".

EDIT:

После прочтения кода apt-btrfs-snapshot имеют некоторые проблемы. Например:

  • он делает большие предположения: ваш btrfs должен иметь конкретное имя субволона (ваш корневой объем должен быть назван « @ »)
  • , если ваши / home и / var / lib находятся в одном и том же подвыполнении, как ваш корень / , они также будут быть снято снизу.
2
ответ дан 10 August 2018 в 10:08

Я не знаю apt-btrfs-snapshot , но из того, что я быстро прочитал в коде, он просто использует функцию моментального снимка btrfs перед действиями apt .

btrfs использует много B-деревьев для хранения данных. Дублирование сохраняется до минимума (даже не используя hardlink, а copy-on-write). Читайте: «он будет использовать столько more-memory , что вы удаляете данные за пределами /home".

EDIT:

После прочтения кода apt-btrfs-snapshot имеют некоторые проблемы. Например:

  • он делает большие предположения: ваш btrfs должен иметь конкретное имя субволона (ваш корневой объем должен быть назван « @ »)
  • , если ваши / home и / var / lib находятся в одном и том же подвыполнении, как ваш корень / , они также будут быть снято снизу.
2
ответ дан 13 August 2018 в 16:29
  • 1
    Когда я установил с помощью btrfs, эти вещи были установлены по умолчанию - дом был установлен на субволи, а у root было специальное имя. Это правда, что если бы вы перешли на существующую установку ext4 на btrfs, у вас не обязательно было бы все, что было бы хорошо настроено для этого. – RAOF 5 October 2011 в 05:37

Другие вопросы по тегам:

Похожие вопросы: