Ubuntu Desktop 또는 Server가 설치되어 있는지 확인하는 방법


34

공유 호스팅이 있습니다. 쉘에 액세스 할 수 있습니다. OS는 Ubuntu이며 서버 버전인지 데스크톱 버전인지 확인하고 싶습니다.

쉘을 통해 로그인하면 다음 정보가 표시됩니다.

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

답변:


20

이 답변은 일부 사람들이 만드는 것만 큼 잘리지 않고 건조하지 않습니다. ubuntu-standard패키지 설치를 수행하고 이를 서버로 사용할 수 있습니다 . ubuntu-minimal서버로 사용할 수 있습니다 . ubuntu-desktopX를 사용하지 않도록 가져 와서 부술 수 있습니다 ... 또는 관리를 위해 X를 그대로 두십시오 (eww). 커널 패키지를 -server에서 -generic로 -rt 등으로 변경할 수 있습니다. motd를 변경하거나 심지어 motd가 새로운 버전 (내 서버 중 어느 것도 나오지 않는 한)이 아닌 버전에서 업그레이드 할 수 있습니다 아마도 구식 LTS에서 업그레이드 되었기 때문입니다.)

우리 모두가 묻는 질문은 다음과 같습니다. 왜 중요한가? 무엇을 배우려고합니까? 당신에게 어떤 차이가 있습니까?

그래픽으로 무언가를 실행하려는 경우 실제로 필요한 것을 확인하십시오 (X, x11vnc 등). 그래픽 인터페이스가 없는지 확인하려면 동일한 작업을 수행하십시오!


+1. 왜 중요한가요? ksplice를 고려하십시오. 데스크탑은 무료이며 서버는 ...;)
0xC0000022L

1
ksplice가 무료 데스크톱 버전을 사용할 수 있는지 여부를 결정하기 위해 무엇을 확인해야하는지보다 구체적인 질문입니다. 나는 그들이 데스크탑 대 서버 커널 빌드를 확인하는 것 같아요.
poolie

1
왜 중요한가요? 시스템을 교체 할 권한이 없으므로 원래 시스템을 파악하는 것부터 시작하여 시스템을 제거해야합니다. 무엇을 배우려고합니까? 요청한 것은 서버 또는 데스크탑 설치였습니다. 어떤 차이점이 있습니까? 이 서버가 설치했고 그것이 X 물건의 전체 있다면, 우리는 우리의 IT 명을 해고해야한다, 등등
월 규 Peblik

@JanKyuPeblik 손상된 시스템을 건네 받았지만 분명히 데스크탑이 아닌 경우, 결함을보고 한 사람에게 문의해야합니다 . 진심으로. 컴퓨터는 자동차가 아닙니다. 작동 값 및 공차의 사양 목록이 아닙니다. 모두 구성 할 수 있습니다. 여기서 여러분의 생각에 적용되는 요점은 시스템을 전달하는 사람이 쉽게 서버를 가져 와서 데스크탑으로 구성 할 수 있다는 것입니다. 다시 서버로 바꾸면 피해를 입었을 것입니다. 설치시 둘 사이의 기술적 차이점은 문제와 관련이 없습니다. 그리고 2010 년에 있었던 차이점은 이제 상당히 미미합니다.
Oli

내가 그로부터 얻은 것은 "역사는 멍청하다"였습니다.
Jan Kyu Peblik

34
dpkg -l ubuntu-desktop 

제안 된 데스크톱 구성 요소가 설치되어 있는지 알려줍니다.

uname -a

서버 또는 일반 커널이 사용 중인지 알려줍니다.

"데스크탑 또는 서버"는 바이너리가 아닙니다. 원래 데스크탑 서버로 설치된 머신에 일부 데스크탑 구성 요소를 설치하는 것이 가능합니다.

"서버"또는 "데스크톱"의 주요 차이점으로 사용할 패키지를 결정해야합니다. 어쩌면 xserver-xorg좋은 선택이지만, 일부 서버에서도 패키지 종속성이나 원격 데스크톱을 지원할 수 있습니다.


2
dpkg -i ubuntu-desktop 당신이 나를 위해 설명하는 것을하지 않습니다.
8128

2
죄송합니다 dpkg -l. (업데이트 됨)
poolie

