अगर सिस्टम एक डेस्कटॉप या सर्वर है, तो मैं प्रोग्रामेटिक रूप से कैसे निर्धारित कर सकता हूं?


12

क्या उबंटू सर्वर और उबंटू डेस्कटॉप के बीच अंतर करने का कोई तरीका है?

मेरे पास एक बैश स्क्रिप्ट ( बेशर्म प्लग ) है जिसे मैं हल्के वेब सर्वर सेट करने के लिए उपयोग करता हूं, और मैंने देखा है कि जब मैं इस स्क्रिप्ट को अपने कंप्यूटर पर चलाता हूं, तो मेरे उबंटू (डेस्कटॉप) इंस्टॉल सभी गड़बड़ हो जाते हैं - मैं सुंदर हूं सुनिश्चित करें कि अपराधी कोड की निम्नलिखित पंक्तियाँ हैं:

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

मैं क्या करना चाहूंगा, यह पता लगाना है कि स्क्रिप्ट को सर्वर फ्लेवर में चलाया जा रहा है या नहीं, इसलिए मैं यह तय कर सकता हूं कि उन पैकेजों को शुद्ध करना है या नहीं। यदि फ्लेवर्स को अलग बताना संभव नहीं है, तो क्या आप मुझे बता सकते हैं कि उबंटू डेस्कटॉप के लिए ठीक से काम करने के लिए कौन सा पैकेज आवश्यक है?


@Rinzwind: DISTRIB_ID=Ubuntu DISTRIB_RELEASE=12.10 DISTRIB_CODENAME=quantal DISTRIB_DESCRIPTION="Ubuntu 12.10"। कुछ भी नहीं जो मैं यह बताने के लिए उपयोग कर सकता हूं कि यह सर्वर या डेस्कटॉप है या नहीं।
एलिक्स एक्सल

मौलिक रूप से, उबंटू सर्वर और उबंटू के बीच बहुत कम अंतर है। अंतर मुख्य रूप से तथ्य यह है कि डेस्कटॉप संस्करण एक जीयूआई के साथ आता है, लेकिन आप सीएलआई ubuntu सर्वर पर एक जीयूआई स्थापित कर सकते हैं। इसके अलावा, आप उबंटू डेस्कटॉप के जीयूआई संस्करण पर सर्वर पैकेज स्थापित कर सकते हैं। मुझे यकीन नहीं है कि डेस्कटॉप बनाम सर्वर इंस्टॉलेशन मीडिया को निर्धारित करने के लिए एक निश्चित आग, साफ-सुथरा रास्ता है।
थॉमस वार्ड

@ रिनविंड: यह एक सर्वर इंस्टॉल है। मेरे पास सर्वर संस्करणों के साथ 2 अलग-अलग प्रदाताओं में 3 अन्य वीपीएस हैं और उनमें से कोई भी "सर्वर" स्ट्रिंग नहीं दिखाता है। मुझे लगता है कि पढ़ना lsb_releaseपर्याप्त विश्वसनीय नहीं है।
एलिक्स एक्सल

@ TheLordofTime: हाँ, मुझे पता है कि वे बहुत अधिक समान हैं। लेकिन मुझे लगा कि शायद कम से कम एक महत्वपूर्ण पैकेज था जो दोनों के बीच अंतर करेगा।
एलिक्स एक्सल

एक अनुवर्ती नोट के रूप में, समस्या पैकेज नियमित अभिव्यक्ति थी, इसे ( apt-get -qq -y remove --purge "^$halBox_package*" )सर्वर और डेस्कटॉप फ्लेवर दोनों पर काम करने के लिए बदल दिया गया ।
एलिक्स एक्सल

जवाबों:


9

आदेश

dpkg -l ubuntu-desktop 

परिणाम:

वांछित = अज्ञात / स्थापित करें / निकालें / शुद्ध / होल्ड
| स्थिति = नहीं / संस्थान / सम्मेलन-फ़ाइलें / पैक नहीं किया गया / आधे conf / आधा Inst / ट्रिग-का इंतजार है / ट्रिग-pend
| / Err? = (कोई नहीं) / Reinst- आवश्यक (स्थिति, त्रुटि: अपरकेस = खराब)
|| / नाम संस्करण वास्तुकला विवरण
+++ - ============== - ============ - ============ - ===== ============================
ii ubuntu-desktop 1.287 i386 उबंटू डेस्कटॉप सिस्टम

 - सामग्री सूचीबद्ध करें

चेतावनी

यदि कोई व्यक्ति ubuntu-desktop का उपयोग किए बिना डेस्कटॉप स्थापित करता है तो यह काम नहीं करेगा। लेकिन ऐसा कौन करता है?

प्रलेखन

  • 12.04 से पहले, Ubuntu सर्वर डिफ़ॉल्ट रूप से एक सर्वर-अनुकूलित कर्नेल स्थापित करता है। 12.04 के बाद से, Ubuntu-Desktop और Ubuntu Server के बीच कर्नेल में कोई अंतर नहीं है क्योंकि linux-image-server को linux-image-generic में विलय कर दिया गया है।

BTW, $?हो जाएगा 1अगर dpkg -lकुछ भी सूची में विफल रहता है, 0अन्यथा। इसके बारे में grep desktopहमेशा मेल होगा, या तो पैकेज या संदेश यह कहते हुए नहीं मिला है।
एलिक्स एक्सल

1
ठीक है, यह मेरा आखिरी संपादन है मुझे उम्मीद है! क्या आप टिप्पणियों को भी साफ कर सकते हैं? >: डी
रिनविंड

मैं सिर्फ dpkgमैन पेज पढ़ रहा हूं , लेकिन जाहिर है यह काम करने लगता है। अगर कोई ubuntu- डेस्कटॉप के बिना डेस्कटॉप स्थापित करता है, तो उन्हें मेरी स्क्रिप्ट के कारण होने वाली समस्याओं को ठीक करने के लिए पर्याप्त समझदार होना चाहिए, इसलिए यह सब अच्छा है! : पी
एलिक्स एक्सल

( dpkg -s "ubuntu-desktop" && Ubuntu_Flavor="desktop" ) > /dev/null 2>&1महान काम करता है, धन्यवाद!
एलिक्स एक्सल
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.