Назад | Перейти на главную страницу

Как настроить набор приложений по умолчанию, запускаемых с помощью рабочего стола gnome на CentOS 6. *

Задний план Мы запускаем серию серверов CentOS 6.5, на каждом из которых размещается несколько пользователей (~ 100), которые входят через X-Window XDMP со своих рабочих столов MS Windows. Этим пользователям не нужен хост запускаемых приложений по умолчанию, таких как pulse, volume-control, vino, polkit и т. Д. Поэтому мы хотим настроить набор запускаемых приложений по умолчанию. Однако мы делаем рутину ням обновления на этих машинах и не хотите, чтобы наши настройки были перезаписаны. Yum / rpm включает некоторые положения для сохранения изменений в назначенных файлах конфигурации.

Вопрос Мы можем настроить набор запускаемых приложений, 1) удалив или 2) вставив строку «Hidden = true» в соответствующие файлы .desktop в / etc / xdg / autostart /, однако некоторые из этих файлов .desktop не указаны как файлы конфигурации в пакетах RPM, которые их устанавливают (например, gnome-media, polkit-gnome, policycoreutils, vino). Это означает, что эти файлы могут быть перезаписаны операцией обновления yum при обновлении пакета.

Предлагаемое решение (1) Грубая сила: напишите сценарий after-yum-update, который повторяет внесенные нами изменения. Либо запустите это вручную, либо, возможно, yum можно настроить для автоматического запуска.

Предлагаемое решение (2) Тонко, но рискованно: создайте собственный пакет RPM, который устанавливает файлы с изменениями. Затем принудительно установите этот RPM. Будущие обновления RPM, которые хотят изменить файлы, будут остановлены из-за конфликта. Это прервет обычное обновление yum, и мы будем следовать ручной процедуре, чтобы сохранить / восстановить настройки.

Приветствуются альтернативные решения, мысли и критика! Спасибо.

Вот сценарий, который я придумал для метода грубой силы №1:

#!/bin/bash

filelist1='at-spi-registryd.desktop
bluetooth-applet.desktop
gdu-notification-daemon.desktop
gnome-at-session.desktop
gnome-keyring-daemon.desktop
gnome-screensaver.desktop
gnome-user-share.desktop
gnome-volume-control-applet.desktop
gpk-update-icon.desktop
nm-applet.desktop
polkit-gnome-authentication-agent-1.desktop
pulseaudio.desktop
restorecond.desktop
seahorse-daemon.desktop
spice-vdagent.desktop
user-dirs-update-gtk.desktop
vino-server.desktop'

if [ ! -d /etc/xdg/autostart ]; then
    echo "The assumptions of this script are flawed. Aborting"
    echo "Directory /etc/xdg/autostart does not exist."
    exit
fi
cd /etc/xdg/autostart
mkdir -p save
for f in $filelist1;do
    if [ -f $f ]; then
       mv $f save; 
    else
       echo "/etc/xdg/autostart/$f not found";
    fi
done


if [ ! -f /usr/share/gnome/autostart/libcanberra-login-sound.desktop ]; then
    echo "The assumptions of this script are flawed. Aborting"
    echo "The file /usr/share/gnome/autostart/libcanberra-login-sound.desktop does not exist."
    exit
fi
cd /usr/share/gnome/autostart
mkdir -p save
mv libcanberra-login-sound.desktop save
if [ ! -f /usr/share/gnome/shutdown/libcanberra-logout-sound.sh ]; then
    echo "The assumptions of this script are flawed. Aborting"
    echo "The file /usr/share/gnome/shutdown/libcanberra-logout-sound.sh does not exist."
    exit
fi
cd /usr/share/gnome/shutdown
mkdir -p save
mv libcanberra-logout-sound.sh save