システムがデスクトップかサーバーかをプログラムで判断するにはどうすればよいですか?


12

Ubuntu ServerとUbuntu Desktopを区別する方法はありますか?

軽量Webサーバーのセットアップに使用するBashスクリプト(恥知らずのプラグ)があり、自分のコンピューターでこのスクリプトを実行すると、Ubuntu(デスクトップ)のインストールがすべて台無しになることに気付きました-私はきれいです犯人は次のコード行であることを確認してください。

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

私がやりたいのは、スクリプトがサーバーフレーバーで実行されているかどうかを検出することです。そのため、これらのパッケージをパージするかどうかを決定できます。フレーバーを区別することができない場合、Ubuntu Desktopが適切に機能するために必要なパッケージを教えてください。


@Rinzwind: DISTRIB_ID=Ubuntu DISTRIB_RELEASE=12.10 DISTRIB_CODENAME=quantal DISTRIB_DESCRIPTION="Ubuntu 12.10"。サーバーかデスクトップかを判断するために使用できるものは何もありません。
アリックスアクセル

基本的に、Ubuntu ServerとUbuntuの違いはほとんどありません。違いは主に、デスクトップバージョンにGUIが付属していることですが、GUIをCLI ubuntuサーバーにインストールできます。また、UbuntuデスクトップのGUIバージョンにサーバーパッケージをインストールできます。デスクトップインストールメディアとサーバーインストールメディアを判別するための確実でクリーンな方法があるかどうかはわかりません。
トーマスウォード

@Rinzwind:これはサーバーインストールです。また、サーバーエディションを使用する2つの異なるプロバイダーに3つのVPSがありますが、いずれも「サーバー」文字列を表示しません。読むlsb_releaseだけでは十分に信頼できないと思います。
アリックスアクセル

@TheLordofTime:はい、それらはほとんど同じです。しかし、少なくとも、この2つを区別する重要なパッケージがあると思いました。
アリックスアクセル

追記として、問題はパッケージの正規表現であり、( apt-get -qq -y remove --purge "^$halBox_package*" )サーバーとデスクトップの両方のフレーバーで機能するように変更しました。
アリックスアクセル

回答:


9

コマンド

dpkg -l ubuntu-desktop 

結果:

Desired =不明/インストール/削除/パージ/保留
| Status = Not / Inst / Conf-files / Unpacked / halF-conf / Half-inst / trig-aWait / Trig-pend
| / Err?=(none)/ Reinst-required(Status、Err:uppercase = bad)
|| /名前バージョンアーキテクチャ説明
+++-==============-============-===========-===== ============================
ii ubuntu-desktop 1.287 i386 Ubuntuデスクトップシステム

 -リスト項目

警告

誰かがubuntu-desktopを使用せずにデスクトップをインストールした場合、機能しません。しかし、誰がそれをしますか?

ドキュメンテーション

  • 12.04より前は、Ubuntuサーバーはデフォルトでサーバー最適化カーネルをインストールします。12.04以降、linux-image-serverはlinux-image-genericにマージされるため、Ubuntu DesktopとUbuntu Serverの間でカーネルに違いはありません。

ところで、$?なります1場合はdpkg -l、何も一覧が表示されない0そう。grep desktopそれに関しては、パッケージまたはそれが見つからなかったことを伝えるメッセージのいずれかと常に一致します。
アリックスアクセル

1
わかりました、これが私の最後の編集です!コメントも整理できますか?>:D-
リンツウィンド

私はただdpkgmanページを読んでいますが、どうやらこれはうまくいくようです。誰かがubuntu-desktopなしでデスクトップをインストールする場合、彼らは私のスクリプトが引き起こす問題を修正するのに十分な知識があるはずなので、それはすべて良いです!:P
アリックスアクセル

( dpkg -s "ubuntu-desktop" && Ubuntu_Flavor="desktop" ) > /dev/null 2>&1うまくいきます、ありがとう!
アリックスアクセル
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.