Centos

如何自定義在 CentOS 6 上使用 gnome 桌面啟動的預設應用程序集。*

  • December 17, 2014

背景我們執行一系列 CentOS 6.5 伺服器,每個伺服器託管多個使用者(約 100 名)通過 X-Window XDMP 從他們的 MS Windows 桌面進入。這些使用者不需要啟動的預設應用程序主機,如脈衝、音量控制、vino、polkit 等。因此我們希望自定義啟動的預設應用程序集。但是,我們會在這些機器上進行例行的yum 更新,並且不希望我們的自定義被覆蓋。Yum/rpm 包含一些用於保留對指定配置文件的更改的規定。

問題我們可以通過 1) 刪除或 2) 在 /etc/xdg/autostart/ 中的適當 .desktop 文件中插入“Hidden=true”行來自定義啟動的應用程序集,但是,其中一些 .desktop 文件不是在安裝它們的 RPM 包中指定為配置文件(例如 gnome-media、polkit-gnome、policycoreutils、vino)。這意味著如果更新軟體包,這些文件可能會被 yum 更新操作覆蓋。

**建議的解決方案 (1)**蠻力:編寫一個 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

引用自:https://serverfault.com/questions/650658