Làm cách nào để xác định chương trình nếu hệ thống là máy tính để bàn hoặc máy chủ?


12

Có cách nào để phân biệt giữa Ubuntu Server và Ubuntu Desktop không?

Tôi có một tập lệnh Bash ( phích cắm không biết xấu hổ ) mà tôi sử dụng để thiết lập các máy chủ web nhẹ và tôi nhận thấy rằng khi tôi chạy tập lệnh này trên máy tính của mình, cài đặt Ubuntu (Máy tính để bàn) của tôi bị rối tung - Tôi rất đẹp chắc chắn thủ phạm là những dòng mã sau:

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

Những gì tôi muốn làm là phát hiện xem tập lệnh có đang chạy trong hương vị Máy chủ hay không, vì vậy tôi có thể quyết định có nên thanh lọc các gói đó hay không. Nếu không thể phân biệt được các hương vị, bạn có thể cho tôi biết gói nào cần thiết để Ubuntu Desktop hoạt động bình thường không?


@Rinzwind : DISTRIB_ID=Ubuntu DISTRIB_RELEASE=12.10 DISTRIB_CODENAME=quantal DISTRIB_DESCRIPTION="Ubuntu 12.10". Không có gì tôi có thể sử dụng để nói nếu đó là Máy chủ hay Máy tính để bàn.
Alix Axel

Về cơ bản, có rất ít sự khác biệt giữa Ubuntu Server và Ubuntu. Sự khác biệt chủ yếu là phiên bản Desktop đi kèm với GUI, nhưng bạn có thể cài đặt GUI lên máy chủ CLI ub Ubuntu. Ngoài ra, bạn có thể cài đặt các gói máy chủ lên phiên bản GUI của Ubuntu Desktop. Tôi không chắc chắn có một cách chắc chắn, rõ ràng để xác định phương tiện cài đặt Desktop so với Server.
Thomas Ward

@Rinzwind: Đây là cài đặt máy chủ. Tôi cũng có 3 VPS khác ở 2 nhà cung cấp khác nhau với phiên bản máy chủ và không ai trong số họ hiển thị chuỗi "máy chủ". Tôi đoán đọc lsb_releasechỉ là không đủ tin cậy.
Alix Axel

@TheLordofTime: Vâng, tôi biết họ khá giống nhau. Nhưng tôi nghĩ rằng có lẽ có ít nhất một gói quan trọng sẽ phân biệt giữa hai.
Alix Axel

Theo ghi chú tiếp theo, vấn đề là biểu thức chính quy của gói, thay đổi nó thành ( apt-get -qq -y remove --purge "^$halBox_package*" )hoạt động trên cả hương vị Máy chủ và Máy tính để bàn.
Alix Axel

Câu trả lời:


9

Chỉ huy

dpkg -l ubuntu-desktop 

Kết quả:

Mong muốn = Không biết / Cài đặt / Xóa / Lọc / Giữ
| Status = Not / Inst / Conf-files / Unpacked / halF-conf / Half-inst / trig-aWait / Trig-Pend
| / Err? = (Không có) / Yêu cầu phục hồi (Trạng thái, Err: chữ hoa = xấu)
|| / Tên phiên bản Mô tả kiến ​​trúc
+++ - ============== - ============ - ============ - ===== ============================
ii ubfox-desktop 1.287 i386 Hệ thống máy tính để bàn Ubuntu

 - Danh sách các mục

Hang động tại

Nó sẽ không hoạt động nếu ai đó cài đặt máy tính để bàn mà không sử dụng máy tính để bàn ubfox. Nhưng ai làm điều đó?

Tài liệu

  • Trước ngày 12.04, máy chủ Ubuntu mặc định cài đặt kernel được tối ưu hóa cho máy chủ. Kể từ ngày 12.04, không có sự khác biệt về kernel giữa Ubuntu Desktop và Ubuntu Server vì máy chủ linux-image-server được hợp nhất thành linux-image-generic.

BTW, $?sẽ là 1nếu dpkg -lkhông liệt kê bất cứ điều gì, 0nếu không. Về grep desktopnó sẽ luôn khớp, gói hoặc thông báo nói rằng nó chưa được tìm thấy.
Alix Axel

1
Ok đây là lần chỉnh sửa cuối cùng của tôi, tôi hy vọng! Bạn có thể làm sạch ý kiến ​​quá? >: D
Rinzwind

Tôi chỉ đọc dpkgtrang người đàn ông, nhưng dường như điều này dường như hoạt động. Nếu ai đó cài đặt máy tính để bàn mà không có máy tính để bàn Ubuntu, họ nên đủ hiểu biết để khắc phục các sự cố mà tập lệnh của tôi sẽ gây ra, vì vậy tất cả đều tốt! : P
Alix Axel

( dpkg -s "ubuntu-desktop" && Ubuntu_Flavor="desktop" ) > /dev/null 2>&1 làm việc tuyệt vời, cảm ơn!
Alix Axel
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.