Como personalizar o conjunto padrão de aplicativos iniciado com o desktop gnome no CentOS 6. *

1

Plano de fundo Executamos uma série de servidores CentOS 6.5 que hospedam vários usuários (~ 100s) que chegam via X-Window XDMP a partir de seus desktops MS Windows. Esses usuários não precisam do host de aplicativos padrão que são ativados, como pulso, controle de volume, vino, polkit etc. Por isso, queremos personalizar o conjunto padrão de aplicativos iniciados. No entanto, fazemos atualizações yum de rotina nessas máquinas e não queremos que nossa personalização seja sobrescrita. O Yum / rpm inclui algumas disposições para preservar as alterações nos arquivos de configuração designados.

Pergunta Podemos personalizar o conjunto de aplicativos lançados por 1) exclusão ou 2) inserção da linha "Hidden = true" nos arquivos .desktop apropriados em / etc / xdg / autostart /, no entanto, vários desses arquivos .desktop não são especificados como arquivos de configuração nos pacotes RPM que os instalam (por exemplo, gnome-media, polkit-gnome, policycoreutils, vino). Isso significa que esses arquivos podem ser sobrescritos por uma operação de atualização do yum, caso o pacote seja atualizado.

Solução proposta (1) Força bruta: escreva um script de atualização que saia e refaça as alterações que fizemos. Executar manualmente ou talvez o yum possa ser personalizado para executá-lo automaticamente.

Solução proposta (2) Subtil mas arriscado: crie nosso próprio pacote RPM personalizado que instala os arquivos com alterações. Em seguida, force esse RPM a ser instalado. Atualizações futuras do RPM que desejam alterar os arquivos serão suspensas devido ao conflito. Isso interromperá a atualização yum de rotina e seguiríamos um procedimento manual para preservar / restaurar a personalização.

Soluções alternativas, pensamentos e críticas são muito bem vindas! Obrigado.

    
por Kevin Buchs 10.12.2014 / 21:19

1 resposta

0

Aqui está o script que eu criei para a abordagem da força bruta # 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
    
por 17.12.2014 / 17:13