Apakah ada cara untuk membedakan antara Ubuntu Server dan Ubuntu Desktop?
Saya memiliki skrip Bash ( plug shameless ) yang saya gunakan untuk mengatur server web yang ringan, dan saya perhatikan bahwa ketika saya menjalankan skrip ini di komputer saya sendiri, instal Ubuntu (Desktop) saya menjadi kacau - saya cukup yakin pelakunya adalah baris kode berikut:
echo -e "\e[1;32mDave, I'm removing the bloatware.\e[0m"
for halBox_package in apache2 bind9 nscd php portmap rsyslog samba sendmail; do
if [[ -f /etc/init.d/$halBox_package ]]; then
( service $halBox_package stop ) > /dev/null
fi
( apt-get -qq -y remove --purge "$halBox_package*" ) > /dev/null 2>&1
done
Apa yang ingin saya lakukan adalah mendeteksi apakah skrip sedang dijalankan dalam Server flavor atau tidak, jadi saya dapat memutuskan apakah akan menghapus paket-paket itu atau tidak. Jika tidak mungkin membedakan rasa, bisakah Anda memberi tahu saya paket mana yang diperlukan agar Desktop Ubuntu berfungsi dengan baik?
server
bash
package-management
Alix Axel
sumber
sumber
DISTRIB_ID=Ubuntu DISTRIB_RELEASE=12.10 DISTRIB_CODENAME=quantal DISTRIB_DESCRIPTION="Ubuntu 12.10"
. Tidak ada yang dapat saya gunakan untuk mengetahui apakah itu Server atau Desktop.lsb_release
saja tidak cukup dapat diandalkan.( apt-get -qq -y remove --purge "^$halBox_package*" )
bekerja pada kedua rasa Server dan Desktop.Jawaban:
Perintah
Hasil:
Ini tidak akan berfungsi jika seseorang menginstal desktop tanpa menggunakan ubuntu-desktop. Tetapi siapa yang melakukan itu?
sumber
$?
akan menjadi1
jikadpkg -l
gagal mendaftar apa pun,0
jika tidak. Mengenaigrep desktop
hal itu akan selalu cocok, baik paket atau pesan yang mengatakan itu belum ditemukan.dpkg
halaman manual, tetapi tampaknya ini berhasil. Jika seseorang menginstal desktop tanpa ubuntu-desktop, mereka harus cukup pintar untuk memperbaiki masalah yang disebabkan oleh skrip saya, jadi semuanya baik-baik saja! : P( dpkg -s "ubuntu-desktop" && Ubuntu_Flavor="desktop" ) > /dev/null 2>&1
bekerja dengan baik, terima kasih!