2
우분투 데스크탑 패키지없이 완벽하게 작동하는 데스크탑을 가질 수 있습니다. 이는 제어판, 데비안 고유의 것들과 같은 특정 표준 지원 응용 프로그램이 데스크탑과 함께 설치되도록하는 메타 패키지입니다. 이 중 하나를 제거하면 ubuntu-desktop도 효과적으로 "제거"되지만 데스크탑은 계속 유지됩니다. 대신 xserver-xorg-core 패키지를 확인하는 것이 훨씬 좋습니다. 해당 패키지가 있다고해서 반드시 패키지가 사용된다고 보장 할 수는 없지만 비 데스크탑 시스템에 패키지를 설치해야 할 이유는 없습니다.
thomasrutter

그렇습니다. 데스크톱과 서버 사이에 뚜렷한 선이 없다는 사실은 내 것을 포함하여 대부분의 답변에서 광범위하게 논의되었습니다. 그러나 ubuntu-desktopUbuntu 데스크탑이 있는지에 대한 합리적인 테스트입니다. 데스크탑 CD / ISO에서 설치하면이 패키지가 제공됩니다.
poolie

15

을 입력하여 확인할 수 있습니다 cat /etc/motd. 서버에서 출력이 다르고 데스크톱 버전에서는 출력이 다릅니다.

데스크탑 :

Ubuntu 10.10

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

섬기는 사람:

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  

이 파일은 sudo로 쉽게 편집 할 수 있으며, ssh를 통해 로그를 볼 때 사용자에게 표시되는 메시지이기 때문에 매우 자주 수행됩니다.


2
이것은 대부분 landscape-client설치 여부를 알려줍니다 . 서버에서는 사실 일 수 있지만 서버 OS 사용 여부에 관계없이 실제로 연결되지는 않습니다.
poolie

5

가장 빠르거나 순수한 방법은 아니지만 다음을 실행하십시오.

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

현재 설치된 linux-image 패키지에 "server"라는 단어가 포함되어 있으면 Ubuntu 서버를 실행하고있는 것입니다.

예를 들어 Ubuntu 10.10 데스크탑의 현재 최신 커널 패키지는 다음과 같습니다.

linux-image-2.6.35-22-generic

그리고 서버 :

linux-image-2.6.35-22-server

서로 다른 버전의 Ubuntu에서 동일해야하는보다 일반적인 패키지의 linux-image-generic경우 Ubuntu 데스크탑의 기본 패키지이며 linux-image-server서버 에디션 의 기본 패키지입니다 .


4
서버에서 데스크탑 커널을 실행할 수있는 것처럼 데스크탑 설치에서 서버 커널을 실행할 수 있습니다. 이것은 모든 스트레치에 의한 결정적인 대답이 아닙니다.
Oli

@Oli : 당신이 이미 지적했듯이, 명확한 대답은 없을 것 같습니다;)
0xC0000022L

4

이 질문에 대한 명확하게 정의되고 간단하게 대답 된 답변은 없습니다.

데스크탑 기능을 서버에로드하고 데스크탑에서 제거 할 수 있습니다. 루트 문제는 패키지는 서버 기능의 일부가 무엇인지 , 그리고 얻을 것이다 지원 및 업데이트의 추가 기간.

가장 좋은 대답 (IMHO)는 (2008)는 런치 패드 질문에서 찾을 수 있습니다 :

서버 에디션과 데스크톱 에디션의 차이점은 무엇입니까?

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


런치 패드 질문의 결과를 여기에 요약 할 수 있습니까?
Peter Mortensen

2

Desktop과 Server 에디션간에 근본적인 차이가 없음을 기억해야합니다.

그러나 호스팅 제공 업체는 스택 상단에 그놈과 같은 그래픽 조각이 모두 필요하지 않을 가능성이 높습니다. 설치된 패키지는이를 서버로 만듭니다.

설치된 각 패키지의 유지 관리주기를 알려주는 ubuntu-maintenance-check스크립트 ( link )에 관심이있을 수 있습니다 . 더 긴주기는 서버 패키지입니다.


분명히 12.04부터 모든 지원되는 패키지 는 서버와 데스크탑을 구분하지 않고 동일한 지원 수명얻습니다 .
poolie

2

대규모 네트워크에서 감지를 실행 중이며 워크 스테이션으로 설치된 LINUX와 서버를 구별하려고합니다 (우리는 다르게 처리 할 것이므로).

우분투 대신 우분투 서버가있는 속성이나 파일을 원했습니다.

/ var / log / installer에 흥미로운 파일이 있습니다.

