From ce7a47f5322c9cec7c0f1ed17699cfc416e4913b Mon Sep 17 00:00:00 2001 From: Archos Date: Mon, 25 May 2026 14:59:59 +0200 Subject: [PATCH] =?UTF-8?q?add:=20Varnish=20=E2=86=92=20Vinyl=20Cache=20mi?= =?UTF-8?q?grace=20news?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- content/posts/varnish-vinyl-cache/index.md | 64 ++++++++++++++++++ .../varnish-vinyl-cache/varnish-cache.jpg | Bin 0 -> 13126 bytes 2 files changed, 64 insertions(+) create mode 100644 content/posts/varnish-vinyl-cache/index.md create mode 100644 content/posts/varnish-vinyl-cache/varnish-cache.jpg diff --git a/content/posts/varnish-vinyl-cache/index.md b/content/posts/varnish-vinyl-cache/index.md new file mode 100644 index 0000000..ab7273c --- /dev/null +++ b/content/posts/varnish-vinyl-cache/index.md @@ -0,0 +1,64 @@ +--- +title: "Arch News: Varnish se přejmenoval na Vinyl Cache" +date: 2026-05-25 +draft: false +cover: "varnish-cache.jpg" +tags: ["news", "varnish", "migrace"] +--- + +# Arch News: Varnish se přejmenoval na Vinyl Cache + +Pokud na svém systému provozuješ reverzní proxy nebo HTTP cache postavenou na Varnishi, pozor — upstream projekt se přejmenoval na **Vinyl Cache** a Arch ho následoval. Balíček `varnish` byl odstraněn z repozitáře `[extra]` a nahrazen novým balíčkem `vinyl-cache`. + +Změna není jen kosmetická. Přejmenovaly se binárky, adresáře, systemd jednotky i systémoví uživatelé. Po upgradu je nutná ruční migrace. + +--- + +## Co se změnilo + +| Staré | Nové | +|---|---| +| `/etc/varnish` | `/etc/vinyl-cache` | +| `/var/lib/varnish` | `/var/lib/vinyl-cache` | +| `varnish.service` | `vinyl-cache.service` | +| `varnishncsa.service` | `vinylncsa.service` | +| uživatel `varnish` | uživatel `vinyl` | +| skupina `varnish` | skupina `vinyl` | +| uživatel `varnishlog` | uživatel `vinyllog` | +| uživatel `vcache` | beze změny | + +--- + +## Postup migrace + +```bash +# 1. nainstaluj nový balíček +sudo pacman -Syu vinyl-cache + +# 2. přejmenuj adresáře +sudo mv /etc/varnish /etc/vinyl-cache +sudo mv /var/lib/varnish /var/lib/vinyl-cache + +# 3. oprav vlastnictví souborů +sudo chown -R vinyl:vinyl /var/lib/vinyl-cache + +# 4. vypni staré systemd jednotky, zapni nové +sudo systemctl disable --now varnish.service varnishncsa.service +sudo systemctl enable --now vinyl-cache.service vinylncsa.service + +# 5. zkontroluj stav +systemctl status vinyl-cache.service +journalctl -u vinyl-cache.service -n 30 +``` + +--- + +## Poznámky + +- Arch momentálně neplánuje udržovat balíček `varnish` jako samostatný fork — jedinou podporovanou cestou je přechod na `vinyl-cache`. +- Pokud máš v konfiguraci reference na staré cesty nebo názvy uživatelů, je potřeba je ručně opravit. +- Detailní přehled breaking changes najdeš v [oficiálních release notes][0]. + +[0]: https://github.com/varnishcache/varnish-cache/releases + +--- diff --git a/content/posts/varnish-vinyl-cache/varnish-cache.jpg b/content/posts/varnish-vinyl-cache/varnish-cache.jpg new file mode 100644 index 0000000000000000000000000000000000000000..175d4c3081015ec1d194559efd065b4847dfab7c GIT binary patch literal 13126 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 literal 0 HcmV?d00001