Bagaimana cara memeriksa apakah Ubuntu Desktop atau Server diinstal?


34

Saya memiliki hosting bersama. Saya memiliki akses ke shell. OS adalah Ubuntu, dan saya ingin memeriksa apakah itu versi server atau versi desktop.

Ketika saya masuk melalui shell, ini menunjukkan informasi berikut:

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

Jawaban:


20

Jawaban ini tidak sama kering dan keringnya dengan beberapa orang. Anda dapat melakukan ubuntu-standardinstalasi paket dan menggunakannya sebagai server. Anda bisa menggunakannya ubuntu-minimalsebagai server. Anda dapat mengambil ubuntu-desktopdan memecahkannya sehingga tidak menggunakan X ... Atau bahkan meninggalkan X di sana untuk administrasi (eww). Anda dapat mengubah paket kernel dari -server ke -generic ke -rt dll. Anda dapat mengubah motd atau bahkan hanya memutakhirkan dari versi di mana motd tidak selama yang baru (tidak ada server saya yang pernah keluar dengan semua itu - mungkin karena mereka ditingkatkan dari LTS lama).

Saya kira pertanyaan yang harus kita tanyakan adalah: Mengapa itu penting? Apa yang ingin kamu pelajari? Apa bedanya bagi Anda?

Jika Anda mencoba menjalankan sesuatu yang grafis, periksa apa yang sebenarnya Anda butuhkan (X, x11vnc, dll). Jika Anda mencoba memeriksa bahwa tidak ada antarmuka grafis, lakukan hal yang sama!


+1. Mengapa itu penting? Nah, pertimbangkan ksplice. Desktop gratis, server tidak ...;)
0xC0000022L

1
Nah, itu pertanyaan yang lebih spesifik: apa yang diperiksa ksplice untuk memutuskan apakah Anda dapat menggunakan versi desktop gratis. Saya kira mereka memeriksa desktop vs server membangun kernel.
poolie

1
Mengapa itu penting? Saya tidak memiliki wewenang untuk mengganti sistem, jadi perlu unclusterfsck, dimulai dengan mengetahui apa yang semula. Apa yang ingin kamu pelajari? Hanya yang diminta: apakah itu server atau desktop yang diinstal. Apa bedanya buat kamu? Jika itu adalah instalasi server dan penuh dengan barang-barang X, kita harus memecat orang-orang IT kita, dll.
Jan Kyu Peblik

@JanKyuPeblik Jika Anda menggunakan sistem yang rusak dan itu jelas bukan desktop, Anda harus bertanya kepada orang yang melaporkan kesalahan . Serius. Komputer bukan mobil. Ini bukan daftar spesifikasi nilai operasi dan toleransi. Semua bisa dikonfigurasi. Intinya di sini — diterapkan pada pikiran Anda — adalah orang yang menyerahkan sistem dapat dengan mudah mengambil server dan mengkonfigurasinya menjadi desktop. Jika Anda mengubahnya kembali menjadi server, Anda telah melakukan kerusakan. Perbedaan teknis antara keduanya pada waktu pemasangan tidak relevan dengan masalah. Dan perbedaan apa yang ada pada tahun 2010 sekarang jauh lebih ringan.
Oli

Yang saya dapatkan dari itu adalah "sejarah itu bodoh".
Jan Kyu Peblik

34
dpkg -l ubuntu-desktop 

akan memberi tahu Anda jika komponen desktop yang disarankan sudah diinstal.

uname -a

akan memberi tahu Anda apakah server atau kernel generik sedang digunakan.

"Desktop atau server" bukan hal biner - mungkin beberapa komponen desktop diinstal pada mesin yang awalnya diinstal sebagai server, dll.

Anda harus memutuskan paket apa yang ingin Anda gunakan sebagai perbedaan utama antara "server" atau "desktop". Mungkin xserver-xorgmerupakan pilihan yang baik, meskipun beberapa server akan memilikinya untuk dependensi paket atau untuk mendukung desktop jarak jauh.


2
dpkg -i ubuntu-desktop tidak melakukan apa yang Anda gambarkan untuk saya.
8128

2
Maaf, maksud saya dpkg -l. (Diperbarui.)
poolie

