W systemie Linux Ubuntu Server, aby zainstalować serwer DHCP, należy użyć polecenia
A. sudo apt-get install isc-dhcp-server
B. sudo service isc-dhcp-server start
C. sudo service isc-dhcp-server install
D. sudo apt-get isc-dhcp-server start
Pytanie z egzaminu CKE, styczeń 2019 (arkusz E.13-X-19.01).
Polecenie sudo apt-get install isc-dhcp-server jest właściwe, ponieważ w Ubuntu Server instalowanie pakietów wykonuje się przez menedżer pakietów APT. Część apt-get install mówi systemowi, że ma pobrać i zainstalować wskazany pakiet z repozytoriów, a isc-dhcp-server to nazwa pakietu zawierającego usługę serwera DHCP od ISC. sudo jest potrzebne, bo instalacja oprogramowania zmienia pliki systemowe i wymaga uprawnień administratora. W praktyce po instalacji zwykle trzeba jeszcze skonfigurować plik /etc/dhcp/dhcpd.conf, wskazać interfejs w /etc/default/isc-dhcp-server, a potem uruchomić usługę np. sudo systemctl start isc-dhcp-server oraz sprawdzić jej stan przez sudo systemctl status isc-dhcp-server. Moim zdaniem warto zapamiętać rozdzielenie: apt instaluje pakiety, a systemctl albo service zarządza działającymi usługami. To jest bardzo typowy schemat w administracji Linuksem i dobra praktyka branżowa, bo instalacja, konfiguracja i uruchomienie usługi to trzy różne etapy. DHCP jest usługą sieciową, która automatycznie przydziela adresy IP, bramę domyślną, DNS-y i czas dzierżawy, więc przy konfiguracji trzeba uważać, żeby nie uruchomić przypadkiem drugiego serwera DHCP w tej samej sieci LAN.
W Ubuntu Server trzeba odróżniać instalowanie pakietu od zarządzania usługą, bo to jest częsty błąd na sprawdzianach i potem w normalnej pracy administratora też potrafi narobić zamieszania. Narzędzie service służy do obsługi usług systemowych, czyli na przykład do ich uruchamiania, zatrzymywania, restartowania albo sprawdzania statusu. Nie instaluje ono pakietów z repozytorium, więc konstrukcja sudo service isc-dhcp-server install nie pasuje do modelu działania systemu. Podobnie sudo service isc-dhcp-server start może być poprawne dopiero po instalacji pakietu i wykonaniu podstawowej konfiguracji, ale samo w sobie nie zainstaluje serwera DHCP. To trochę tak, jakby próbować odpalić program, którego jeszcze nie ma na dysku. W nowszych wersjach Ubuntu częściej używa się systemctl, na przykład sudo systemctl start isc-dhcp-server, ale zasada zostaje ta sama: to jest zarządzanie usługą, nie instalacja. Błędne jest też mieszanie składni apt-get z komendami typu start. apt-get oczekuje akcji pakietowej, takiej jak install, remove, update czy upgrade, a nie polecenia uruchamiania usługi. Z mojego doświadczenia wynika, że najłatwiej zapamiętać prosty porządek: najpierw aktualizacja list pakietów przez sudo apt-get update, potem instalacja przez sudo apt-get install isc-dhcp-server, następnie edycja plików konfiguracyjnych i dopiero na końcu start lub restart usługi. Takie podejście jest zgodne z dobrymi praktykami administracji Linuksem i zmniejsza ryzyko, że serwer DHCP zostanie uruchomiony bez poprawnego zakresu adresów, opcji DNS albo właściwego interfejsu sieciowego.