media-info는 서버에 대해서는 "Ubuntu-Server"이고 데스크탑에는 "Ubuntu"라고 말합니다. syslog는 "cdrom"에 대한 동일한 정보를 보여줍니다

이 두 가지가 모두 유용하며 하드웨어 정보와 함께 사용할 수 있습니다. 이것은 최소한 원래 설치된 버전을 알려줍니다.


1

"거의"같은 질문이 여기에 있습니다 : 우분투 배포 서버 또는 데스크탑 알아

데스크톱 또는 서버 에디션에서 확인하는 방법에 대한 몇 가지 새로운 힌트가 있기 때문에 여기에 내 답변을 게시하고 싶습니다.

이전 게시물에서 언급했듯이 모든 패키지를 설치하거나 제거 할 수 있기 때문에 데스크톱 또는 서버 에디션을 사용할지 쉽게 결정할 수 없습니다.

일관되고 예측 가능한 환경에있는 경우 데스크톱 또는 서버인지 확인하기가 어렵지 않습니다.

우분투 데스크탑 (바닐라) 또는 우분투 서버 만 사용합니다. 나에게 dpkg -l ubuntu-desktop그것은 데스크톱 또는 서버인지를 결정하는 매우 안정적인 방법입니다.

링크 된 게시물에서 언급했듯이 모든 패키지를 설치하거나 제거 할 수 있기 때문에 데스크톱 또는 서버 에디션을 사용하는지 쉽게 판단 할 수 없습니다.

다음은 스크립트에 사용하는 기능입니다. 기본적으로 xserver-common 또는 xwayland가 설치되어 있는지 확인합니다. 그중 하나가 설치되어 있으면 데스크탑 시스템을 의미합니다.

#!/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
}

확인해야 할 몇 가지 사항은 다음과 같습니다.

기본적으로 서버 에디션은 classic을 사용하고 /etc/network/interfaces데스크탑 에디션은 Network Manager와 함께 작동하므로 Network Manager가 설치되어 있는지 확인하십시오.

dpkg -l network-manager

또는 다음과 같은 메시지가 표시되면 nmcli (NM 용 명령 행 도구) 명령을 실행하십시오.

The program 'nmcli' is currently not installed. You can install it by typing:
sudo apt-get install network-manager

서버 에디션에있을 가능성이 높습니다. 그러나 NM과 작동하도록 서버를 수정할 수 있습니다.


다음 명령을 사용하여 데스크탑 구성 요소가 설치되어 있는지 판별하십시오.

dpkg -l ubuntu-desktop

서버에서 다음과 같은 메시지가 나타납니다.

dpkg-query: no packages found matching ubuntu-desktop

데스크탑에는 설치된 버전을 알려주는 메시지가 표시됩니다


일반적으로 데스크탑에있는 다른 패키지를 확인하십시오.

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

또는 사용 :

 dpkg-query --show --showformat='${Status}\n' *packagename* 2> /dev/null | grep "install ok installed"

X 서버가 실행 중인지 확인하십시오.

ps -e | grep X
sudo netstat -lp | grep -i Xorg

데스크탑에서만 사용 가능한 서비스를 확인하십시오.

서비스를 확인하는 방법은 Ubuntu 버전에 따라 다릅니다.

sudo service *servicename* status # on SysVinit 
sudo status *servicename* # on Upstart
systemctl status *servicename*.service # on systemd

일반적인 서비스는 다음과 같습니다.

  • lightdm
  • x11- 커먼
  • 그놈 껍질

특정 파생 상품과 관련된 일부


내 응용 프로그램은 서버 배포에 따라 다릅니다

Desktop Edition에서 서버 응용 프로그램을 실행하는 것이 타당하지 않더라도 Desktop Edition에 응용 프로그램의 모든 종속성을 설치하여 작동시키는 데 문제가 없어야합니다.

이것이 서버 배포판에 의존하는 이유에 대해 자세히 설명해 주시겠습니까?


0

위의 솔루션 중 어느 것도 나를 위해 잘 작동하지 않았습니다. 때로는 시스템에 motd가 없거나 관리자가 변경 한 경우 등이 있습니다. 위의 답변이 "올바른"답변 인 이유 조차 확실하지 않습니다 . 여기에 내가 사용한 것이 있습니다.

#!/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

$ {Status}와 함께 -f를 사용하는 것이 좋으며 사용하겠습니다. 그러나 sh 구문과 함께 bash와 'err'와 같은 존재하지 않는 함수를 사용하지 마십시오.
Tomáš Nesrovnal
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.