Instalacja i konfiguracja komponentów Ubuntu: Kompletny przewodnik
Ubuntu pozostaje jedną z najpopularniejszych dystrybucji Linux na świecie — i nie bez powodu. Jego elastyczność, solidny ekosystem pakietów i silne wsparcie społeczności czynią go idealną platformą dla programistów, administratorów systemów i firm. Niezależnie od tego, czy konfigurujesz lokalną maszynę deweloperską, czy aprowizujesz środowisko VPS Hosting w chmurze, umiejętność prawidłowej instalacji i konfiguracji komponentów Ubuntu jest podstawową umiejętnością, która przynosi korzyści na każdym poziomie infrastruktury.
Ten kompleksowy przewodnik przeprowadzi Cię przez każdy krytyczny krok: aktualizację systemu, instalację niezbędnych pakietów, konfigurację zapór sieciowych, konfigurację serwerów baz danych, optymalizację wydajności i wiele więcej. Po zakończeniu Twój system Ubuntu będzie wzmocniony, wydajny i gotowy do obciążeń produkcyjnych.
Spis treści
- Aktualizacja Ubuntu przed instalacją czegokolwiek
- Instalacja niezbędnych komponentów
- Konfiguracja repozytoriów oprogramowania
- Instalacja i konfiguracja zapory sieciowej za pomocą UFW
- Instalacja i konfiguracja serwerów baz danych
- Instalacja dodatkowych narzędzi i programów
- Dostosowywanie ustawień systemu Ubuntu
- Konfiguracja automatycznych kopii zapasowych
- Monitorowanie systemu i optymalizacja wydajności
- Ostateczne wskazówki dotyczące systemu Ubuntu gotowego do produkcji
1. Aktualizacja Ubuntu przed instalacją czegokolwiek
Przed dotknięciem pojedynczego pakietu zawsze doprowadź system do pełnej aktualności. Zapewnia to pracę z najnowszymi poprawkami bezpieczeństwa, poprawkami błędów i ulepszeniami kompatybilności oprogramowania.
sudo apt update && sudo apt upgrade -yCo to robi:
apt update— Odświeża lokalny indeks pakietów ze wszystkich skonfigurowanych repozytoriów.apt upgrade -y— Uaktualnia wszystkie zainstalowane pakiety do ich najnowszych dostępnych wersji, automatycznie potwierdzając monity.
> Wskazówka Pro: Na świeżo aprowizowanym serwerze — szczególnie jeśli uruchamiasz Ubuntu na Dedicated Server — ten krok jest niezbędny. Przestarzałe pakiety to jeden z najczęstszych wektorów naruszeń bezpieczeństwa.
Po uaktualnieniu uruchom ponownie, jeśli jądro zostało zaktualizowane:
sudo reboot2. Instalacja niezbędnych komponentów
Moc Ubuntu tkwi w jego rozszerzalności. Poniższe podsekcje obejmują najkrytyczniejsze pakiety dla każdego poważnego wdrożenia Ubuntu.
2.1. Build Essentials
Pakiet build-essential instaluje wyselekcjonowany zestaw narzędzi wymaganych do kompilacji oprogramowania ze źródła, w tym GCC (GNU Compiler Collection), Make i standardowe biblioteki C/C++.
sudo apt install build-essential -yZweryfikuj instalację:
gcc --version
make --versionTen pakiet jest warunkiem wstępnym dla wielu innych narzędzi i środowisk uruchomieniowych języków (np. rozszerzenia Python, Ruby gems, moduły natywne Node.js).
2.2. Git — System kontroli wersji
Git to narzędzie branżowe do zarządzania kodem źródłowym, wspólnego rozwoju i potoków wdrażania.
sudo apt install git -yPo instalacji skonfiguruj swoją globalną tożsamość:
git config --global user.name "Your Name"
git config --global user.email "your.email@example.com"Zweryfikuj konfigurację:
git config --listOpcjonalnie, ale zalecane: Ustaw domyślną nazwę gałęzi na main aby dostosować się do nowoczesnych konwencji:
git config --global init.defaultBranch main2.3. Narzędzia sieciowe: curl i wget
Te narzędzia są niezbędne do pobierania plików, testowania API i debugowania łączności sieciowej bezpośrednio z wiersza poleceń.
sudo apt install curl wget -ySzybkie przykłady użycia:
# Download a file with wget
wget https://example.com/file.tar.gz
# Test an API endpoint with curl
curl -I https://example.comDodatkowe przydatne narzędzia diagnostyczne sieci:
sudo apt install net-tools dnsutils traceroute -ynet-tools— Zapewniaifconfig,netstati powiązane polecenia.dnsutils— Zawieradiginslookupdo rozwiązywania problemów z DNS.traceroute— Śledzi ścieżkę sieciową do zdalnego hosta.
2.4. Edytory tekstu
Każdy administrator systemu potrzebuje niezawodnego edytora tekstu z wiersza poleceń. Ubuntu obsługuje kilka opcji w zależności od preferencji i przepływu pracy.
Nano (przyjazny dla początkujących):
sudo apt install nano -yVim (potężny, wysoce konfigurowalny):
sudo apt install vim -yEmacs (bogaty w funkcje, rozszerzalny):
sudo apt install emacs -y> Rekomendacja: W środowiskach serwerowych Vim jest najbardziej uniwersalnie dostępną i zdolną opcją. Zainwestuj czas w naukę jego podstawowych poleceń — znacznie przyspieszy to Twój przepływ pracy.
2.5. Instalacja serwera WWW
Serwer WWW jest niezbędny do hostowania witryn internetowych, aplikacji internetowych i API. Dwa dominujące wybory na Ubuntu to Nginx i Apache.
#### Instalacja Nginx (Zalecane dla wysokiej wydajności)
sudo apt install nginx -yUruchom i włącz Nginx, aby uruchamiał się automatycznie przy starcie:
sudo systemctl start nginx
sudo systemctl enable nginxZweryfikuj, że działa:
sudo systemctl status nginxPrzetestuj konfigurację przed przeładowaniem:
sudo nginx -t#### Instalacja Apache
sudo apt install apache2 -y
sudo systemctl start apache2
sudo systemctl enable apache2Nginx vs. Apache — Który wybrać?
| Funkcja | Nginx | Apache |
|---|---|---|
| Wydajność pod obciążeniem | Doskonała (sterowana zdarzeniami) | Dobra (oparta na procesach/wątkach) |
| Serwowanie plików statycznych | Bardzo szybkie | Szybkie |
| Obsługa .htaccess | Nie | Tak |
| Ekosystem modułów | Rosnący | Rozległy |
| Użycie pamięci | Niższe | Wyższe |
W przypadku większości nowoczesnych wdrożeń — szczególnie w środowiskach chmurowych VPS Hosting — Nginx jest preferowanym wyborem ze względu na lepszą obsługę równoczesnych połączeń i niższe zużycie pamięci.
3. Konfiguracja repozytoriów oprogramowania
Instalacja domyślna Ubuntu włącza tylko repozytoria Main i Restricted. Aby uzyskać dostęp do znacznie szerszego zakresu oprogramowania, powinieneś włączyć repozytoria Universe i Multiverse.
Metoda 1: Korzystanie z GUI (Desktop Ubuntu)
- Otwórz Software & Updates z menu aplikacji.
- Na karcie Ubuntu Software zaznacz pola dla Universe i Multiverse.
- Kliknij Close i przeładuj listę pakietów po wyświetleniu monitu.
Metoda 2: Korzystanie z wiersza poleceń (Zalecane dla serwerów)
sudo add-apt-repository universe
sudo add-apt-repository multiverse
sudo apt updatePrzegląd repozytoriów:
| Repozytorium | Zawartość |
|---|---|
| Main | Oficjalnie wspierane oprogramowanie open-source |
| Restricted | Sterowniki własnościowe z oficjalnym wsparciem |
| Universe | Oprogramowanie open-source utrzymywane przez społeczność |
| Multiverse | Oprogramowanie z ograniczeniami licencyjnymi |
Dodawanie PPA innych firm
W przypadku oprogramowania niedostępnego w oficjalnych repozytoriach możesz dodać Personal Package Archives (PPA):
sudo add-apt-repository ppa:repository-name/ppa
sudo apt update
sudo apt install package-name> Uwaga bezpieczeństwa: Dodawaj tylko PPA ze zaufanych, dobrze znanych źródeł. Repozytoria innych firm mogą wprowadzić niezweryfikowane oprogramowanie do systemu.
4. Instalacja i konfiguracja zapory sieciowej za pomocą UFW
Ubuntu jest wyposażone w UFW (Uncomplicated Firewall), przyjazny dla użytkownika interfejs dla iptables. Prawidłowa konfiguracja zapory sieciowej to jeden z najważniejszych kroków bezpieczeństwa dla każdego serwera dostępnego w Internecie.
Włącz UFW
sudo ufw enableZezwól na niezbędne usługi
Zawsze zezwól na SSH przed włączeniem zapory, aby uniknąć zablokowania się:
sudo ufw allow sshLub określ port jawnie:
sudo ufw allow 22/tcpZezwól na ruch HTTP i HTTPS dla serwerów WWW:
sudo ufw allow 80/tcp
sudo ufw allow 443/tcpZezwól na określone profile aplikacji:
sudo ufw allow 'Nginx Full'
# or
sudo ufw allow 'Apache Full'Sprawdź status zapory
sudo ufw status verboseDodatkowe polecenia UFW
# Deny a specific port
sudo ufw deny 8080/tcp
# Delete a rule
sudo ufw delete allow 8080/tcp
# Reset all rules
sudo ufw reset
# Disable UFW
sudo ufw disable> Najlepsza praktyka: Postępuj zgodnie z zasadą najmniejszych uprawnień — otwieraj tylko porty, które są wyraźnie wymagane dla Twoich usług. Każdy niepotrzebny otwarty port to potencjalna powierzchnia ataku.
5. Instalacja i konfiguracja serwerów baz danych
Bazy danych są kręgosłupem praktycznie każdej aplikacji internetowej. Ubuntu obsługuje wszystkie główne systemy baz danych relacyjnych i NoSQL za pośrednictwem repozytoriów pakietów.
5.1. Instalacja MySQL
MySQL to najszerzej wdrażana na świecie relacyjna baza danych open-source.
sudo apt install mysql-server -yPo instalacji uruchom skrypt wzmacniania bezpieczeństwa:
sudo mysql_secure_installationTen interaktywny skrypt będzie:
- Ustawiać hasło root (lub weryfikować siłę hasła)
- Usuwać użytkowników anonimowych
- Zabraniać zdalnego logowania root
- Usuwać testową bazę danych
- Przeładowywać tabele uprawnień
Uruchom i włącz MySQL:
sudo systemctl start mysql
sudo systemctl enable mysqlZweryfikuj, że usługa działa:
sudo systemctl status mysqlPołącz się z powłoką MySQL:
sudo mysql -u root -p5.2. Instalacja MariaDB (alternatywa kompatybilna z MySQL)
MariaDB to rozwidlenie MySQL opracowane przez społeczność z ulepszoną wydajnością i dodatkowymi funkcjami:
sudo apt install mariadb-server mariadb-client -y
sudo mysql_secure_installation
sudo systemctl enable --now mariadb5.3. Instalacja PostgreSQL
PostgreSQL to potężny, klasy enterprise obiektowo-relacyjny system baz danych znany z zgodności ze standardami i rozszerzalności.
sudo apt install postgresql postgresql-contrib -yUruchom i włącz PostgreSQL:
sudo systemctl start postgresql
sudo systemctl enable postgresqlPrzełącz się na użytkownika administracyjnego PostgreSQL i otwórz powłokę:
sudo -i -u postgres
psqlUtwórz nową bazę danych i użytkownika:
CREATE DATABASE myapp_db;
CREATE USER myapp_user WITH ENCRYPTED PASSWORD 'strong_password';
GRANT ALL PRIVILEGES ON DATABASE myapp_db TO myapp_user;
q6. Instalacja dodatkowych narzędzi i programów
Poza podstawami, następujące narzędzia dramatycznie poprawiają Twoją produktywność, widoczność systemu i możliwości wdrażania.
Docker — Container Runtime
Docker umożliwia pakowanie aplikacji i ich zależności w przenośne kontenery, zapewniając spójność w środowiskach deweloperskim, przejściowym i produkcyjnym.
sudo apt install docker.io -y
sudo systemctl start docker
sudo systemctl enable dockerDodaj swojego użytkownika do grupy Docker, aby uruchamiać polecenia bez sudo:
sudo usermod -aG docker $USER
newgrp dockerZweryfikuj, że Docker działa:
docker run hello-worldW przypadku wdrożeń produkcyjnych rozważ również zainstalowanie Docker Compose:
sudo apt install docker-compose -yhtop — Interaktywna przeglądarka procesów
htop zapewnia widok procesów systemowych w czasie rzeczywistym, kolorowy, użycia CPU, zużycia pamięci i więcej — znacznie lepszy niż standardowe polecenie top.
sudo apt install htop -y
htopKluczowe skróty htop:
F6— Sortuj procesy według kolumnyF9— Zabij procesF10— Wyjdź/— Wyszukaj proces
Tmux — Terminal Multiplexer
Tmux pozwala tworzyć, zarządzać i utrwalać wiele sesji terminalowych w ramach jednego połączenia SSH — nieocenione dla długotrwałych zadań na serwerach zdalnych.
sudo apt install tmux -yNiezbędne polecenia Tmux:
# Start a new session
tmux new -s mysession
# Detach from session (keeps it running)
Ctrl+B, then D
# List all sessions
tmux ls
# Reattach to a session
tmux attach -t mysessionDodatkowe zalecane narzędzia
# fail2ban — Intrusion prevention system
sudo apt install fail2ban -y
# unzip — Extract ZIP archives
sudo apt install unzip -y
# tree — Display directory structure
sudo apt install tree -y
# ncdu — Disk usage analyzer
sudo apt install ncdu -y
# jq — JSON processor for the command line
sudo apt install jq -y7. Dostosowywanie ustawień systemu Ubuntu
7.1. Włączanie automatycznych aktualizacji bezpieczeństwa
Utrzymywanie systemu w łatach jest krytyczne — szczególnie na publicznie dostępnych serwerach. Pakiet unattended-upgrades Ubuntu automatyzuje ten proces.
sudo apt install unattended-upgrades -y
sudo dpkg-reconfigure --priority=low unattended-upgradesAby dostosować zachowanie, edytuj plik konfiguracyjny:
sudo nano /etc/apt/apt.conf.d/50unattended-upgradesKluczowe ustawienia do przejrzenia:
Unattended-Upgrade::Allowed-Origins— Zdefiniuj, które repozytoria wyzwalają automatyczne aktualizacje.Unattended-Upgrade::Automatic-Reboot— Ustaw natrueaby zezwolić na automatyczne ponowne uruchomienia po aktualizacjach jądra.Unattended-Upgrade::Mail— Skonfiguruj powiadomienia e-mail dotyczące aktywności aktualizacji.
7.2. Zarządzanie aplikacjami startowymi (Desktop Ubuntu)
Kontrolowanie, które aplikacje uruchamiają się przy logowaniu, pomaga zmniejszyć czas rozruchu i zaoszczędzić zasoby systemowe.
- Wyszukaj Startup Applications w menu aplikacji GNOME.
- Przejrzyj listę włączonych programów startowych.
- Wyłącz wszystkie aplikacje, których nie potrzebujesz przy logowaniu.
- Użyj przycisku Add, aby zarejestrować nowe skrypty startowe lub aplikacje.
W środowiskach serwerowych zarządzaj usługami za pomocą systemd:
# Disable a service from starting at boot
sudo systemctl disable service-name
# Enable a service at boot
sudo systemctl enable service-name
# List all enabled services
sudo systemctl list-unit-files --state=enabled7.3. Konfiguracja strefy czasowej systemu
Prawidłowa konfiguracja strefy czasowej jest niezbędna dla dokładności dzienników, zaplanowanych zadań i walidacji certyfikatów SSL.
# Check current timezone
timedatectl
# List available timezones
timedatectl list-timezones
# Set timezone
sudo timedatectl set-timezone Europe/London7.4. Konfiguracja SSH dla bezpiecznego dostępu zdalnego
Jeśli zarządzasz serwerem zdalnym, wzmacnianie konfiguracji SSH jest najważniejsze.
sudo nano /etc/ssh/sshd_configZalecane ustawienia bezpieczeństwa:
# Disable root login
PermitRootLogin no
# Disable password authentication (use SSH keys instead)
PasswordAuthentication no
# Change default SSH port (optional but reduces automated scanning)
Port 2222
# Limit login attempts
MaxAuthTries 3Po wprowadzeniu zmian uruchom ponownie SSH:
sudo systemctl restart sshd> Ważne: Zawsze testuj nową konfigurację SSH w osobnej sesji terminala przed zamknięciem bieżącego połączenia, aby uniknąć zablokowania się.
8. Konfiguracja automatycznych kopii zapasowych
Utrata danych jest katastrofalna. Niezależnie od tego, czy uruchamiasz projekt osobisty, czy aplikację krytyczną dla biznesu, automatyczne kopie zapasowe są niezbędne.
Korzystanie z wbudowanego narzędzia kopii zapasowej Ubuntu (Desktop)
- Wyszukaj Backups (Déjà Dup) w menu aplikacji.
- Skonfiguruj miejsce docelowe kopii zapasowej: dysk zewnętrzny, udział sieciowy lub magazyn w chmurze.
- Ustaw harmonogram kopii zapasowych na karcie Scheduling.
- Włącz Automatic Backup i skonfiguruj okresy przechowywania.
Kopie zapasowe z wiersza poleceń za pomocą rsync (Zalecane dla serwerów)
rsync to złoty standard dla wydajnych, przyrostowych kopii zapasowych plików na serwerach Linux.
# Basic local backup
rsync -avz /source/directory/ /backup/destination/
# Remote backup over SSH
rsync -avz -e ssh /local/directory/ user@remote-server:/backup/path/
# Exclude specific directories
rsync -avz --exclude='*.log' --exclude='tmp/' /source/ /destination/Automatyzacja kopii zapasowych za pomocą Cron
crontab -eDodaj codzienne zadanie kopii zapasowej o 2:00 AM:
0 2 * * * rsync -avz /var/www/ /backup/www/ >> /var/log/backup.log 2>&1Najlepsze praktyki kopii zapasowych
- Postępuj zgodnie z regułą 3-2-1: 3 kopie danych, na 2 różnych typach nośników, z 1 kopią poza siedzibą.
- Regularnie testuj kopie zapasowe, wykonując ćwiczenia przywracania.
- Szyfruj wrażliwe dane kopii zapasowych.
- Monitoruj dzienniki kopii zapasowych pod kątem błędów.
9. Monitorowanie systemu i optymalizacja wydajności
Wbudowane narzędzia monitorowania
GNOME System Monitor (Desktop):
Zapewnia graficzny przegląd użycia CPU, pamięci, I/O dysku i sieci. Uruchom go z menu aplikacji lub za pośrednictwem:
gnome-system-monitorhtop (Command Line):
htopvmstat — Virtual Memory Statistics:
vmstat 1 10iostat — CPU and I/O Statistics:
sudo apt install sysstat -y
iostat -x 1 5free — Memory Usage:
free -hdf — Disk Space Usage:
df -hnetstat / ss — Network Connections:
ss -tuln9.1. Konfiguracja monitorowania systemu za pomocą Prometheus i Node Exporter
W środowiskach produkcyjnych prawidłowy stos monitorowania zapewnia dane historyczne, alerty i pulpity nawigacyjne.
###PPT_
