Paketupdates via Commandline

german
update

#1

Hallo,

ich bilde mir ein irgend wann man gesagt bekommen zu haben: Upgrades nur via Web-GUI. Ist dem tatsächlich so, oder gibt es einen vorgesehenen Weg das auf der Commandline (Konsole oder SSH) zu machen? Bei einem “normalen” Debian würde ich sagen:

apt-get dist-upgrade

Kann ich das auch beim UCS gefahrlos machen? Vorm Bauchgefühl her würde ich sagen: ja, aber ich frag lieber mal bevor ich etwas kaputt mache :slight_smile: Wie gesagt, es geht mir hier um Paketupdates nicht um Releaseupdates. Wo bei, vielleicht kann man ja auch Releasupdates auf der Commandline machen.

TIA


#2

Hallo mahescho,

auf der Console kannst du folgenden Befehl für das Update ausführen:

univention-upgrade

Soweit ich mich erinnere, werden erst sämtliche Paketupdates eingespielt und dann anschliessend gefragt,
falls nötig, ob man auch ein Release-Update durchführen will.

Aber bitte beachten: unbedingt an der Konsole am entsprechenden Rechner ausführen !

Wird das ganze per ssh gemacht und die Verbindung wird unterbrochen, kann es sein, das das ganze System aufgrund der abgebrochenen SSH-Update-Session in einen inkonsistenten Zustand gerät.
Soweit ich weiss, bricht vorher das Update mit einem Sicherheitshinweis ab.

WARNING: You are logged in using SSH -- this may interrupt the update and result in an inconsistent system!
Please log in under the console or re-run with "--ignoressh" to ignore it.

Falls es doch nicht anders gehen sollte, würde ich das UpDate zumindest unter SCREEN laufen lassen.

hth,
O. Bertgen


#3

Danke, probiere ich bei nächster Gelegenheit aus, vielleicht mit Tmux :slight_smile:


#4

tmux rult :slight_smile: Ich mach all meine Univention-Updates via univention-upgrade --ignoressh innerhalb von tmux. Funktioniert problemlos, selbst wenn SSH mal wegbricht.

Hatte gerade am Freitag ein Update bei einem Kunden, dessen unsägliche Internetleitung dafür gesorgt hat, dass mir die Verbindung sage und schreibe 15 mal weggebrochen ist. Aber dank tmux war das nur nervig und kein Problem.


#5

Ja, man will Tmux … ich benutze Check_MK und mache damit APT-Checks. Dafür habe ich ein Script gebaut, welches mir die Check_MK-APT-Checks auswertet und mit SSH (dank Keys …) die Updates automatisch in Tmux-Split-Screens macht. Somit muss ich im Idealfall nix machen und wenn etwas schief läuft bleibt mir das Tmux-Fenster offen.

Da werde ich jetzt mal das “univention-upgrade” mit integrieren … Da hatte ich bis jetzt die Ausnahmen extra für die UCSe eingebaut.

Mein lieblings “Remote-Erlebnis”: Bin per SSH auf einem Kundenserver und will einen neues USB-Platte mit XFS versehen. Mache “mkfs.xfs -f” (-f wegen vorhandem NTFS). Prüfe vorher noch 5 mal das device. Drücke Enter und bin weg vom Fenster. Was denkt man zu erst: Falsches Device … stellt sich raus, in dem Moment als ich Enter gedrückt habe war beim Kunden die Internetverbindung weggebrochen … Schrecksekunde …


#6

Ich hatte jetzt Gelegenheit das bei ein paar Updates zu testen und habe auch mit Commandlineparametern getestet. So etwas wie “verbose” habe ich aber nicht gefunden. Kann man “univention-upgrade” überreden so ausführlich zu sein wie das Update in dem Web-GUI?

Was genau will mit der Parameter “–enable-app-updates” sagen? Eine Entsprechung im Web-GUI gibt es ja nicht. Das Web-GUI macht ja immer auch App-Updates mit. Was mich noch mehr verwirrt ist, dass es auch einen Parameter “–disable-app-updates” gibt. Was ist denn da die Voreinstellung? Der “–help” output hat da wohl auch noch einen kleinen Fehler :slight_smile:

  App updates:
    --enable-app-updates
                        Skip updating installed Apps
    --disable-app-updates
                        Skip updating installed Apps

#7

Huhu,

Leider nein. Dafür gibt’s nur den gleichzeitigen Blick in die /var/log/univention/updater.log.

De facto gar nichts, weil der Default bereits ist, dass sie gemacht werden. Siehe /usr/sbin/univention-upgrade, Funktion parse_args:

def parse_args():
    …
    parser.set_defaults(app_updates=True)
    …
    group.add_option(
        "--enable-app-updates",
        dest="app_updates", action="store_true",
        help="Skip updating installed Apps")

Ob der Updater vor jeder App fragt, ob sie aktualisiert werden soll, wird wie alle anderen Nachfragen über den Parameter --noninteractive gesteuert.

Gruß
mosu


#8

Nach meinen neuen Erfahrungen vom Wochenende muss ich das hier noch mal nach vorne holen.

Gibt es einen Weg auf der Shell nicht interaktiv NUR Paketaktulaisierungen zu machen? Also keine Release- oder App-Aktualisierungen …


#9

Maybe like this?

univention-upgrade --updateto=$(ucr get version/version)-$(ucr get version/patchlevel) --disable-app-updates --noninteractive

#10

Hmmm … wenn sich jemand vom “Univention Staff” schon nicht sicher ist … wer könnte es dann sicher wissen ? :grinning:


#11

Hey,

if you’re looking for automated, secure updates, I recommend you read my explanation about automatic, policy-based updates in Univention. Yes, you can limit this to only install errata-level updates.

If you need to do it manually, you can use the following command to install errata-level updates. It’s the same the aforementioned automatic update process uses, too.

/usr/share/univention-updater/univention-actualise --dist-upgrade --silent

m.


#12

Danke, zweiteres werde ich ausprobieren. Unverständlich bleibt, warum die Programme protokollieren müssen und keine Ausgabe generieren wie sonst bei den APT-Kommandos üblich. Ein Kommandozeilenschalter wäre hilfreich mit dem man direkt alles sehen kann.


#13

Tut beides was es soll, nur das “univention-actualise” gefällt mir besser, da es ohne --silent noch mehr das tut was ich gerne hätte, nämlich sagen was es tut.