Làm cách nào để kiểm tra xem Ubuntu Desktop hay Server đã được cài đặt chưa?


34

Tôi có một lưu trữ chia sẻ. Tôi có quyền truy cập vào vỏ. HĐH là Ubuntu và tôi muốn kiểm tra xem đó là phiên bản máy chủ hay phiên bản máy tính để bàn.

Khi tôi đăng nhập thông qua shell, nó hiển thị thông tin sau:

Linux [server-name] 2.6.32-24-generic #39-Ubuntu SMP Wed Jul 28 06:07:29 UTC 2010 i686 GNU/Linux
Ubuntu 10.04.1 LTS

Câu trả lời:


20

Câu trả lời này không bị cắt và khô như một số người đang đưa ra. Bạn có thể thực hiện ubuntu-standardcài đặt gói và sử dụng như một máy chủ. Bạn có thể sử dụng ubuntu-minimalnhư một máy chủ. Bạn có thể lấy ubuntu-desktopvà phá vỡ nó để nó không sử dụng X ... Hoặc thậm chí để X ở đó để quản trị (eww). Bạn có thể thay đổi các gói kernel từ -server thành -generic thành -rt, v.v. Bạn có thể thay đổi motd hoặc thậm chí chỉ nâng cấp từ một phiên bản mà motd không dài bằng cái mới với tất cả những điều đó - có thể là do chúng được nâng cấp từ các LTS cũ hơn).

Tôi đoán những câu hỏi mà tất cả chúng ta nên hỏi là: Tại sao nó lại quan trọng? Bạn đang cố gắng học gì? Nó có gì khác biệt với bạn?

Nếu bạn đang cố chạy một cái gì đó đồ họa, hãy kiểm tra xem bạn thực sự cần gì (X, x11vnc, v.v.). Nếu bạn đang cố kiểm tra xem không có giao diện đồ họa, hãy làm tương tự!


+1. Tại sao nó quan trọng? Vâng, hãy xem xét ksplice. Máy tính để bàn là miễn phí, máy chủ không ...;)
0xC0000022L

1
Chà, đó là một câu hỏi cụ thể hơn: ksplice kiểm tra cái gì để quyết định xem bạn có thể sử dụng phiên bản máy tính để bàn miễn phí hay không. Tôi đoán họ sẽ kiểm tra bản dựng máy tính để bàn và máy chủ.
poolie

1
Tại sao nó quan trọng? Tôi không có quyền thay thế hệ thống, vì vậy cần phải hủy bỏ nó, bắt đầu với việc biết nó là gì ban đầu. Bạn đang cố gắng học gì? Chỉ những gì được yêu cầu: đó là cài đặt máy chủ hoặc máy tính để bàn. Nó làm gì cho bạn? Nếu đó là cài đặt máy chủ và có đầy đủ nội dung X, chúng ta nên sa thải nhân viên CNTT của mình, v.v.
Jan Kyu Peblik

@JanKyuPeblik Nếu bạn trao một hệ thống bị hỏng và rõ ràng đó không phải là máy tính để bàn, bạn nên yêu cầu người báo cáo lỗi . Nghiêm túc. Máy tính không phải ô tô. Đây không phải là danh sách cụ thể của các giá trị vận hành và dung sai. Tất cả đều có thể cấu hình. Vấn đề ở đây là ứng dụng cho những suy nghĩ của bạn. Là người bàn giao hệ thống có thể dễ dàng lấy một máy chủ và cấu hình nó thành một máy tính để bàn. Nếu bạn biến nó trở lại thành một máy chủ, bạn đã làm hại. Sự khác biệt kỹ thuật giữa hai lúc cài đặt không liên quan đến một vấn đề. Và sự khác biệt trong năm 2010 bây giờ đã nhẹ hơn đáng kể.
Oli

Tất cả những gì tôi nhận được là "lịch sử thật ngu ngốc".
Jan Kyu Peblik

34
dpkg -l ubuntu-desktop 

sẽ cho bạn biết nếu các thành phần máy tính để bàn được đề xuất được cài đặt.

uname -a

sẽ cho bạn biết liệu máy chủ hoặc kernel chung đang được sử dụng.