2
Dimungkinkan untuk memiliki desktop yang berfungsi sempurna tanpa paket ubuntu-desktop. Itu hanya metapackage untuk memastikan satu set standar tertentu aplikasi pendukung seperti panel kontrol, hal-hal khusus Debian dll diinstal bersama dengan desktop Anda. Jika Anda menghapus semua ini maka ubuntu-desktop akan secara efektif "dihapus" juga tetapi Anda masih memiliki desktop. Akan lebih baik untuk memeriksa paket xserver-xorg-core sebagai gantinya. Meskipun, keberadaan paket itu tidak menjamin bahwa itu digunakan, tidak ada alasan yang baik untuk menginstalnya pada mesin non-desktop.
thomasrutter

Ya, fakta bahwa tidak ada garis tajam antara desktop dan server telah banyak dibahas oleh sebagian besar jawaban, termasuk saya. Tetapi ubuntu-desktopini adalah tes yang masuk akal untuk mengetahui apakah Anda memiliki desktop Ubuntu. Jika Anda menginstal dari CD / ISO desktop, Anda akan memiliki paket ini.
poolie

15

itu bisa diperiksa dengan mengetik cat /etc/motd. Outputnya akan berbeda pada server dan berbeda pada edisi desktop.

Desktop:

Ubuntu 10.10

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

Server:

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  

Perlu juga disebutkan bahwa file ini mudah diedit oleh sudo, yang dilakukan sangat sering, karena itu adalah pesan yang dilihat pengguna ketika ia log melalui ssh.


2
Ini sebagian besar memberitahu Anda apakah landscape-clientsudah diinstal. Itu mungkin benar di server, tetapi sebenarnya tidak benar-benar terhubung ke apakah Anda menggunakan OS server atau tidak.
poolie

5

Ini mungkin bukan cara tercepat atau paling murni untuk mengatakan, tetapi jalankan:

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

Jika paket linux-image yang saat ini diinstal berisi kata "server" di dalamnya, maka Anda menjalankan server Ubuntu.

Sebagai contoh, paket kernel terbaru saat ini untuk desktop Ubuntu 10.10:

linux-image-2.6.35-22-generic

Dan server:

linux-image-2.6.35-22-server

Untuk paket yang lebih umum yang harus sama di berbagai versi Ubuntu, linux-image-genericadalah paket default untuk desktop Ubuntu dan linux-image-servermerupakan default untuk edisi server.


4
Anda dapat menjalankan kernel server pada instalasi desktop sama seperti Anda dapat menjalankan kernel desktop pada server. Ini bukan jawaban yang pasti oleh semua orang.
Oli

@ Oli: seperti yang sudah Anda tunjukkan, sepertinya tidak ada jawaban yang pasti;)
0xC0000022L

4

Tidak ada jawaban yang jelas dan sederhana untuk pertanyaan ini.

Dimungkinkan untuk memuat fitur desktop ke server, dan menghapusnya dari desktop. Masalah root adalah paket apa yang merupakan bagian dari fungsionalitas server , dan akan mendapatkan periode tambahan dukungan dan pembaruan.

The jawaban terbaik (IMHO) dapat ditemukan di sebuah pertanyaan Launchpad (dari 2008):

apa perbedaan antara edisi server dan desktop?

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


Bisakah Anda merangkum hasil pertanyaan Launchpad di sini?
Peter Mortensen

2

Anda harus ingat bahwa tidak ada perbedaan mendasar antara edisi Desktop dan Server.

Namun sangat mungkin bahwa penyedia hosting Anda belum mendapatkan semua keping grafis, seperti GNOME di bagian atas tumpukan, karena tidak diperlukan. Paket yang diinstal adalah apa yang membuatnya menjadi server.

Anda mungkin tertarik pada ubuntu-maintenance-checkskrip ( tautan ) yang memberi tahu Anda siklus pemeliharaan setiap paket yang diinstal - paket yang memiliki periode lebih lama adalah paket server.


Rupanya mulai 12,04 dan seterusnya semua paket yang didukung mendapatkan masa dukungan yang sama tanpa membedakan server vs desktop.
poolie

2

Saya menjalankan penemuan pada jaringan besar dan saya mencoba untuk membedakan dari LINUX yang diinstal sebagai workstation versus server (karena kami akan memperlakukan mereka secara berbeda).

