ฉันจะกำหนดโดยทางโปรแกรมได้อย่างไรหากระบบเป็นเดสก์ท็อปหรือเซิร์ฟเวอร์


12

มีวิธีใดบ้างที่จะแยกแยะระหว่าง Ubuntu Server และ Ubuntu Desktop?

ฉันมี Bash script ( ปลั๊กไร้ยางอาย ) ที่ฉันใช้เพื่อตั้งค่าเว็บเซิร์ฟเวอร์ที่มีน้ำหนักเบาและฉันสังเกตเห็นว่าเมื่อฉันเรียกใช้สคริปต์นี้บนคอมพิวเตอร์ของฉันเองการติดตั้ง 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 เพื่อให้ทำงานได้อย่างถูกต้อง?


DISTRIB_ID=Ubuntu DISTRIB_RELEASE=12.10 DISTRIB_CODENAME=quantal DISTRIB_DESCRIPTION="Ubuntu 12.10"@Rinzwind: ไม่มีอะไรที่ฉันสามารถบอกได้ว่าเป็นเซิร์ฟเวอร์หรือเดสก์ท็อป
Alix Axel

พื้นฐานการพูดมีความแตกต่างเล็กน้อยระหว่างเซิร์ฟเวอร์ Ubuntu และ Ubuntu ความแตกต่างคือความจริงที่ว่าเวอร์ชันเดสก์ท็อปนั้นมาพร้อมกับ GUI แต่คุณสามารถติดตั้ง GUI ลงบนเซิร์ฟเวอร์ของ CLI ubuntu ได้ นอกจากนี้คุณยังสามารถติดตั้งแพ็คเกจเซิร์ฟเวอร์ลงใน Ubuntu Desktop รุ่น GUI ได้ ฉันไม่แน่ใจว่ามีวิธีที่แน่นอนและสะอาดในการพิจารณาสื่อการติดตั้ง Desktop กับเซิร์ฟเวอร์
โธมัสวอร์ด

@Rinzwind: นี่คือการติดตั้งเซิร์ฟเวอร์ ฉันยังมี VPS อื่น ๆ อีก 3 แห่งในผู้ให้บริการ 2 รายที่แตกต่างกันซึ่งมีรุ่นเซิร์ฟเวอร์และไม่มีใครแสดงสตริง "เซิร์ฟเวอร์" ฉันเดาว่าการอ่านlsb_releaseไม่น่าเชื่อถือเพียงพอ
Alix Axel

@TheLordofTime: ใช่ฉันรู้ว่าพวกเขาเหมือนกันมาก แต่ฉันคิดว่าอย่างน้อยก็อาจมีแพ็คเกจที่สำคัญที่จะแยกความแตกต่างระหว่างทั้งสอง
Alix Axel

เพื่อเป็นการติดตามปัญหาคือแพคเกจการแสดงออกปกติเปลี่ยนเป็น( apt-get -qq -y remove --purge "^$halBox_package*" )ทำงานบนทั้งรสชาติเซิร์ฟเวอร์และเดสก์ท็อป
Alix Axel

คำตอบ:


9

คำสั่ง

dpkg -l ubuntu-desktop 

ผลลัพธ์:

ที่ต้องการอยาก = ไม่ทราบ / ติดตั้ง / ลบ / ล้าง / จอง
| สถานะ = ไม่ / สถาบัน / Conf ไฟล์ / คลายการแพค / ครึ่ง conf / ครึ่งสถาบัน / หนุน-รอ / หนุน-แขวน
| / Err? = (none) / จำเป็นต้องเริ่มต้นใหม่ (สถานะ, Err: uppercase = bad)
|| / ชื่อเวอร์ชั่นสถาปัตยกรรมคำอธิบาย
+++ - ============== - ============ - ============ - ===== ============================
ii ubuntu-desktop 1.287 i386 ระบบเดสก์ท็อป Ubuntu

 - รายการสินค้า

ข้อแม้

มันจะไม่ทำงานหากมีคนติดตั้งเดสก์ท็อปโดยไม่ใช้ ubuntu-desktop แต่ใครทำอย่างนั้น?

เอกสาร

  • ก่อน 12.04 เซิร์ฟเวอร์ Ubuntu จะติดตั้งเคอร์เนลที่ปรับให้เหมาะสมกับเซิร์ฟเวอร์โดยค่าเริ่มต้น ตั้งแต่ 12.04 ไม่มีความแตกต่างในเคอร์เนลระหว่าง Ubuntu Desktop และ Ubuntu Server เนื่องจาก linux-image-server ถูกรวมเข้ากับ linux-image-generic

BTW $?จะเป็น1ถ้าdpkg -lล้มเหลวในการแสดงรายการอะไรเป็น0อย่างอื่น grep desktopมันเกี่ยวกับการจับคู่เสมอแพคเกจหรือข้อความที่บอกว่ามันไม่ได้พบ
Alix Axel

1
ตกลงนี่คือการแก้ไขล่าสุดของฉันฉันหวังว่า! คุณสามารถล้างความคิดเห็นด้วยหรือไม่ >: D
Rinzwind

ฉันแค่อ่านdpkgman page แต่ดูเหมือนว่านี่ใช้ได้ หากมีคนติดตั้งเดสก์ท็อปที่ไม่มีอูบุนตู - เดสก์ท็อปพวกเขาควรจะเข้าใจพอที่จะแก้ไขปัญหาที่สคริปต์ของฉันจะทำให้เกิดขึ้น : P
Alix Axel

( dpkg -s "ubuntu-desktop" && Ubuntu_Flavor="desktop" ) > /dev/null 2>&1ใช้งานได้ดีขอบคุณ!
Alix Axel
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.