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