"Máy tính để bàn hoặc máy chủ" không phải là một thứ nhị phân - có thể có một số thành phần máy tính để bàn được cài đặt trên máy ban đầu được cài đặt làm máy chủ, v.v.

Bạn phải quyết định gói nào bạn muốn sử dụng làm điểm phân biệt chính giữa "máy chủ" hoặc "máy tính để bàn". Có thể xserver-xorglà một lựa chọn tốt, mặc dù thậm chí một số máy chủ sẽ có điều đó cho các phụ thuộc gói hoặc để hỗ trợ máy tính để bàn từ xa.


2
dpkg -i ubuntu-desktop không làm những gì bạn mô tả cho tôi.
8128

2
Xin lỗi, ý tôi là vậy dpkg -l. (Cập nhật.)
poolie

2
Có thể có một máy tính để bàn hoạt động hoàn hảo mà không cần gói máy tính để bàn Ubuntu. Đó chỉ là một siêu dữ liệu để đảm bảo một bộ ứng dụng hỗ trợ tiêu chuẩn nhất định như bảng điều khiển, những thứ dành riêng cho Debian, v.v. được cài đặt cùng với máy tính để bàn của bạn. Nếu bạn loại bỏ bất kỳ thứ nào trong số này thì ubfox-desktop cũng sẽ bị "loại bỏ" một cách hiệu quả nhưng bạn vẫn sẽ có một máy tính để bàn. Thay vào đó, sẽ tốt hơn nhiều nếu kiểm tra gói xserver-xorg-core. Mặc dù, sự tồn tại của gói đó không đảm bảo nó được sử dụng, không có lý do chính đáng nào để cài đặt nó trên một máy không phải máy tính để bàn.
thomasrutter

Vâng, thực tế là không có ranh giới giữa máy tính để bàn và máy chủ đã được thảo luận rộng rãi bởi hầu hết các câu trả lời, bao gồm cả của tôi. Nhưng ubuntu-desktoplà một thử nghiệm hợp lý cho việc bạn có máy tính để bàn Ubuntu hay không. Nếu bạn cài đặt từ CD / ISO trên máy tính để bàn, bạn sẽ có gói này.
poolie

15

nó có thể được kiểm tra bằng cách gõ cat /etc/motd. Đầu ra sẽ không hoạt động trên máy chủ và khác nhau trên phiên bản máy tính để bàn.

Máy tính để bàn:

Ubuntu 10.10

Welcome to Ubuntu!
 * Documentation:  https://help.ubuntu.com/

Máy chủ:

Ubuntu 10.10

Welcome to Ubuntu!
 * Documentation:  https://help.ubuntu.com/

  System information as of Wed Nov 10 20:54:11 UTC 2010

  System load:  0.07               Processes:           78
  Usage of /:   30.4% of 14.76GB   Users logged in:     1
  Memory usage: 38%                IP address for eth0: XXXXXXXX
  Swap usage:   0%

  Graph this data and manage this system at https://landscape.canonical.com/
---------------------------------------------------------------------
At the moment, only the core of the system is installed. To tune the 
system to your needs, you can choose to install one or more          
predefined collections of software by running the following          
command:                                                             

   sudo tasksel --section server  

Một điều đáng nói nữa là tập tin này có thể dễ dàng chỉnh sửa bởi sudo, được thực hiện rất thường xuyên, bởi vì đó là thông điệp mà người dùng nhìn thấy khi đăng nhập qua ssh.


2
Điều này chủ yếu là cho bạn biết liệu đã landscape-clientđược cài đặt. Điều đó có thể đúng trên các máy chủ, nhưng thực chất nó không liên quan đến việc bạn có sử dụng HĐH máy chủ hay không.
poolie

5

Đây có thể không phải là cách nhanh nhất hoặc thuần túy nhất để nói, nhưng hãy chạy:

dpkg --get-selections | grep linux-image | grep -v deinstall

Nếu gói hình ảnh linux hiện được cài đặt có chứa từ "máy chủ" trong đó, thì bạn đang chạy máy chủ Ubuntu.

Ví dụ: gói kernel mới nhất hiện tại cho máy tính để bàn Ubuntu 10.10:

linux-image-2.6.35-22-generic

Và máy chủ:

linux-image-2.6.35-22-server

Đối với gói chung hơn nên giống nhau trên các phiên bản Ubuntu khác nhau, linux-image-genericlà gói mặc định cho máy tính để bàn Ubuntu và linux-image-serverlà mặc định cho phiên bản máy chủ.


4
Bạn có thể chạy kernel server trên máy tính để bàn giống như bạn có thể chạy kernel kernel trên máy chủ. Đây không phải là một câu trả lời dứt khoát bởi bất kỳ căng.
Oli

@Oli: như bạn đã chỉ ra, dường như không có câu trả lời chắc chắn;)
0xC0000022L

4

Không có câu trả lời rõ ràng, đơn giản cho câu hỏi này.

Có thể tải các tính năng của máy tính để bàn đến máy chủ và xóa chúng khỏi máy tính để bàn. Vấn đề gốc là gói nào là một phần của chức năng máy chủ và sẽ có thêm thời gian hỗ trợ và cập nhật.

Các câu trả lời tốt nhất (IMHO) có thể được tìm thấy trong một câu hỏi Launchpad (từ năm 2008):

sự khác biệt giữa phiên bản máy chủ và máy tính để bàn là gì?

https://answers.launchpad.net/ubfox/+question/40114


Bạn có thể tóm tắt kết quả của câu hỏi Launchpad ở đây không?
Peter Mortensen

2

Bạn phải nhớ rằng không có sự khác biệt cơ bản giữa phiên bản Desktop và Server.

Tuy nhiên, rất có khả năng nhà cung cấp dịch vụ lưu trữ của bạn chưa có tất cả các phần đồ họa, chẳng hạn như Gnome trên đỉnh của ngăn xếp, vì không cần chúng. Các gói được cài đặt là những gì làm cho nó một máy chủ.

Bạn có thể quan tâm đến ubuntu-maintenance-checktập lệnh ( liên kết ) cho bạn biết chu kỳ bảo trì của mỗi gói được cài đặt - những gói có thời gian dài hơn là các gói máy chủ.


Rõ ràng từ ngày 12.04 trở đi, tất cả các gói được hỗ trợ đều có cùng thời gian hỗ trợ mà không phân biệt giữa máy chủ và máy tính để bàn.
poolie

2

Tôi đang chạy khám phá trên một mạng lớn và tôi đang cố gắng phân biệt LINUX được cài đặt như một máy trạm so với máy chủ (vì chúng tôi sẽ đối xử với chúng khác nhau).

Tôi đã hy vọng cho một thuộc tính hoặc tệp có Ubuntu-Server thay vì Ubuntu.

Tôi tìm thấy một số tệp thú vị trong / var / log / Installer:

media-information nói "Ubuntu-Server" cho máy chủ và chỉ "Ubuntu" cho máy tính để bàn. syslog hiển thị cùng thông tin cho "cdrom"

Cả hai đều hữu ích và tôi có thể sử dụng chúng cùng với thông tin phần cứng. Điều này sẽ cho bạn biết ít nhất phiên bản nào đã được cài đặt ban đầu.


1

"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?


0

Không có giải pháp nào ở trên làm việc rất tốt cho tôi. Đôi khi một hệ thống không có motd hoặc có thể quản trị viên đã thay đổi nó, v.v. Tôi thậm chí không chắc tại sao câu trả lời ở trên lại là câu trả lời "đúng". Đây là những gì tôi đã kết thúc bằng cách sử dụng.

#!/bin/bash
__check_desktop() {
  if [ `(dpkg-query -W -f='${Status}' ubuntu-desktop 2>/dev/null | grep -c "ok installed")` -eq 1 ]; then
    err "Ubuntu Server is required, but it appears that you are running Ubuntu Desktop"
    exit 1
  fi
}

# Now just call the function:
__check_desktop

Sử dụng -f với $ {Status} là tốt và tôi sẽ sử dụng nó. Nhưng đừng sử dụng bash với cú pháp sh và các hàm không tồn tại, chẳng hạn như 'err'.
Tomáš Nesrovnal
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.