» »

Debian Trixie server upgrade

Debian Trixie server upgrade

HotBurek ::

Dobro jutro.

Evo, danes je dan za nadgradnjo Debian: bookworm to trixie.

Tole je trenutni sources.list, ki ga uporabljam na serverju:

deb http://deb.debian.org/debian trixie main contrib non-free non-free-firmware
deb-src http://deb.debian.org/debian trixie main contrib non-free non-free-firmware

deb http://deb.debian.org/debian-security/ trixie-security main contrib non-free non-free-firmware
deb-src http://deb.debian.org/debian-security/ trixie-security main contrib non-free non-free-firmware

deb http://deb.debian.org/debian trixie-updates main contrib non-free non-free-firmware
deb-src http://deb.debian.org/debian trixie-updates main contrib non-free non-free-firmware

deb http://deb.debian.org/debian trixie-backports main contrib non-free non-free-firmware
deb-src http://deb.debian.org/debian trixie-backports main contrib non-free non-free-firmware

# 05.07.2023
# The following packages have unmet dependencies:
# mariadb-server-core : Depends: liburing1 (>= 0.7) but it is not installable
deb http://deb.debian.org/debian bullseye main contrib non-free


Nekaj reči za popravit.

nftables

Nadgradnja povozi file /usr/lib/systemd/system/nftables.service. Po defaultu ExecStart in ExecReaload pointata na /etc/nftables.conf. Jaz imam tu narejeno spremembo na /etc/nftables/nftables.conf. Po restartu je (če imaš non default path) to za popravit + systemctl daemon-reload.

dovecot

Po nadgradnji iz verzije 2.3 pride do errorja pri startu servica:

doveconf: Fatal: Error in configuration file /etc/dovecot/dovecot.conf line 24:
The first setting must be dovecot_config_versiondoveconf:
Fatal: Error in configuration file /etc/dovecot/dovecot.conf line 24:
The first setting must be dovecot_config_version

config: dovecot_config_version must be the first non-comment
line in configuration file.


Vir: https://github.com/dovecot/core/releases

V config sem dodal:

# Since version 2.4
# source: https://github.com/dovecot/core/releases
dovecot_config_version = 2.4.0


Ter systemctl daemon-reload + service dovecot start.

Sledil je naslednji error:
doveconf: Fatal: Error in configuration file /etc/dovecot/dovecot.conf line 95:
dict { } is missing section name


Ker zadeve ne uporalbljam, sem jo zakomentiral:

# Remove after upgred to 2.4 since I get error: dict { } is missing section name

#dict {
# #quota = mysql:/etc/dovecot/dovecot-dict-sql.conf.ext
#}


Taprave trde rešitve ne poznam.

Sledi podoben error:

doveconf: Fatal: Error in configuration file /etc/dovecot/conf.d/10-logging.conf line 68:
Unknown section name: plugin


Isto kot zgoraj: ne uporabljam, zakomentiral, rešitve ne poznam.

Sledi naslednji error:

doveconf: Fatal: Error in configuration file /etc/dovecot/conf.d/10-ssl.conf line 9:
ssl_cert: Unknown setting: ssl_cert


To zadevo pa uporabljam in jo ne morem kr zakomentirat...

Ok. Sem preimenoval iz ssl_cert v ssl_server_cert_file.

Naredim restart in dobim error: Fatal: failed: No such file or directory.

Ne vem še, kaj bi lahko bil problem, ker file obstaja.

Med nadgradnjo sem opazil, da je setup inštaliral en kup novih fajlov v apparmor. S tem software-om sem že imel borbe v preteklosti, ko sem hotel za bind9 logirat v custom folder. Lets check that.

Nope. Zgleda ni apparmor.

Next. Permissions.

Ok ok. Zdej gledam, da je nadgradnja dovecot-a zraven oroginalnih fajlov namestila še fajle z istim imenom in končnico ucf-dist. In v fajlu 10-ssl.conf.ucf-dist piše:

# Preferred permissions: root:root 0444
ssl_server_cert_file = /etc/dovecot/private/dovecot.pem
# Preferred permissions: root:root 0400
ssl_server_key_file = /etc/dovecot/private/dovecot.key


Evo, naredil test in vidim, da 0444 pomeni read za owner/group/other. Certifikati pa so v /etc/letsencypt/, kjer sta dva folderja (live in archive), in oba imate samo rwx permissione za userja (root). Bo to to? Lets test this.

Ok, oba folderja (live in archive) sem dal na +r, a erro ostaja.

No, zdej ko sem nastavljal permissione, sem po nesreči pobrisal privat key. Ful kul debest žur.

Ok, certbot sem ponovno zagnal in je zgeneriral nove certe. Na žalost jih je začel devat v drug folder (namesto "folder" začne uporabljat "folder-0001", kar sux).

Zdej sem ponovno zagnal service in dobim nov error: Fatal: failed: File name too long.

What the heck is this??

Ok, tole je trenutno config:

protocol pop3 {
  ssl_server_cert_file = </etc/dovecot/fullchain.pem
  ssl_server_key_file = </etc/dovecot/privkey.pem
}

In error je: failed: File name too long

Tale zna bit kr tricky za rešit.

Ok, niti ne. Odstranil sem znak na začetku poti:
<


Gremo naprej. Nov error:

oveconf: Fatal: Error in configuration file /etc/dovecot/conf.d/10-ssl.conf line 63:
ssl_dh: Unknown setting: ssl_dh


