"Hầu như" câu hỏi tương tự đã được hỏi ở đây:
Biết máy chủ phân phối Ubuntu hoặc máy tính để bàn
Tôi cũng muốn đăng câu trả lời của mình ở đây vì nó có một vài gợi ý mới về cách kiểm tra xem trên phiên bản máy tính để bàn hay máy chủ.
Như đã đề cập trong các bài viết trước, không dễ để xác định xem bạn sử dụng phiên bản máy tính để bàn hay máy chủ vì tất cả các gói có thể được cài đặt hoặc gỡ bỏ.
Nếu bạn ở trong một môi trường nhất quán và có thể dự đoán được, sẽ không quá khó để xác định xem máy tính để bàn hay máy chủ.
Tôi chỉ sử dụng máy chủ ubfox-máy tính để bàn (vanilla) hoặc máy chủ Ubuntu. Đối với tôi, dpkg -l ubuntu-desktop
đây là một phương pháp rất đáng tin cậy để xác định xem đó là máy tính để bàn hay máy chủ.
Như đã đề cập trong bài đăng được liên kết, không dễ để xác định xem bạn sử dụng phiên bản máy tính để bàn hay máy chủ vì tất cả các gói có thể được cài đặt hoặc gỡ bỏ.
Đây là chức năng của tôi, tôi sử dụng cho các kịch bản của mình. Về cơ bản, nó kiểm tra nếu xserver-common hoặc xwayland được cài đặt. Nếu một trong số chúng được cài đặt, nó có nghĩa là một hệ thống máy tính để bàn.
#!/usr/bin/env bash
check_if_desktop (){
IS_DESKTOP="false"
displayManager=(
'xserver-common' # X Window System (X.Org) infrastructure
'xwayland' # Xwayland X server
)
for i in "${displayManager[@]}"; do
dpkg-query --show --showformat='${Status}\n' $i 2> /dev/null | grep "install ok installed" &> /dev/null
if [[ $? -eq 0 ]]; then
IS_DESKTOP="true"
fi
done
}
Dưới đây là một vài điều khác để kiểm tra:
Theo mặc định, phiên bản máy chủ sử dụng phiên bản cổ điển /etc/network/interfaces
, trong khi phiên bản máy tính để bàn hoạt động với Trình quản lý mạng, vì vậy hãy kiểm tra xem Trình quản lý mạng đã được cài đặt chưa
dpkg -l network-manager
Hoặc chạy lệnh nmcli (công cụ dòng lệnh cho NM) nếu bạn nhận được một thông báo như thế này:
The program 'nmcli' is currently not installed. You can install it by typing:
sudo apt-get install network-manager
xác suất cao là bạn đang ở phiên bản máy chủ. Nhưng hãy nhớ, bạn có thể sửa đổi một máy chủ để hoạt động với NM.
Sử dụng lệnh sau để xác định xem các thành phần máy tính để bàn đã được cài đặt chưa
dpkg -l ubuntu-desktop
Trên máy chủ, bạn sẽ nhận được một thông báo như thế này:
dpkg-query: no packages found matching ubuntu-desktop
Trên máy tính để bàn, bạn sẽ nhận được một thông báo cho bạn biết phiên bản nào đã được cài đặt
Kiểm tra các gói khác thường được tìm thấy trên máy tính để bàn:
dpkg -l unity (gnome, mate and so one) # Desktop environments
dpkg -l compiz (E17, fluxbox and so one) # Window manager
dpkg -l xorg # X window server
hoặc dùng:
dpkg-query --show --showformat='${Status}\n' *packagename* 2> /dev/null | grep "install ok installed"
kiểm tra xem máy chủ X có đang chạy không:
ps -e | grep X
sudo netstat -lp | grep -i Xorg
Kiểm tra các dịch vụ chỉ khả dụng trên máy tính để bàn:
Nó phụ thuộc vào phiên bản Ubuntu của bạn làm thế nào để kiểm tra các dịch vụ:
sudo service *servicename* status # on SysVinit
sudo status *servicename* # on Upstart
systemctl status *servicename*.service # on systemd
dịch vụ tiêu biểu là:
- ánh sáng
- x11-chung
- vỏ gnome
và một số khác có liên quan đến các dẫn xuất nhất định
Ứng dụng của tôi phụ thuộc vào phân phối máy chủ
Ngay cả khi nó không có ý nghĩa gì khi chạy ứng dụng máy chủ trên phiên bản máy tính để bàn, thì cũng không nên có bất kỳ vấn đề nào với việc cài đặt tất cả các phụ thuộc cho ứng dụng của bạn trên phiên bản máy tính để bàn và làm cho nó hoạt động.
Bạn có thể giải thích về điều này tại sao nó phụ thuộc vào bản phân phối máy chủ không?