Огромное спасибо!!!
Да не за что.
Ряд вопросов и замечаний.
1. Почему не работает способ с изменением общего для всех пользователей /usr/share/mime/packages/freedesktop.org.xml
Потому, что выше Роман после изменения файла не упомянул команду
update-mime-database /usr/share/mime
Но в любом случае так делать крайне не желательно.
Потому что
$ cat /etc/os-release | grep ^PRETT
PRETTY_NAME="Slackware 14.1"
$ sudo mount /dev/sda2 /mnt/hd/
$ sudo su -
# chroot /mnt/hd/
# cat /etc/altlinux-release
ALT Linux starter kit (Trientalis)
# rpm -qf /usr/share/mime/packages/freedesktop.org.xml
shared-mime-info-1.2-alt1
# apt-cache rdepends shared-mime-info
shared-mime-info
Reverse Depends:
wm-common-freedesktop
etoys
chemical-mime-data
trackermusic-mime-info
squeak-vm
squeak-vm
pcb
obconf
notecase
notecase
nemo
nautilus
monodevelop
kino
kde4libs
gnome-vfs
libgio
edje
Wcalc
NetworkManager-vpnc-gtk
NetworkManager-sstp-gtk
NetworkManager-ssh-gtk
NetworkManager-pptp-gtk
NetworkManager-openvpn-gtk
NetworkManager-openconnect-gtk
NetworkManager-l2tp-gtk
если версия пакета в репозитрии обновится, то после первого же dist-upgrade вся эта настройка сломается.
hold конечно же никто не отменял, но сколько холд этого пакета потянет за собой, кто его знает.
Здесь лучше со всеми выводами и результатами идти на багтрекер с просьбой о фичреквесте (FR:).
Это стандартный пакет во всех Линукс:
# exit
# slapt-get --search shared-mime-info
shared-mime-info-1.3-i486-2 [inst=нет]: shared-mime-info (MIME database)
shared-mime-info-1.0-i486-2 [inst=да]: shared-mime-info (MIME database)
# slapt-get --filelist shared-mime-info | grep freedesktop.org.xml
/usr/share/mime/packages/freedesktop.org.xml
Скрипт выше изменяет только одну строку, - строку 15899
# diff /home/user/.local/share/mime/packages/freedesktop.org.xml /usr/share/mime/packages/freedesktop.org.xml
15899c15899
< <mime-type type="application/x-shockwave-flash">
---
> <mime-type type="application/vnd.adobe.flash.movie">
# diff -c /home/user/.local/share/mime/packages/freedesktop.org.xml \
/usr/share/mime/packages/freedesktop.org.xml
*** /home/user/.local/share/mime/packages/freedesktop.org.xml 2015-09-09 16:30:21.797759347 +0300
--- /usr/share/mime/packages/freedesktop.org.xml 2013-10-01 01:06:26.000000000 +0300
***************
*** 15896,15902 ****
</magic>
<glob pattern="*.sh"/>
</mime-type>
! <mime-type type="application/x-shockwave-flash">
<comment>Shockwave Flash file</comment>
<comment xml:lang="ar">ملف Shockwave Flash</comment>
<comment xml:lang="be@latin">Fajł Shockwave Flash</comment>
--- 15896,15902 ----
</magic>
<glob pattern="*.sh"/>
</mime-type>
! <mime-type type="application/vnd.adobe.flash.movie">
<comment>Shockwave Flash file</comment>
<comment xml:lang="ar">ملف Shockwave Flash</comment>
<comment xml:lang="be@latin">Fajł Shockwave Flash</comment>
2. Как быть если установка/удаление какого-нибудь приложения изменяет /usr/share/mime/packages/freedesktop.org.xml. Опять запускать скрипт.
Такого быть в usr вообще не должно.
Если контрольные суммы одноименных файлов в usr и в пакете не совпадают, самое время кричать "Alarm! Нас взломали!".
3. Вы так подробно описали создание и запуск скрипта как для новичка,
Для них и делалось.
Но при копировании сего в "справочник", согласен, подробности можно опустить.
Чтобы скорее как памятка со списком команд и самыми необходимыми комментариями.
но тогда логично будет добавить в ваш пост команду, которая делает скрипт исполняемым.
Это сугубо индивидуальный подход.
Мой:
- Чем меньше исполняемых файлов в домашнем каталоге, тем спокойней жить.
Но в принципе, этот скрипт можно сделать исполняемым для всех и положить в /usr/local/bin
Но только не забыть, чтобы /usr/local/bin был в переменной PATH.
Если его в PATH нет, то добавить его в PATH, чтобы не указывать полный путь к файлу
# tail -n 3 /home/user/.bash_profile
PATH=$PATH:/usr/local/bin
export PATH
В /usr/local/bin, а не в /usr/bin, чтобы не устраивать помойку из репозиторных исполняемых и самописных.