This is eazy now: preimenovat je treba ssl_dh v ssl_server_dh_file.

Gremo naprej. Nov error:

doveconf: Fatal: Error in configuration file /etc/dovecot/dovecot.conf line 113:
mail_location: Unknown setting: mail_location


To zadevo uporabljam in bo treba pogledat, kako pa kaj.

Tule je dokumentacija: https://doc.dovecot.org/2.4.1/core/conf...

V verziji 2.3 sem imel takole:

mail_location = maildir:/home/%u/Maildir/


V novi 2.4 verziji pa je smaple takole:

mail_driver = mbox
mail_home = /home/%{user|username}
mail_path = %{home}/mail
mail_inbox_path = /var/mail/%{user}


Zdej pa vprašanje, kako naj naredim rewrite da bo pointer pointal na isti folder. Krneki tole...

Takole sem naredi:

#mail_path = %{home}/mail
mail_path = %{home}/Maildir


Ter pognal mail klienta in maili so noter. Send dela. Receive pa ne.

Vidim, da je v Maildir/new notri nof file, ki predstavlja prejet mail. Kako sedaj pointat dovecot, da je to plac, kamor naj kliente preusmeri za novo pošto?

Ok, zadevo rešil z nastavitvijo:

mail_driver = Maildir


Vir: https://doc.dovecot.org/2.4.1/core/conf...

Next.

Za Python sem opazil, da se nadgradi iz verzije 3.11 na 3.13.

Trenutno imam sledeči error:

ImportError: cannot import name '_mysql' from partially initialized module 'MySQLdb'
(most likely due to a circular import) (/usr/lib/python3/dist-packages/MySQLdb/__init__.py)


Evo, zgleda, kot da je med nadgradnjo ta package odstranilo.

Whatever, pognal ukaz in inštaliral: apt-get install python3-pymysql --no-install-recommends

Gut. Gremo naprej. Nov error:

uwsgi_cgi_run()/execvp(): No such file or directory [plugins/cgi/cgi_plugin.c line 953]


Ok. Zadevo rešil z novim pointerjem na python interpreter v python skripti:

#!/usr/bin/python3.11
#!/usr/bin/python3.13


Nov error:

ModuleNotFoundError: No module named 'typesense'


In rešil z pip3:

pip3 install typesense --break-system-packages


To je pa to.

Well done.
root@debian:/# iptraf-ng
fatal: This program requires a screen size of at least 80 columns by 24 lines
Please resize your window

_Denny_ ::

Manjka ti še
apt modernize-sources

za avtomatsko pretvorbo sources.list v nov deb822 format (lahko tudi ročno), ker bo drugače pri naslednjih updatih apt tečen.

Pri meni je na srečo šlo brez težav
sed -i 's/bookworm/trixie/g' /etc/apt/sources.list
apt update && apt dist-upgrade

in pa 4x y za "install the package maintainer's version" config fajle, ker jih nisem nič spreminjal. En reboot kasneje in že piše 13 namesto 12.
Asrock X670E Taichi, Ryzen 9 7950X3D + NH-D14, 96GB Corsair DDR5-6400 CL32
RTX 5080 16GB, 2TB Kingston KC3000, 2TB ADATA SX8200 Pro, 4TB Micron 5200
Seasonic Focus Plus 850W, Corsair Air 540, Logitech Z-2300, TCL 55C7K 144Hz

HotBurek ::

Tole sem dobil po nadgranji v Python-u:

/usr/lib/python3/dist-packages/pyRdfa/extras/httpheader.py:347: SyntaxWarning:
invalid escape sequence '\-' have been removed and all \-escapes will have been replaced with
/usr/lib/python3/dist-packages/pyRdfa/extras/httpheader.py:359: SyntaxWarning:
invalid escape sequence '\-' (token, chars_consumed), with all \-escapes and quotation already
/usr/lib/python3/dist-packages/pyRdfa/extras/httpheader.py:525: SyntaxWarning:
invalid escape sequence '\-' All \-escaped quoted pairs will have been replaced with the actual

Še nisem pa nič raziskoval.

Verjetno gre za package: python3-pyrdfa

Verzijo imam nameščeno: 3.6.4+ds-1
root@debian:/# iptraf-ng
fatal: This program requires a screen size of at least 80 columns by 24 lines
Please resize your window

Zgodovina sprememb…

  • spremenilo: HotBurek ()

HotBurek ::

Zaenkrat nimam druge rešitve, kot da dam ta warning na ignore.

Sem pa poizkusilv več variant, da bi nastavil filter na module (katerega ime je pyRdfa.extras.httpheader), a mi ni ratalo.

# avoid SyntaxWarning: invalid escape sequence
# pyRdfa extras httpheader
import warnings;
warnings.filterwarnings(
    "ignore",
    category=SyntaxWarning
);
root@debian:/# iptraf-ng
fatal: This program requires a screen size of at least 80 columns by 24 lines
Please resize your window


Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

Python - pošlji aplikacijo na server

Oddelek: Programiranje
201641 (876) HotBurek
»

Postavitev mySQL

Oddelek: Programiranje
92418 (1996) M01O
»

Debian in nvidia

Oddelek: Operacijski sistemi
222408 (2133) Icematxyz
»

Debian Gnu/Linux kot workstation (strani: 1 2 3 437 38 39 40 )

Oddelek: Operacijski sistemi
1960122130 (37804) RedDrake
»

APT mi dela problem

Oddelek: Operacijski sistemi
111405 (1209) Bug

Več podobnih tem