Saya berharap untuk atribut atau file yang memiliki Ubuntu-Server, bukan Ubuntu.

Saya menemukan beberapa file menarik di / var / log / installer:

media-info mengatakan "Ubuntu-Server" untuk server dan hanya "Ubuntu" untuk desktop. syslog menunjukkan informasi yang sama untuk "cdrom"

Kedua hal ini bermanfaat dan saya dapat menggunakannya bersama dengan informasi perangkat keras. Ini akan memberi tahu Anda setidaknya versi apa yang diinstal pada awalnya.


1

"Hampir" pertanyaan yang sama telah diajukan di sini: Ketahui server atau desktop Distribusi Ubuntu

Saya ingin mengirim jawaban saya di sini juga karena ia memiliki beberapa petunjuk baru cara memeriksa apakah Anda di desktop atau edisi server.

Seperti disebutkan dalam posting sebelumnya, tidak mudah untuk menentukan apakah Anda menggunakan edisi desktop atau server karena semua paket dapat diinstal atau dihapus.

Jika Anda berada dalam lingkungan yang konsisten dan dapat diprediksi, seharusnya tidak terlalu sulit untuk menentukan apakah desktop atau server.

Saya hanya menggunakan ubuntu-desktop (vanilla) atau server ubuntu. Bagi saya dpkg -l ubuntu-desktopitu adalah metode yang sangat andal untuk menentukan apakah itu desktop atau server.

Seperti disebutkan dalam posting yang ditautkan, tidak mudah untuk menentukan apakah Anda menggunakan edisi desktop atau server karena semua paket dapat diinstal atau dihapus.

Inilah fungsi yang saya gunakan untuk skrip saya. Pada dasarnya ia memeriksa apakah xserver-common atau xwayland diinstal. Jika salah satu dari mereka diinstal itu berarti sistem desktop.

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

Berikut beberapa hal lain yang perlu diperiksa:

Secara default edisi server menggunakan klasik /etc/network/interfaces, sedangkan edisi desktop beroperasi dengan Network Manager, jadi periksa apakah Network Manager diinstal

dpkg -l network-manager

Atau jalankan perintah nmcli (alat baris perintah untuk NM) jika Anda mendapatkan pesan seperti ini:

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

probabilitasnya tinggi bahwa Anda berada pada edisi server. Namun perlu diingat, Anda dapat memodifikasi server untuk beroperasi dengan NM.


Gunakan perintah berikut untuk menentukan apakah komponen desktop diinstal

dpkg -l ubuntu-desktop

Di Server Anda akan mendapatkan pesan seperti ini:

dpkg-query: no packages found matching ubuntu-desktop

Di Desktop, Anda akan mendapatkan pesan yang memberi tahu Anda versi mana yang diinstal


Periksa paket lain yang biasanya ditemukan di 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

atau gunakan:

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

periksa apakah server X sedang berjalan:

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

Periksa layanan yang hanya tersedia di desktop:

Tergantung pada versi Ubuntu Anda cara memeriksa layanan:

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

layanan khas adalah:

  • lightdm
  • x11-umum
  • gnome-shell

dan beberapa lainnya yang terkait dengan turunan tertentu


Aplikasi saya tergantung pada distribusi server

Bahkan jika tidak masuk akal untuk menjalankan aplikasi server pada edisi desktop, seharusnya tidak ada masalah dengan menginstal semua dependensi untuk aplikasi Anda pada edisi desktop dan membuatnya berfungsi.

Bisakah Anda menjelaskan mengapa ini tergantung pada distro server?


0

Tidak ada solusi di atas yang bekerja dengan baik untuk saya. Kadang-kadang sistem tidak memiliki motd, atau mungkin admin mengubahnya, dll. Saya bahkan tidak yakin mengapa jawaban yang diberikan di atas adalah jawaban yang "benar". Inilah yang akhirnya saya gunakan.

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

Menggunakan -f dengan $ {Status} bagus dan saya akan menggunakannya. Tapi jangan gunakan bash dengan sintaks sh dan fungsi yang tidak ada seperti 'err'.
Tomáš Nesrovnal
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.