Как установка xfce> = 4.10 из репозитория бэкпортов в debian

cat /dev/null является немного замысловатым способ записать команду, которая не производит вывода. : или true более очевидные.

Во всем из cat /dev/null > file, : > file, и даже > file в большинстве оболочек оболочка открывает файл с O_TRUNC на stdout, затем запускает приложение, которое ничего не производит, затем файл закрыт и оставлен усеченный.

Однако в этом случае или при использовании truncate системный вызов, если процесс, который заполняет тот файл, не открыл его с флагом O_APPEND, в следующий раз, когда он пишет в дескриптор файла, что имеет открытый на файле, он запишет данные при смещении, которым это было в файле.

Поскольку HFS + не поддерживает редкие файлы, который означает, что пространство перед тем смещением должно будет быть перераспределено и заполнено нулями системой.

Так, необходимо уничтожить приложение, которое пишет в тот файл прежде, чем усечь его. Или необходимо удостовериться, что приложение открывает файл с O_APPEND (как с >> при использовании перенаправления оболочки).

Если Вы хотите экспериментировать с ним:

$ exec 3> x
$ yes | head -n 50000 >&3
$ ls -ls x
200 -rw-r--r--  1 me me  100000 Dec 16 21:32 x

Теперь fd 3 моей оболочки составляет 100 000 байтов в файле

$ : > x
$ ls -ls x
0 -rw-r--r--  1 me me  0 Dec 16 21:34 x

Теперь файл является усеченным (размер 0, никакое пространство, использованное на диске).

$ echo >&3
$ ls -ls x
200 -rw-r--r--  1 me me  100001 Dec 16 21:34 x

Пишущий 1 байт в файл при смещении 100000, файл теперь 100 001 байт шириной, первые все нули, использовал бы по 100k на HFS +, но о всего одном дисковом блоке в большинстве других файловых систем Unix

С другой стороны, с:

$ exec 3>> x
$ yes | head -n 50000 >&3
$ ls -ls x
200 -rw-r--r--  1 me me  100000 Dec 16 21:35 x
$ : > x
$ echo >&3
$ ls -ls x
8 -rw-r--r--  1 me me  1 Dec 16 21:36 x

Запись 1 байта в файл не при смещении 100000, а в конце файла из-за O_APPEND. Файл 1 байт шириной, и занимает место, должен был содержать тот один байт.

2
21.08.2014, 00:11
2 ответа

Наличие там deb-файла не означает, что его можно использовать для всех выпусков. Файлы там используются всеми от squeeze до experimental. В данном случае, в хризо-бэкпортах , единственным пакетом xfce4, связанным с xfce4-weather-плагином , где версия 0.8.3 была перенесена в хризо-бэкспорт .

Чтобы получить XFCE 4.10, вам придется использовать другое репо.

2
27.01.2020, 21:57

Добавьте Mepis Repo к /etc/apt/sources. list (Mepis основан на Debian Stable):

deb http://main.mepis-deb.org/mepiscr/xfce/ xfce-4.10 main 

Запустите aptitude update

Импортируйте ключ репо и установите бэкпорт:

gpg --keyserver pgp.mit.edu --recv-keys 81E77EAF14E225A0
gpg --armor --export 14E225A0 | apt-key add -
apt-get -t xfce-4.10 install xfce4

Debian Wheezy 64 bit with backported XFCE 4.10

Mepis Community Repo также собирается для 32 и 64 бит:

deb http://main.mepis-deb.org/mepiscr/repo/ mepis12cr main non-free 

С помощью этого метода вы можете сохранить sysvinit sysvinit и избежать systemd.

Чтобы впоследствии применить обновления к xfce 4.10 , вам необходимо:

aptitude update && aptitude upgrade

3
27.01.2020, 21:57

Теги

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