Linux nuo nulio – internetinis priedas
Tai knygos „Linux nuo nulio“ internetinis priedas: čia gyvena viskas, kas spausdintoje knygoje pasentų per greitai – diegimo eilutės, versijos, modelių vardai, tiekėjų sąrašai. Adresas: **https://linuxnuonulio.lt/priedas**.Kiekvienas skyrelis prasideda patikrinimo data ir šaltiniais. Taisyklė ta pati kaip knygoje: jei šis puslapis ir oficiali dokumentacija nesutampa – teisi dokumentacija. Komandas kopijuok tik iš čia arba iš oficialaus šaltinio, ne iš atsitiktinio tinklaraščio.
Knygos pavyzdžiuose naudojamas darbalaukio vartotojas ona, serverio vartotojas admin, serverio adresas 203.0.113.10 ir domenas ona-svetaine.lt. Visur įrašyk savo reikšmes.
Turinys
- Versijų lentelė
- Docker diegimas Ubuntu 26.04 serveryje
- Ollama diegimas
- Mažas modelis pradžiai
- Open WebUI už nginx
- Kelias B: tiekėjo API nustatymai, modeliai ir kainos
- VPS tiekėjo pasirinkimas
- Domenas ir registratorius
- Let’s Encrypt ir certbot
- Kopija „kitur“: debesija ir šifravimas
- Disko vieta: žurnalai ir Docker
- Programų formatai: .deb, .AppImage, Flatpak
- Nuorodos (E priedo atnaujinimai)
- Spalvotos figūros
- Komandų kopijavimas
- Klaidų sąrašas (errata)
Versijų lentelė
Patikrinta 2026-09-24. Šaltiniai: https://linuxmint.com/download_all.php · https://documentation.ubuntu.com/release-notes/26.04/ · https://www.debian.org/releases/ · https://docs.docker.com/engine/release-notes/29/ · https://git-scm.com/ · https://packages.ubuntu.com/resolute/git · https://packages.ubuntu.com/noble-updates/git · https://nginx.org/en/download.html · https://launchpad.net/ubuntu/+source/nginx| Komponentas | Knygoje (testuota) | Dabar (2026-09-24) |
|---|---|---|
| Darbalaukio sistema | Linux Mint 22.3 „Zena“ | Linux Mint 22.3 „Zena“ – naujausia, rekomenduojama; Ubuntu 24.04 pagrindu, palaikoma iki 2029 m. balandžio. Linux Mint 23 dar neišleista. |
| Serverio sistema | Ubuntu Server 26.04 LTS | Ubuntu 26.04 LTS „Resolute Raccoon“, išleista 2026-04-23; jau yra taškinis leidimas 26.04.1. Standartinis palaikymas iki 2031 m. gegužės (Ubuntu leidimų ciklas). |
| Debian | Debian 13 „trixie“ | Debian 13 „trixie“ – stabilioji; naujausias atnaujinimas 13.7 (2026-09-12). |
| Docker Engine | 29.x | 29.8.1 (2026-09-15) |
| Git | 2.43 (Mint 22.3), 2.53 (Ubuntu 26.04); naujausia 2.55 | Mint 22.3 saugyklose – 2.43.0; Ubuntu 26.04 saugyklose – 2.53.0; naujausias Git leidimas – 2.55.0 (2026-06-29). |
| nginx | 1.30.x | nginx.org: stabili šaka 1.30.5, pagrindinė (mainline) 1.31.6. Ubuntu 26.04 saugyklose – 1.28.3 (paketas 1.28.3-2ubuntu1.11). |
Kaip pasitikrinti savo versijas:
cat /etc/os-release
docker --version
git --version
nginx -v
Pastaba apie nginx. Jei nginx įdiegei iš Ubuntu 26.04 saugyklų (
sudo apt install nginx, kaip knygoje),nginx -vparodys 1.28.3, o ne 1.30.x. Knygoje naudojamos direktyvos (server,listen,server_name,location,proxy_pass,client_max_body_size) yra pagrindinės ir veikia abiejose šakose vienodai.
Docker diegimas Ubuntu 26.04 serveryje
Patikrinta 2026-09-24. Šaltiniai: https://docs.docker.com/engine/install/ubuntu/ · https://docs.docker.com/engine/install/linux-postinstall/ · https://docs.docker.com/engine/network/packet-filtering-firewalls/Tai eilutės, kurių knygos 22 skyriuje sąmoningai nėra. Jos atkartoja oficialų puslapį „Install Docker Engine on Ubuntu“. Ubuntu 26.04 LTS (Resolute) yra oficialiai palaikomų versijų sąraše (kartu su 24.04 ir 22.04). Dirbi serveryje, prisijungusi per SSH vartotoju admin.
0. (Nebūtina šviežiame serveryje) Pašalink konfliktuojančius paketus. Jei serveryje kas nors jau buvo diegta iš Ubuntu saugyklų (docker.io, podman-docker ir pan.), oficiali instrukcija liepia juos pirmiausia pašalinti:
sudo apt remove $(dpkg --get-selections docker.io docker-compose docker-compose-v2 docker-doc docker-buildx podman-docker containerd runc | cut -f1)
Jei nė vienas iš šių paketų neįdiegtas, apt tiesiog praneš, kad nėra ką šalinti.
1. Saugyklos raktas.
sudo apt update
sudo apt install ca-certificates curl
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc
Čia curl tik atsisiunčia rakto failą į /etc/apt/keyrings/docker.asc – nieko nevykdo.
2. Saugyklos aprašas (deb822 formatas, failas docker.sources).
sudo tee /etc/apt/sources.list.d/docker.sources <<EOF
Types: deb
URIs: https://download.docker.com/linux/ubuntu
Suites: $(. /etc/os-release && echo "${UBUNTU_CODENAME:-$VERSION_CODENAME}")
Components: stable
Architectures: $(dpkg --print-architecture)
Signed-By: /etc/apt/keyrings/docker.asc
EOF
Kopijuok visą bloką iki paskutinės eilutės EOF imtinai. Patikra: cat /etc/apt/sources.list.d/docker.sources – eilutėje Suites: turi būti resolute, eilutėje Architectures: – amd64 (arba arm64).
3. Paketų diegimas.
sudo apt update
sudo apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
4. Patikra.
docker --version
systemctl status docker
sudo docker run hello-world
docker --version – numeris prasideda 29; systemctl status docker – active (running) (išeini su q); hello-world konteineris išveda pasveikinimą, prasidedantį Hello from Docker!.
5. Darbas be sudo. Kaip knygoje:
sudo usermod -aG docker admin
Tada atsijunk (exit) ir prisijunk per SSH iš naujo. Patikra: docker ps be sudo atsako tuščia lentele.
Svarbu. Oficiali Docker dokumentacija sako tiesiai:
dockergrupė suteikiarootlygio teises. Į ją įtrauk tik tą vartotoją, kuriam duotum irsudo.
Svarbu. Docker publikuojami prievadai apeina ufw taisykles – tai oficialiai dokumentuota. Todėl knygoje prievadai rašomi su
127.0.0.1:priekyje, pavyzdžiui,"127.0.0.1:3000:8080".
Ollama diegimas
Patikrinta 2026-09-24. Šaltiniai: https://docs.ollama.com/linux · https://docs.ollama.com/faqA būdas: oficialus diegimo scenarijus (kaip knygoje)
curl -fsSL https://ollama.com/install.sh | sh
Svarbu. Ši eilutė parsisiunčia ir iš karto įvykdo svetimą scenarijų. Taisyklė iš knygos: tik iš šaltinio, kuriuo pasitiki (čia – oficiali Ollama svetainė), ir geriausia perskaičius. Nori pirmiausia pažiūrėti, ką jis darytų? Atsisiųsk be vykdymo, perskaityk ir tik tada paleisk:
curl -fsSL https://ollama.com/install.sh -o /tmp/ollama-install.sh less /tmp/ollama-install.sh sh /tmp/ollama-install.sh
Patikra: systemctl status ollama – active (running). Atnaujinti Ollama galima tuo pačiu scenarijumi (paleidi jį dar kartą).
B būdas: rankinis diegimas su systemd (be scenarijaus)
Jei nenori vykdyti scenarijaus, oficiali dokumentacija aprašo rankinį kelią. Pavyzdys – įprastam amd64 serveriui (ARM serveryje adrese amd64 pakeisk į arm64).
1. Atsisiųsk ir išskleisk programą į /usr:
curl -fsSL https://ollama.com/download/ollama-linux-amd64.tar.zst | sudo tar x -C /usr
Čia curl perduoda archyvą ne apvalkalui, o tar – niekas nevykdoma, tik išskleidžiama. Archyvas suspaustas zstd formatu; jei tar skundžiasi, kad negali jo išskleisti, pirmiausia įdiek sudo apt install zstd ir pakartok. Patikra: ollama -v.
2. Sukurk sisteminį vartotoją ollama:
sudo useradd -r -s /bin/false -U -m -d /usr/share/ollama ollama
sudo usermod -a -G ollama $(whoami)
3. Sukurk paslaugos failą: sudo nano /etc/systemd/system/ollama.service, turinys:
[Unit]
Description=Ollama Service
After=network-online.target
[Service]
ExecStart=/usr/bin/ollama serve
User=ollama
Group=ollama
Restart=always
RestartSec=3
[Install]
WantedBy=multi-user.target
(Oficialiame pavyzdyje dar yra eilutė Environment="PATH=$PATH" – diegimo scenarijus į ją įrašo tavo tuometinį PATH. Rankiniame faile ji nebūtina, nes ExecStart nurodo pilną kelią /usr/bin/ollama.)
4. Įjunk ir paleisk:
sudo systemctl daemon-reload
sudo systemctl enable ollama
sudo systemctl start ollama
Patikra: systemctl status ollama – active (running).
OLLAMA_HOST: kur Ollama klauso
Numatyta Ollama klauso tik 127.0.0.1, prievadu 11434 – iš tinklo ji nepasiekiama. Knygos projektui to ir reikia: nieko keisti nereikia.
Jei kada nors reikės pakeisti adresą ar kitą nustatymą, jis rašomas ne į patį paslaugos failą, o į papildinį (angl. override):
sudo systemctl edit ollama.service
Atsidariusiame redaktoriuje, skiltyje [Service], įrašyk, pavyzdžiui:
[Service]
Environment="OLLAMA_HOST=127.0.0.1:11434"
Tada:
sudo systemctl daemon-reload
sudo systemctl restart ollama
Pavojinga komanda.
OLLAMA_HOST=0.0.0.0:11434atveria Ollama visam tinklui – be jokio slaptažodžio. Nedaryk to VPS serveryje. Jei Ollama reikia pasiekti iš išorės, statyk ją už nginx su HTTPS ir prieigos kontrole.
Modeliai Linux sistemoje saugomi /usr/share/ollama/.ollama/models. Kitą katalogą nurodo kintamasis OLLAMA_MODELS (tuo pačiu systemctl edit būdu); vartotojas ollama turi turėti jame skaitymo ir rašymo teises.
Mažas modelis pradžiai
Patikrinta 2026-09-24. Šaltiniai: https://ollama.com/library/llama3.2/tags · https://ollama.com/library/qwen3/tags · https://ollama.com/library/gemma3/tagsKnygoje vietoj modelio vardo rašoma <modelis>. Pradžiai siūlome:
llama3.2:1b
ollama run llama3.2:1b
Konteineryje (24 skyriaus compose failas):
docker compose exec ollama ollama pull llama3.2:1b
Kiti maži modeliai iš Ollama bibliotekos, jei norisi palyginti:
| Modelis | Parsisiuntimo dydis (Ollama bibliotekoje, 2026-09-24) |
|---|---|
gemma3:270m |
292 MB |
qwen3:0.6b |
523 MB |
gemma3:1b |
815 MB |
llama3.2:1b |
1,3 GB |
qwen3:1.7b |
1,4 GB |
llama3.2:3b |
2,0 GB |
qwen3:4b |
2,5 GB |
gemma3:4b |
3,3 GB |
Kiek RAM reikia? Ollama biblioteka tikslių RAM reikalavimų nenurodo, todėl čia jų ir nerašome. Atsargi taisyklė: modeliui veikti reikia bent tiek laisvos RAM, kiek sveria jo failas, ir dar šiek tiek darbui. Tikrink savo serveryje:
free -h
ollama ps
free -h stulpelyje available parodo, kiek atminties laisva; ollama ps (kol modelis įkeltas) stulpelyje SIZE parodo, kiek jis iš tikrųjų užima. Jei available – mažiau nei modelio dydis, rinkis mažesnį modelį arba kelią B.
Atnaujinta. Dydžiai ir žymos (angl. tags) Ollama bibliotekoje keičiasi. Prieš parsisiųsdama pažiūrėk modelio puslapį
https://ollama.com/library/<vardas>/tags. Mažiausi modeliai atsako greitai, bet paprasčiau; lietuviškai jie dažnai rašo su klaidomis – tai normalu tokio dydžio modeliams.
Open WebUI už nginx
Patikrinta 2026-09-24. Šaltiniai: https://docs.openwebui.com/getting-started/quick-start/ · https://docs.openwebui.com/reference/https/nginx/ · https://docs.openwebui.com/reference/env-configuration/Knygoje naudojama sąsaja – vis dar Open WebUI; tinkamesnės pakaitalo šiuo metu nesiūlome. Oficialus atvaizdas tas pats: ghcr.io/open-webui/open-webui:main, duomenys – /app/backend/data, sąsaja konteineryje klauso 8080.
Du papildymai prie knygos nginx bloko, kuriuos rekomenduoja oficiali Open WebUI dokumentacija:
proxy_buffering off;irproxy_cache off;– be jų nginx gali „perkarpyti“ gyvai siunčiamą atsakymą, ir pokalbyje matysi sugadintą formatavimą (matomi##,**, trūksta žodžių).- Kintamasis
CORS_ALLOW_ORIGINsąsajos konteineryje – už tarpinio serverio be jo gali neveikti WebSocket ryšys.
Visas blokas failui /etc/nginx/sites-available/ai:
server {
listen 80;
listen [::]:80;
server_name ai.ona-svetaine.lt;
client_max_body_size 50M;
location / {
proxy_pass http://127.0.0.1:3000;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_buffering off;
proxy_cache off;
}
}
Compose faile, sąsajos environment: dalyje, pridėk eilutę su savo adresu:
environment:
- OLLAMA_BASE_URL=http://ollama:11434
- CORS_ALLOW_ORIGIN=https://ai.ona-svetaine.lt
Toliau – kaip knygoje: docker compose up -d, sudo nginx -t, sudo systemctl reload nginx, sudo certbot --nginx -d ai.ona-svetaine.lt.
Jei modelio atsakymai labai ilgi ir nutrūksta, oficiali dokumentacija siūlo pailginti laukimo laiką tame pačiame location bloke: proxy_read_timeout, proxy_send_timeout (jų pavyzdyje – 1800 sekundžių ilgoms užduotims). Mažam modeliui to paprastai nereikia.
Svarbu. Prievadų eilutė ir toliau
"127.0.0.1:3000:8080". Be127.0.0.1sąsaja atsivertų visam internetui, apeidama ufw.
Kelias B: tiekėjo API nustatymai, modeliai ir kainos
Patikrinta 2026-09-24. Šaltiniai: https://docs.openwebui.com/reference/env-configuration/ · https://developers.openai.com/api/docs/models · https://developers.openai.com/api/docs/pricing · https://platform.claude.com/docs/en/about-claude/models/overview · https://platform.claude.com/docs/en/about-claude/pricing · https://platform.claude.com/docs/en/api/openai-sdkModelio vardas ir kainos (23 skyrius)
- Knygos pavyzdyje naudojamas
gpt-6-luna2026-09-24 tebėra OpenAI modelių sąraše kaip efektyviausias (pigiausias) pagrindinis modelis. Komanda 23 skyriuje tinka be pakeitimų. - Kainos už žetonus keičiasi, todėl jų čia neperrašome – žiūrėk oficialius kainų puslapius:
- OpenAI: https://developers.openai.com/api/docs/pricing
- Anthropic (Claude): https://platform.claude.com/docs/en/about-claude/pricing
- Dabartiniai modelių vardai:
Open WebUI su tiekėjo API (24 skyrius, kelias B)
Open WebUI jungiasi prie bet kurio su OpenAI suderinamo API per du kintamuosius: OPENAI_API_BASE_URL (API adresas) ir OPENAI_API_KEY (raktas).
1. Failas ~/ai-paslauga/.env (teisės chmod 600, kaip knygoje) su viena eilute:
OPENAI_API_KEY=sk-...
Vietoj sk-... – tavo tikras raktas iš tiekėjo raktų puslapio. Šio failo niekada nedėk į Git ir niekam nesiųsk.
2. ~/ai-paslauga/compose.yaml keliui B – be ollama konteinerio ir be depends_on:
services:
sasaja:
image: ghcr.io/open-webui/open-webui:main
restart: unless-stopped
environment:
- ENABLE_OLLAMA_API=false
- OPENAI_API_BASE_URL=https://api.openai.com/v1
- OPENAI_API_KEY=${OPENAI_API_KEY}
- CORS_ALLOW_ORIGIN=https://ai.ona-svetaine.lt
volumes:
- sasaja-duomenys:/app/backend/data
ports:
- "127.0.0.1:3000:8080"
volumes:
sasaja-duomenys:
${OPENAI_API_KEY} – tai tik kintamojo vardas: docker compose reikšmę pats paima iš .env failo tame pačiame kataloge. Pats raktas compose faile neatsiranda.
3. docker compose up -d, tada patikra: docker compose ps rodo Up.
Svarbu. Open WebUI
OPENAI_API_BASE_URLirOPENAI_API_KEYperskaito tik pirmojo paleidimo metu ir išsaugo savo duomenų tūryje. Jei vėliau pakeisi raktą.envfaile, sąsaja jo nepamatys – naują raktą ar adresą įrašyk sąsajos administratoriaus nustatymuose: Settings → Admin → Connections.
Kitas tiekėjas. Bet kuris tiekėjas, siūlantis su OpenAI suderinamą API, jungiamas taip pat – pakeiti tik OPENAI_API_BASE_URL į jo dokumentacijoje nurodytą adresą ir raktą .env faile.
Anthropic (Claude). Anthropic turi su OpenAI SDK suderinamą sluoksnį, adresas https://api.anthropic.com/v1/, raktas – Claude API raktas. Tačiau pati Anthropic dokumentacija rašo, kad šis sluoksnis skirtas išbandyti ir palyginti modelius, o ne ilgalaikiam ar gamybiniam naudojimui, ir dalis parametrų jame ignoruojama. Ar su juo veikia visos Open WebUI funkcijos, nepatikrinome – nežinoma. Pilnam funkcionalumui Anthropic rekomenduoja savo tiesioginį Claude API.
VPS tiekėjo pasirinkimas
Patikrinta 2026-09-24. Šaltiniai: https://docs.hetzner.cloud/changelog · https://docs.hetzner.com/cloud/servers/backups-snapshots/overview/ · https://docs.hetzner.com/cloud/servers/getting-started/vnc-console/ · https://docs.digitalocean.com/release-notes/ · https://docs.digitalocean.com/platform/regional-availability/ · https://docs.digitalocean.com/products/backups/ · https://docs.digitalocean.com/products/droplets/how-to/connect-with-console/Kriterijai (tie patys penki kaip 16 skyriuje): duomenų centras Europoje; kaina; atsarginės kopijos; web konsolė (privaloma!); Ubuntu 26.04 LTS atvaizdas.
Kainos. Kainų čia sąmoningai nerašome: jas nustato tiekėjai, jos keičiasi ir priklauso nuo plano, regiono ir PVM. Palygink tiekėjų kainų puslapiuose tą pačią dieną, tą patį planą (1–2 GB RAM, 1 branduolys) – ir būtinai pažiūrėk, kiek kainuoja atsarginės kopijos.
Palyginimas – tik tai, ką patikrinome oficialioje tiekėjo dokumentacijoje. „Nepatikrinta“ reiškia, kad patikrink pati tiekėjo puslapyje.
| Tiekėjas | Ubuntu 26.04 LTS | Duomenų centrai Europoje | Atsarginės kopijos | Web konsolė |
|---|---|---|---|---|
| Hetzner Cloud | Taip (nuo 2026-05-18, atvaizdas ubuntu-26.04) |
Falkenšteinas ir Niurnbergas (Vokietija), Helsinkis (Suomija) | Automatinės kasdienės, 7 vietos; kaina – tiekėjo puslapyje | Taip (konsolė Cloud Console skydelyje) |
| DigitalOcean | Taip (nuo 2026-07-01, ubuntu-26-04-x64) |
Amsterdamas, Frankfurtas, Londonas | Papildoma mokama paslauga; dažnis nuo kas 4 val. iki kas savaitę | Taip (Droplet Console ir Recovery Console) |
| OVHcloud | Nepatikrinta | Nepatikrinta | Nepatikrinta | Nepatikrinta |
| Scaleway | Nepatikrinta | Nepatikrinta | Nepatikrinta | Nepatikrinta |
Sąrašas trumpas, neišsamus ir nėra reklama: už nuorodas niekas nemoka. Pirmieji du tiekėjai eina pirmi tik todėl, kad jų duomenis pavyko patikrinti oficialioje dokumentacijoje. Vietinių Lietuvos VPS tiekėjų dar nepalyginome – kol to nėra, taikyk tuos pačius penkis kriterijus ir paklausk tiekėjo tiesiai: „Ar turite Ubuntu 26.04 LTS atvaizdą ir web konsolę?“
Domenas ir registratorius
Patikrinta 2026-09-24. Šaltiniai: https://www.domreg.lt/ · https://www.icann.org/en/accredited-registrars · https://developers.cloudflare.com/registrar/.lt vardai. .lt sritį administruoja DOMREG – registras. Jis domenų tiesiogiai neparduoda: vardą registruoji pas akredituotą paslaugų teikėją. Oficialūs sąrašai:
- Lietuvos akredituoti teikėjai: https://www.domreg.lt/paslaugu-teikejai/lietuvos-akredituoti-paslaugu-teikejai/
- Užsienio akredituoti teikėjai: https://www.domreg.lt/paslaugu-teikejai/uzsienio-akredituoti-paslaugu-teikejai/
Tarptautinės sritys (.com, .net, .eu ir kt.). Jas parduoda registratoriai; .com tipo sritims – ICANN akredituoti registratoriai, jų oficialus sąrašas: https://www.icann.org/en/accredited-registrars
Kodėl kainos skiriasi. Kiekvienos srities didmeninę kainą ir taisykles nustato tos srities registras: .lt – DOMREG, .com ir kitoms bendrosioms sritims – jų registrai pagal sutartis su ICANN, kuri prie bendrųjų sričių registracijų prideda ir savo mokestį. Registratorius prie didmeninės kainos prideda savo antkainį. Todėl ta pati sritis pas skirtingus registratorius kainuoja skirtingai, o skirtingos sritys – skirtingai net pas tą patį registratorių. Konkrečių kainų čia nerašome – jos keičiasi.
Kaip rinktis registratorių:
- Lygink pratęsimo kainą, ne tik pirmųjų metų: pirmieji metai dažnai pigesni.
- Skydelyje turi būti galima pačiai tvarkyti DNS įrašus (A, AAAA, CNAME) – to reikės 17 skyriuje.
- Patikrink, ar lengva perkelti domeną pas kitą registratorių.
- Dviejų veiksnių prisijungimas prie paskyros – domeno praradimas skaudesnis nei serverio.
Vienas pavyzdys, kaip registratoriai skiriasi modeliu: Cloudflare Registrar savo dokumentacijoje rašo, kad ima tik registro ir ICANN mokesčius, be antkainio. Ar jis registruoja .lt vardus, nepatikrinome – nežinoma.
Let's Encrypt ir certbot
Patikrinta 2026-09-24. Šaltiniai: https://letsencrypt.org/2025/12/02/from-90-to-45 · https://letsencrypt.org/2025/06/26/expiration-notification-service-has-ended · https://certbot.eff.org/instructions?ws=nginx&os=snap · https://packages.ubuntu.com/resolute/certbotSertifikatų galiojimas keičiasi:
| Data | Numatytasis (classic) profilis |
|---|---|
| Dabar | 90 dienų |
| Nuo 2027-02-10 | 64 dienos |
| Nuo 2028-02-16 | 45 dienos |
Nuo 2026-05-13 galima savo noru rinktis profilį tlsserver su 45 dienų sertifikatais; yra ir shortlived profilis su 6 dienų sertifikatais. Knygos skaitytojai nieko rinktis neturi: numatytasis profilis tinka.
Ką tai reiškia tau: nieko rankinio. certbot atnaujina sertifikatą pats, kai lieka maždaug trečdalis galiojimo. Svarbu tik tai, kad automatinis atnaujinimas veiktų – tikrink knygos komanda:
sudo certbot renew --dry-run
systemctl list-timers | grep certbot
El. laiškų nebus. Let’s Encrypt įspėjimų apie besibaigiančius sertifikatus nebesiunčia nuo 2025-06-04. Todėl renew --dry-run kartą per mėnesį – geras įprotis.
apt ar snap? Knygoje certbot diegiamas iš Ubuntu saugyklų: sudo apt install certbot python3-certbot-nginx (Ubuntu 26.04 saugyklose – certbot 4.0.0). Tai veikia. Certbot kūrėjų (EFF) puslapis rekomenduoja diegti per snap; jei renkiesi tą kelią, pirmiausia pašalink apt versiją ir sek oficialia instrukcija. Nemaišyk abiejų būdų viename serveryje.
Kopija „kitur“: debesija ir šifravimas
Patikrinta 2026-09-24. Šaltiniai: https://restic.readthedocs.io/en/stable/020_installation.html · https://restic.readthedocs.io/en/stable/030_preparing_a_new_repo.html · https://restic.readthedocs.io/en/stable/050_restore.html · https://www.borgbackup.org/Kur gali keliauti „kitur“ kopija
- Tavo namų kompiuteris – knygos 18 skyriaus kelias (rsync per SSH). Nemokamas, bet priklauso nuo tavo disko.
- Antras serveris arba saugykla, pasiekiama per SFTP – tas pats SSH principas, tik kopija gyvena kito tiekėjo duomenų centre.
- Objektų saugykla, suderinama su S3 – daugelis debesų tiekėjų tokią siūlo; mokama už saugomus gigabaitus ir kartais už parsisiuntimą.
Kainų nelyginame skaičiais – jos keičiasi. Lygink: kaina už GB per mėnesį, mokestis už duomenų parsisiuntimą (atkūrimui!), duomenų centro šalis, minimalus saugojimo laikas.
Įrankis: restic (šifruoja visada)
Knygoje sąmoningai nebuvo įrankio. Siūlome restic: jis visas kopijas visada šifruoja, kopijuoja tik pasikeitimus ir moka dirbti su SFTP, S3 suderinamomis saugyklomis ir kt. Alternatyva – BorgBackup (https://www.borgbackup.org/).
Pavyzdys serveryje: kopijų katalogas ~/kopijos keliauja į kitą serverį per SFTP (kopijos@198.51.100.20 – pakeisk savo adresu ir vartotoju; SSH raktas turi būti sutvarkytas kaip 15 skyriuje).
sudo apt install restic
restic -r sftp:kopijos@198.51.100.20:/srv/restic-repo init
restic -r sftp:kopijos@198.51.100.20:/srv/restic-repo backup ~/kopijos
restic -r sftp:kopijos@198.51.100.20:/srv/restic-repo snapshots
restic -r sftp:kopijos@198.51.100.20:/srv/restic-repo restore latest --target /tmp/atkurimas
init– vieną kartą sukuria saugyklą ir paprašo slaptažodžio.backup– padaro kopiją;snapshots– parodo kopijų sąrašą.restore latest --target /tmp/atkurimas– atkūrimo testas į laikiną katalogą, kaip knygoje; tada palygink sudiff -r.
Svarbu. restic dokumentacija sako tiesiai: praradus slaptažodį, duomenys prarasti negrįžtamai. Slaptažodį užsirašyk ant popieriaus ir laikyk kitur nei serveris – kaip knygoje: užšifruota kopija be rakto yra ne kopija.
Disko vieta: žurnalai ir Docker
Patikrinta 2026-09-24. Šaltiniai: https://manpages.ubuntu.com/manpages/resolute/man1/journalctl.1.html · https://docs.docker.com/reference/cli/docker/system/df/ · https://docs.docker.com/reference/cli/docker/system/prune/ · https://docs.docker.com/engine/logging/configure/Knygos C ir D prieduose minimos dvi komandos, kurių skyriuose nebuvo. Štai plačiau.
Sistemos žurnalas
journalctl --disk-usage
Parodo, kiek vietos užima visi žurnalo failai (tik skaito – saugu). Jei per daug, seniausius archyvuotus žurnalo failus galima išvalyti:
sudo journalctl --vacuum-size=500M
arba pagal amžių:
sudo journalctl --vacuum-time=4weeks
Valoma tik archyvuota dalis, todėl --disk-usage po valymo gali rodyti šiek tiek daugiau, nei nurodei. Ištrinti žurnalo įrašai negrąžinami – jei tiri gedimą, pirmiausia perskaityk, ką reikia.
Docker
docker system df
SIZE – kiek vietos užima atvaizdai, konteineriai, tūriai ir kūrimo talpykla; RECLAIMABLE – kiek galima atsiimti.
Išvalymas:
docker system prune
Pašalina visus sustabdytus konteinerius, nenaudojamus tinklus, „kabančius“ (bevardžius) atvaizdus ir nenaudojamą kūrimo talpyklą. Prieš vykdydamas paklausia patvirtinimo ([y/N]).
Pavojinga komanda.
docker system prune -adar ištrina visus nenaudojamus atvaizdus (juos teks parsisiųsti iš naujo), o--volumes– nenaudojamus anoniminius tūrius, t. y. duomenis. Knygos compose failų tūriai turi vardus, bet vis tiek: prieš--volumespatikrinkdocker volume lsir turėk kopiją.
Docker konteinerių žurnalai pagal numatymą irgi auga. Oficiali dokumentacija siūlo įjungti jų rotaciją arba naudoti local žurnalų tvarkyklę – žr. https://docs.docker.com/engine/logging/configure/
Programų formatai: .deb, .AppImage, Flatpak
Patikrinta 2026-09-24. Šaltiniai: https://docs.appimage.org/introduction/quickstart.html · https://flathub.org/ · https://linuxmint-user-guide.readthedocs.io/3 skyriaus pažadas – plačiau apie formatus. Saugiausias kelias ir toliau – Programų tvarkytuvė.
-
Flatpak. Mint Programų tvarkytuvė kai kurias programas siūlo ir kaip Flatpak paketus iš Flathub (https://flathub.org/). Tai tokie pat įprasti Linux paketai, tik veikiantys atskirai nuo sistemos bibliotekų. Diegiant per Programų tvarkytuvę nieko papildomai daryti nereikia.
-
.deb. Debian/Ubuntu/Mint paketo formatas. Atsisiųstą failą įdiegti galima dukart spustelėjus arba terminale, būnant tame kataloge:sudo apt install ./programa.deb./būtinas – taipaptsupranta, kad tai failas, o ne paketo vardas. Svarbu:.debfailas diegiamas surootteisėmis, todėl imk jį tik iš oficialios programos svetainės. Toks paketas dažnai prideda ir savo saugyklą (kaip Docker 22 skyriuje). -
.AppImage. Viena vykdoma byla, nieko nediegia į sistemą. Paleidžiama taip:chmod +x Programa.AppImage ./Programa.AppImageTaip pat – tik iš oficialios programos svetainės. Jei AppImage nepasileidžia ir skundžiasi dėl FUSE, ieškok sprendimo programos kūrėjų dokumentacijoje.
-
.exe,.msi– Windows programos; Mint jų nepaleidžia.
Nuorodos (E priedo atnaujinimai)
Patikrinta 2026-09-24 (visos nuorodos atsidarė).Visos E priede atspausdintos nuorodos 2026-09-24 veikė:
- Linux Mint – https://linuxmint.com/download.php
- Ubuntu Server 26.04 leidimo pastabos – https://documentation.ubuntu.com/release-notes/26.04/
- Debian – https://www.debian.org/releases/
- Docker Engine 29 leidimo pastabos – https://docs.docker.com/engine/release-notes/29/
- nginx – https://nginx.org/news.html
- Let’s Encrypt – https://letsencrypt.org/
- Ollama – https://ollama.com/ (dokumentacija: https://docs.ollama.com/)
- Git – https://git-scm.com/
- OpenSSH – https://www.openssh.com/
- William Shotts, „The Linux Command Line“ – https://linuxcommand.org/
- Linux Mint forumai – https://forums.linuxmint.com/
- Ask Ubuntu – https://askubuntu.com/
- Unix & Linux Stack Exchange – https://unix.stackexchange.com/
Pasikeitus kuriam nors adresui, jis bus atnaujintas čia.
Spalvotos figūros
Patikrinta 2026-09-24.Čia skelbiamos visos knygos schemos (FIG-xx-yy) spalvotame variante. Figūrų numeriai sutampa su numeriais knygoje: rask reikiamą numerį ir atsidaryk spalvotą vaizdą. Spausdintos figūros sukurtos taip, kad būtų aiškios ir pilkais tonais, todėl spalvota versija – patogumas, ne būtinybė.

0.1 pav. Knygos kelias: nuo pažinties su Linux iki galutinio projekto

1.1 pav. Trys sluoksniai: programos, branduolys ir aparatūra

1.2 pav. Operacinė sistema – tarsi daugiabučio administratorius, dalijantis išteklius programoms

1.3 pav. Linux istorijos laiko juosta: nuo Unix (1969) iki šių dienų

2.1 pav. Iš ko sudaryta distribucija

2.2 pav. VirtualBox pagrindinis langas

2.3 pav. Momentinė kopija – taškas, į kurį visada gali grįžti

3.1 pav. Linux Mint (Cinnamon) darbalaukis

3.2 pav. Programų tvarkytuvė

3.3 pav. Įprasti Windows įrankiai ir jų atitikmenys Linux Mint

4.1 pav. Vitrina ir sandėlininkas: grafinė sąsaja ir terminalas

4.2 pav. Iš ko sudaryta užklausos eilutė

4.3 pav. Komandinės eilutės dalys: komanda, parinktys, argumentai

4.4 pav. Terminalas po klaidos: sistema pasako, kas negerai

5.1 pav. Failų sistemos medis ir pagrindiniai katalogai

5.2 pav. Absoliutusis ir santykinis kelias į tą patį katalogą

6.1 pav. Komanda mv: pervadinimas ir perkėlimas

6.2 pav. Šiukšlinė ir rm: kas grįžta, o kas ne

7.1 pav. Teksto redaktorius nano

7.2 pav. Kanalas: cat perduoda tekstą komandai wc

8.1 pav. Raktų ryšuliai: vartotojai, grupės ir root

8.2 pav. sudo – laikinas raktas su laikmačiu

9.1 pav. Eilutės iš ls -l išvesties išardymas

9.2 pav. Trys teisės ir trys rateliai

10.1 pav. Iš saugyklos per apt į sistemą

10.2 pav. apt update ir apt upgrade – ne tas pats

11.1 pav. Viena programa – keli procesai

11.2 pav. Procesai kaip virtuvės darbuotojai

11.3 pav. Kaip skaityti free -h išvestį

12.1 pav. systemd – sistemos namų tvarkytojas

12.2 pav. start, stop, enable ir disable: kada veiks paslauga

12.3 pav. Žurnalo įrašo anatomija

13.1 pav. Prijungimo taškas – vartai į laikmeną

13.2 pav. tar parinkčių atmintinė

14.1 pav. DNS kelias nuo vardo iki puslapio

14.2 pav. Prievadai – tarsi butai daugiabutyje

14.3 pav. DNS – interneto adresų knyga

15.1 pav. SSH – užšifruotas tunelis tarp kompiuterių

15.2 pav. SSH raktų pora: raktas ir spyna

15.3 pav. Piršto antspaudo klausimas pirmą kartą jungiantis

16.1 pav. Serverio paruošimo kontrolinis sąrašas

16.2 pav. Ugniasienė: kas atidaryta, kas uždaryta

16.3 pav. Kodėl SSH leidimas visada eina pirmas

17.1 pav. Lankytojo kelias iki svetainės failo

17.2 pav. Nukreipimas iš HTTP į HTTPS

17.3 pav. Serverio blokai: vienas nginx, kelios svetainės

18.1 pav. Atsarginių kopijų taisyklė 3-2-1

18.2 pav. Kopija vertinga tik tada, kai atkūrimas išbandytas

18.3 pav. Atkūrimo testo eiga

19.1 pav. Scenarijus – tarsi receptas

19.2 pav. Kintamasis – dėžutė su etikete

19.3 pav. Sąlyga if: dvi galimos šakos

20.1 pav. crontab laiko formatas: penki laukai

20.2 pav. Kur slaptų raktų nedėti niekada

20.3 pav. cron eiga: laikas, komanda, žurnalas

21.1 pav. Trys Git zonos

21.2 pav. Git istorija kaip laiko mašina

22.1 pav. Konteineris – supakuota darbo vieta

22.2 pav. Virtuali mašina ir konteineris

22.3 pav. Atvaizdas, konteineriai ir tūris

23.1 pav. Kelias nuo programos per API iki modelio ir atgal

23.2 pav. Žetonai – teksto gabaliukai, už kuriuos mokama

23.3 pav. Privatumo palyginimas: vieša svetainė, mokama API, vietinis modelis

24.1 pav. RAM ir VRAM – du darbastaliai modeliui

24.2 pav. Kvantavimas: tas pats vaizdas skirtinga raiška

24.3 pav. Agentas – padėjėjas su įrankių sąrašu

24.4 pav. AI paslaugos architektūra: naršyklė, sąsaja, modelis

25.1 pav. Visa sistema, kurią pastatei

25.2 pav. Galutinis projektas: 15 žingsnių, 5 etapai

26.1 pav. Gedimų tikrinimo medis

26.2 pav. Simptomas nėra priežastis

28.1 pav. Internetinio priedo QR kodas
Komandų kopijavimas
Patikrinta 2026-09-24.Visos numeruotos knygos komandos (pvz., „Komanda 22.1“) vienoje vietoje, suskirstytos pagal skyrius, kad ilgų eilučių nereikėtų perrašinėti iš popieriaus. Šis puslapis generuojamas iš failo komandos-lt.json.
Prieš įklijuodama komandą į terminalą, perskaityk ją ir pakeisk pavyzdines reikšmes (ona, admin, 203.0.113.10, ona-svetaine.lt, <modelis>) savomis.
2. Distribucijos ir saugi bandomoji aplinka
Komanda 2.1 – Windows PowerShell komanda – daroma tavo pagrindiniame Windows kompiuteryje, ne Linux
certutil -hashfile "C:\Users\Vardas\Downloads\linuxmint-22.3-cinnamon-64bit.iso" SHA256
4. Terminalas: pirmasis pokalbis su sistema
Komanda 4.1
pwd
Komanda 4.2
ls
Komanda 4.3
ls -l
Komanda 4.4
ls --help
Komanda 4.5
history
5. Failų sistemos medis ir keliai
Komanda 5.1
pwd
Komanda 5.2
ls /
Komanda 5.3
cd /home
pwd
ls
cd ona
pwd
cd ..
pwd
cd ~
pwd
Komanda 5.4
ls -R medis
7. Teksto failai: skaitymas, redagavimas, paieška
Komanda 7.1
cd ~/bandomasis
echo "pirmoji eilutė" > uzrasai.txt
echo "antra eilutė" >> uzrasai.txt
Komanda 7.2
nano sveikinimas.txt
Komanda 7.3
cat uzrasai.txt | wc -l
Komanda 7.4
grep "antra" uzrasai.txt
Komanda 7.5
wc uzrasai.txt
8. Vartotojai, grupės, root ir sudo
Komanda 8.1
whoami
Komanda 8.2
id
Komanda 8.3
sudo ls /root
Komanda 8.4
sudo adduser testas
Komanda 8.5
su - testas
Komanda 8.6
sudo deluser testas
9. Prieigos teisės ir failų savininkai
Komanda 9.1
chmod u+x scenarijus.sh
Komanda 9.2
chmod 644 scenarijus.sh
Komanda 9.3
stat -c '%A %U %n' scenarijus.sh
Komanda 9.4
sudo chown ona:ona projektas
10. Programų diegimas terminale: paketai ir saugyklos
Komanda 10.1
sudo apt update
Komanda 10.2
sudo apt install tree htop
Komanda 10.3
apt show bash
Komanda 10.4
sudo apt remove tree
Komanda 10.5
sudo apt upgrade
11. Procesai ir sistemos ištekliai: kas vyksta viduje
Komanda 11.1
ps aux
Komanda 11.2
htop
Komanda 11.3
free -h
Komanda 11.4
df -h
Komanda 11.5
uptime
Komanda 11.6
kill 2451
12. Paslaugos, systemd ir sistemos žurnalai
Komanda 12.1
systemctl status cups
Komanda 12.2
sudo systemctl stop cups
sudo systemctl start cups
sudo systemctl restart cups
Komanda 12.3
sudo systemctl disable cups
sudo systemctl enable cups
Komanda 12.4
ls /var/log
Komanda 12.5
journalctl -u cups
journalctl -u cups -e
journalctl -u cups --since "1 hour ago"
Komanda 12.6
journalctl -f
13. Diskai, laikmenos ir archyvai
Komanda 13.1
lsblk
Komanda 13.2
df -h
Komanda 13.3
tar -czf archyvas.tar.gz dokumentai uzrasai.txt
Komanda 13.4
tar -tzf archyvas.tar.gz
Komanda 13.5
tar -xzf archyvas.tar.gz -C iskleidimas/
14. Tinklai: IP adresai, DNS ir prievadai
Komanda 14.1
ip addr
Komanda 14.2
host example.com
Komanda 14.3
ss -tlnp
Komanda 14.4
ping -c 4 127.0.0.1
ping -c 4 192.168.1.1
15. SSH: kompiuterio valdymas iš tolo
Komanda 15.1
ssh ona@192.168.56.101
Komanda 15.2
ssh-keygen -t ed25519
Komanda 15.3
ssh-copy-id ona@192.168.56.101
Komanda 15.4
scp ~/bandomasis/sveiki.txt ona@192.168.56.101:~
16. Savo serveris: VPS paruošimas saugiai
Komanda 16.1
sudo adduser admin
sudo usermod -aG sudo admin
Komanda 16.2
sudo ufw allow OpenSSH
sudo ufw enable
sudo ufw status verbose
Komanda 16.3
sudo sshd -t
sudo systemctl reload ssh
Komanda 16.4
sudo apt install unattended-upgrades
17. Interneto svetainė: nginx, domenas ir HTTPS
Komanda 17.1
sudo apt install nginx
sudo ufw allow 'Nginx Full'
sudo ufw status
Komanda 17.2
sudo nginx -t
sudo systemctl reload nginx
Komanda 17.3
sudo apt install certbot python3-certbot-nginx
Komanda 17.4
sudo certbot --nginx -d ona-svetaine.lt
Komanda 17.5
sudo certbot renew --dry-run
18. Atsarginės kopijos ir serverio priežiūra
Komanda 18.1
mkdir -p ~/kopijos
sudo tar -czf ~/kopijos/etc-nginx-$(date +%F).tar.gz /etc/nginx
Komanda 18.2
rsync -av --dry-run ~/bandomasis/ ~/bandomasis-kopija/
rsync -av ~/bandomasis/ ~/bandomasis-kopija/
Komanda 18.3
mkdir -p /tmp/atkurimas
sudo tar -xzf ~/kopijos/etc-nginx-$(date +%F).tar.gz -C /tmp/atkurimas
sudo diff -r /tmp/atkurimas/etc/nginx /etc/nginx
Komanda 18.4
mkdir -p ~/serverio-kopijos
rsync -av -e ssh admin@203.0.113.10:kopijos/ ~/serverio-kopijos/
19. Pirmasis scenarijus: Bash pagrindai
Komanda 19.1
cd ~/bandomasis
nano pirmasis.sh
Komanda 19.2
VARDAS="Ona"
echo "$VARDAS"
echo "Labas, $VARDAS!"
Komanda 19.3
nano svecias.sh
Komanda 19.4
nano tikrintojas.sh
Komanda 19.5
cd ~/bandomasis
nano kopija.sh
Komanda 19.6
bash -n kopija.sh
chmod u+x kopija.sh
./kopija.sh
20. Automatika: suplanuotos užduotys ir aplinkos kintamieji
Komanda 20.1
crontab -e
Komanda 20.2
crontab -l
Komanda 20.3
printenv
export BANDOMOJI=labas
echo $BANDOMOJI
Komanda 20.4
nano ~/.env
chmod 600 ~/.env
21. Git: laiko mašina tavo failams
Komanda 21.1
mkdir ~/serverio-dokumentacija
cd ~/serverio-dokumentacija
git init
Komanda 21.2
git status
Komanda 21.3
git add README.md
git status
Komanda 21.4
git commit -m "Sukuriu serverio dokumentacijos saugyklą"
Komanda 21.5
git log --oneline
Komanda 21.6
git status
git diff
22. Docker: programa visoje dėžėje
Komanda 22.1
docker run -d --name mano-puslapis -p 8080:80 nginx
docker ps
Komanda 22.2
docker logs mano-puslapis
Komanda 22.3
docker exec mano-puslapis sh -c 'echo "<h1>Pakeista konteinerio viduje</h1>" > /usr/share/nginx/html/index.html'
docker stop mano-puslapis
docker rm mano-puslapis
docker run -d --name mano-puslapis -p 8080:80 nginx
Komanda 22.4
docker volume create puslapio-duomenys
docker run -d --name mano-puslapis -p 8080:80 -v puslapio-duomenys:/usr/share/nginx/html nginx
Komanda 22.5
docker compose up -d
docker compose ps
24. Savo AI paslauga: vietinis modelis arba API
Komanda 24.1
ollama run <modelis>
Komanda 24.2
curl http://localhost:11434/api/generate -d '{
"model": "<modelis>",
"prompt": "Parašyk vieną sakinį apie Linux.",
"stream": false
}'
Komanda 24.3
mkdir -p ~/ai-paslauga && cd ~/ai-paslauga
nano compose.yaml
docker compose up -d
Komanda 24.4
sudo reboot
26. Kai kažkas neveikia: metodinė gedimų paieška
Komanda 26.1
curl -I http://203.0.113.10
systemctl status nginx
sudo systemctl start nginx
curl -I http://203.0.113.10
Komanda 26.2
curl -I --max-time 10 https://ona-svetaine.lt
systemctl status nginx
ss -tlnp
ping -c 3 203.0.113.10
sudo ufw status
sudo ufw allow 'Nginx Full'
curl -I https://ona-svetaine.lt
Komanda 26.3
df -h
sudo du -sh /*
sudo du -sh /home/*
ls -lh /home/admin
rm ~/blokas1.img ~/blokas2.img
df -h
Klaidų sąrašas (errata)
Patikrinta 2026-09-24.Pataisymų kol kas nėra.
Radai klaidą – komandą, kuri neveikia, netikslų faktą ar rašybos klaidą? Parašyk adresu hello@ovanap.no. Nurodyk:
- knygos puslapį arba skyrių ir komandos numerį;
- tikslų komandos tekstą ir tikslų klaidos pranešimą;
- sistemos versiją (
cat /etc/os-release).
Kiekvienas patvirtintas pataisymas bus įrašytas čia su data.