ups … DNF deinstalliert und nu ?

Da will man ein harmloses Update einspielen und angeblich stört so eine Lib dabei. Naja, nichts besonders. Kommt öfters vor. Man deinstalliert das fragliche Programm und installiert es wieder: fertig.  Soweit in der Theorie.

„Götter irren sich nie – Root schon!“

Der Befehl : „dnf update –allowerasing“ sollte das eigentlich auch so gleich machen, wenn man Abhängigkeitsprobleme hat.
Vielleicht hätte er das auch, wenn man stattdessen nicht versucht hätte das Paket direkt zu löschen ( dnf erase packagename ). Den dabei unterlief mir ein Fehler bei der Blindbenutzung der Bash :

dnf erase dnf update –allowerasing

Und natürlich blind auf Ja gedrückt 🙂 Schon war DNF , YUM, YUMEX und ABRT verschwunden 🙁 Jetzt versucht mal ohne Paketmanager den Paketmanager DNF zu reinstallieren. Die Lösung ist natürlich relativ einfach: RPM direkt benutzen.

Jetzt ist natürlich nur die Frage: Woher nehmen ?

Die Frage hatte ich zum Glück schon mal in einem anderen Zusammenhang gestellt : Koji

Beispiel für HTTPD: http://koji.fedoraproject.org/koji/packageinfo?packageID=280

Koji ist eine Webseite des Fedoraprojekts, auf dem alle Builds für alle Fedoraversionen verfügbar sind. Dort können alte wie Betaversionen und natürlich die aktuellen Pakete gefunden werden. Einfach Downloaden und mit rpm installieren.

Wenn man die RPMS alle in einem Verzeichnis hat ist das ganz einfach: rpm -i *rpm

Sind alle Pakete mit Abhängigkeiten vorhanden, ist das Malheur in Minuten beseitigt. Allerdings muß man ganz schön viele Pakete runterladen, deswegen zuerst nur DNF und seine Abhängigkeiten installieren, dann per DNF alles, was bei dem Erase mit eliminiert wurde.

Wer eine Liste braucht :  grep Erased /var/log/dnf.rpm.log

Oct 18 00:37:20 INFO Erased: abrt-desktop-2.8.0-5.fc23.x86_64
Oct 18 00:37:20 INFO Erased: abrt-cli-2.8.0-5.fc23.x86_64
Oct 18 00:37:20 INFO Erased: abrt-addon-vmcore-2.8.0-5.fc23.x86_64
Oct 18 00:37:21 INFO Erased: anaconda-23.19.10-1.fc23.x86_64
Oct 18 00:37:21 INFO Erased: abrt-addon-python3-2.8.0-5.fc23.x86_64
Oct 18 00:37:21 INFO Erased: initial-setup-gui-0.3.37-1.fc23.x86_64
Oct 18 00:37:21 INFO Erased: anaconda-gui-23.19.10-1.fc23.x86_64
Oct 18 00:37:21 INFO Erased: initial-setup-0.3.37-1.fc23.x86_64
Oct 18 00:37:21 INFO Erased: abrt-addon-python-2.8.0-5.fc23.x86_64
Oct 18 00:37:21 INFO Erased: anaconda-core-23.19.10-1.fc23.x86_64
Oct 18 00:37:21 INFO Erased: anaconda-tui-23.19.10-1.fc23.x86_64
Oct 18 00:37:21 INFO Erased: python3-meh-gui-0.43-1.fc23.noarch
Oct 18 00:37:21 INFO Erased: python3-meh-0.43-1.fc23.noarch
Oct 18 00:37:21 INFO Erased: yumex-3.0.17-2.fc23.noarch
Oct 18 00:37:22 INFO Erased: yum-utils-1.1.31-508.fc23.noarch
Oct 18 00:37:22 INFO Erased: yum-langpacks-0.4.5-2.fc23.noarch
Oct 18 00:37:22 INFO Erased: python-meh-gui-0.43-1.fc23.noarch
Oct 18 00:37:22 INFO Erased: python-meh-0.43-1.fc23.noarch
Oct 18 00:37:22 INFO Erased: dnf-plugin-system-upgrade-0.7.1-1.fc23.noarch
Oct 18 00:37:22 INFO Erased: createrepo-0.10.3-3.fc21.noarch
Oct 18 00:37:22 INFO Erased: anaconda-yum-plugins-1:1.0-10.fc20.noarch
Oct 18 00:37:22 INFO Erased: abrt-python-2.8.0-5.fc23.x86_64
Oct 18 00:37:22 INFO Erased: abrt-addon-ccpp-2.8.0-5.fc23.x86_64
Oct 18 00:37:22 INFO Erased: abrt-gui-2.8.0-5.fc23.x86_64
Oct 18 00:37:23 INFO Erased: abrt-addon-pstoreoops-2.8.0-5.fc23.x86_64
Oct 18 00:37:23 INFO Erased: abrt-tui-2.8.0-5.fc23.x86_64
Oct 18 00:37:23 INFO Erased: yum-3.4.3-507.fc23.noarch
Oct 18 00:37:23 INFO Erased: dnf-yum-1.1.10-1.fc23.noarch
Oct 18 00:37:23 INFO Erased: abrt-addon-kerneloops-2.8.0-5.fc23.x86_64
Oct 18 00:37:23 INFO Erased: gnome-abrt-1.2.2-3.fc23.x86_64
Oct 18 00:37:23 INFO Erased: abrt-retrace-client-2.8.0-5.fc23.x86_64
Oct 18 00:37:23 INFO Erased: libreport-python-2.6.4-2.fc23.x86_64
Oct 18 00:37:23 INFO Erased: abrt-addon-xorg-2.8.0-5.fc23.x86_64
Oct 18 00:37:24 INFO Erased: abrt-plugin-bodhi-2.8.0-5.fc23.x86_64
Oct 18 00:37:24 INFO Erased: setroubleshoot-3.3.11-1.fc23.x86_64
Oct 18 00:37:24 INFO Erased: policycoreutils-devel-2.4-21.fc23.x86_64
Oct 18 00:37:24 INFO Erased: abrt-java-connector-1.1.0-6.fc23.x86_64
Oct 18 00:37:24 INFO Erased: abrt-dbus-2.8.0-5.fc23.x86_64
Oct 18 00:37:24 INFO Erased: abrt-python3-2.8.0-5.fc23.x86_64
Oct 18 00:37:24 INFO Erased: abrt-2.8.0-5.fc23.x86_64
Oct 18 00:37:24 INFO Erased: libreport-python3-2.6.4-2.fc23.x86_64
Oct 18 00:37:24 INFO Erased: dnf-1.1.10-1.fc23.noarch

Natürlich kann man das jetzt mit etwas Bashmagie automatisch reinstallieren lassen. Kleiner Denkanstoß :

grep „Erased:“ /var/log/dnf.rpm.log | sed -e „s/^.*Erased:/dnf install -y/g“ | bash

Eine kleine Nacharbeit muß man dann aber noch tun: die Configfiles für YUM und DNF sollten restauriert werden, denn nach dem Install sind die wieder default. Zum Glück ist RPM clever und legt bei sowas eine Sicherungsdatei an:

-rw-r–r–. 1 root root 833 18. Okt 01:00 /etc/yum.conf
-rw-r–r–. 1 root root 833  3. Apr 2016  /etc/yum.conf.rpmsave

Und immer dran denken: bis auf  „dd if=/dev/zero of=/dev/sda1“ aka „format c:“ kann man alles unter Linux reparieren.

Upgrade auf Fedora 24

Ein paar Worte vorweg:

Es gibt mehrere Wege seinen Rechner zu upgraden. DNF zu benutzen ist nur einer davon. Da ich seit Fedora 15 Upgrades per YUM und DNF mache, nehm ich diesen Weg.
Alternativ kann man auch FedUP benutzen. Bei YUM ging bislang alles rutschfrei, auch wenn die Fedora Webseite meint, daß DNF nicht der empfohlene Weg wäre. Letztlich macht aber auch Fedup nichts anderes, da kann man es auch gleich nehmen.

Warnung: Ein Upgrade ist naturgemäß eine destruktive Sache.

Geht es mitten im Upgradeprozess schief, ist das System üblicherweise hinüber. Deswegen: BACKUP machen.

Wenn es dagegen z.b. beim Download der neuen Pakete Probleme gibt, passiert nichts wildes, weil der Upgradeprozess vor dem eigentlichen Upgrade erstmal prüft, ob alles nötige vorhanden ist.

Um sein System auf Fedora 24 zu aktualisieren, braucht man lediglich eine Kommandokonsole (Terminal) und ausreichend Platz auf der Festplatte.

Als erstes sollte man ein Systembackup machen:

cd /
tar czvf /home/backup_sys.fc23.tgz –exclude=sys –exclude=proc –exclude=home *

idealerweise räumt man vorher noch Tempfiles auf und löscht Programme, die man eh nicht mehr benutzen will, aber nie einen Grund, sah sie zu entfernen. Jetzt wäre der richtige Zeitpunkt.

Vor dem Upgrade bitte sicherstellen, daß die Externen Repositories auch bereits alle Fedora 24 unterstützen, weil sonst fehlen ggf. am Ende Programme, die Ihr nutzen wolltet/müßt.
GANZ wichtig, wenn Ihr Nvidia Treiber von RPMFusion benutzt.

Ok. Alles gepüft ? Gut, dann kann es losgehen :

rpm –import /etc/pki/rpm-gpg/RPM-GPG-KEY-fedora-24-$(uname -i);
dnf upgrade;dnf clean all;dnf –releasever=24 –setopt=deltarpm=false distro-sync –allowerasing

Es kommen einige Fragen, ob man die neuen Keys bestätigen will; Ja, wollt Ihr.. und dann, obs wirklich losgehen kann. Einmal bestätigt, lädt dnf jetzt alles Files runter. Bei meinem Laptop waren es 3.3 GB und rund 4500 Updateschritte. Mit 50 Mbps und SSD dauert das zusammen ca. 25 Minuten.

Ist der Prozess durchgelaufen, einfach Rechner per Reboot neu starten. Fertig.

Die After-Upgrade-Schlacht

Mein Laptop hat brav gebootet, geht soweit wieder, aber was ist das ? Der Gnome Desktop sieht so leer aus…  ? ok, die Apps sind veraltet.

Einmal bitte http://extentions.gnome.org aufrufen, auf „installed Extentions“ gehen und Updates einspielen.

Tip: App nicht gleich löschen, nur weil noch kein Update da ist. Die können einige Zeit brauchen. Einfach in 2 Wochen noch mal nachsehen.

Für die Probleme mit QMMP gibt es morgen einen eigenen Beitrag.

 

Mehr Fedora gibt es hier : http://fedoraproject.org/

DNF: gezielt downgraden

Neulich bei Wine : „Es geht mal wieder nicht, aber gestern gings noch.“

In einem anderen Beitrag habe schon einmal auf Downgrades hingewiesen. Wenn man mit DNF/YUM einen Downgrade eines Paketes durchführt, geht das erstmal sehr einfach:

dnf downgrade paketname

Aber leider kann es vorkommen, daß bis auf die Basisversion eines Pakets zurück gegraded wird. Wie kommt das, wo doch lediglich eine kleine Revisionsänderung durchgeführt wurde ?

Ganz einfach: Weil das alte Paket nicht mehr im Update-Repository ist und nur noch die uralte Basisversion im Fedorahauptrepository zu finden ist.

Umgehen kann man das so, aber ein bisschen Arbeit ist es schon:

  1. Einen Webserver einrichten oder idealerweise einen bereits fertigen Webserver auf folgende URL konfigurieren :http://dnf.meinedomain.de/$basearch/$releasever/fedora-old/Was in dem Fall meint, daß das Docroot in dem Pfad rauskommt, wo die BASEARCH, also die Basisarchitektur liegt. siehe Punkt 3 als Beispiel.
  2. folgende Datei anlegen : /etc/yum.repos.d/fedora-downgrade.repo  und das reinschreiben:[fedora-old]
    name=Fedora $releasever – $basearch – OLD
    baseurl=http://dnf.meinedomain.de/$basearch/$releasever/fedora-old/
    enabled=1
    gpgcheck=0
  3. jetzt von Koji ( koji.fedoraproject.org/koji/ )  das Paket heraussuchen und die nötigen Dateien der Versionen die man gern hätte, in das Verzeichnis seines Apaches kopieren, in dem das Repo erstellt wurde. Das könnte so aussehen : /home/meinusername/repository/x86_64/23/fedora-old/
    drwxr-xr-x 3 root root     4096  6. Mär 16:09 .
    drwxr-xr-x 4 root root     4096  6. Mär 16:00 ..
    drwxr-xr-x 2 root root     4096  6. Mär 16:09 repodata
    -rw-r--r-- 1 root root    54078  6. Mär 16:07 wine-1.9.3-1.fc23.i686.rpm
    -rw-r--r-- 1 root root    54390  6. Mär 16:07 wine-1.9.3-1.fc23.x86_64.rpm
    -rw-r--r-- 1 root root   106054  6. Mär 16:07 wine-alsa-1.9.3-1.fc23.i686.rpm
    -rw-r--r-- 1 root root   108178  6. Mär 16:07 wine-alsa-1.9.3-1.fc23.x86_64.rpm
    -rw-r--r-- 1 root root   143442  6. Mär 16:07 wine-arial-fonts-1.9.3-1.fc23.noarch.rpm
    -rw-r--r-- 1 root root    59662  6. Mär 16:07 wine-capi-1.9.3-1.fc23.i686.rpm
    -rw-r--r-- 1 root root    59874  6. Mär 16:07 wine-capi-1.9.3-1.fc23.x86_64.rpm
    -rw-r--r-- 1 root root    74474  6. Mär 16:07 wine-cms-1.9.3-1.fc23.i686.rpm
    -rw-r--r-- 1 root root    75418  6. Mär 16:07 wine-cms-1.9.3-1.fc23.x86_64.rpm
    -rw-r--r-- 1 root root   108838  6. Mär 16:07 wine-common-1.9.3-1.fc23.noarch.rpm
    -rw-r--r-- 1 root root 22652170  6. Mär 16:08 wine-core-1.9.3-1.fc23.i686.rpm
    -rw-r--r-- 1 root root 22292142  6. Mär 16:08 wine-core-1.9.3-1.fc23.x86_64.rpm
    -rw-r--r-- 1 root root   133074  6. Mär 16:08 wine-courier-fonts-1.9.3-1.fc23.noarch.rpm
    -rw-r--r-- 1 root root 38597470  6. Mär 16:08 wine-debuginfo-1.9.3-1.fc23.x86_64.rpm
    -rw-r--r-- 1 root root   159390  6. Mär 16:08 wine-desktop-1.9.3-1.fc23.noarch.rpm
    -rw-r--r-- 1 root root    84534  6. Mär 16:08 wine-filesystem-1.9.3-1.fc23.noarch.rpm
    -rw-r--r-- 1 root root    66710  6. Mär 16:08 wine-fixedsys-fonts-1.9.3-1.fc23.noarch.rpm
    -rw-r--r-- 1 root root    53654  6. Mär 16:08 wine-fonts-1.9.3-1.fc23.noarch.rpm
    -rw-r--r-- 1 root root   115838  6. Mär 16:08 wine-ldap-1.9.3-1.fc23.i686.rpm
    -rw-r--r-- 1 root root   117914  6. Mär 16:08 wine-ldap-1.9.3-1.fc23.x86_64.rpm
    -rw-r--r-- 1 root root    65850  6. Mär 16:08 wine-marlett-fonts-1.9.3-1.fc23.noarch.rpm
    -rw-r--r-- 1 root root  1738630  6. Mär 16:09 wine-ms-sans-serif-fonts-1.9.3-1.fc23.noarch.rpm
    -rw-r--r-- 1 root root    66506  6. Mär 16:09 wine-openal-1.9.3-1.fc23.i686.rpm
    -rw-r--r-- 1 root root    68030  6. Mär 16:09 wine-openal-1.9.3-1.fc23.x86_64.rpm
    -rw-r--r-- 1 root root    65110  6. Mär 16:09 wine-opencl-1.9.3-1.fc23.i686.rpm
    -rw-r--r-- 1 root root    66114  6. Mär 16:09 wine-opencl-1.9.3-1.fc23.x86_64.rpm
    -rw-r--r-- 1 root root    96042  6. Mär 16:09 wine-pulseaudio-1.9.3-1.fc23.i686.rpm
    -rw-r--r-- 1 root root    96866  6. Mär 16:09 wine-pulseaudio-1.9.3-1.fc23.x86_64.rpm
    -rw-r--r-- 1 root root    68910  6. Mär 16:09 wine-small-fonts-1.9.3-1.fc23.noarch.rpm
    -rw-r--r-- 1 root root    79874  6. Mär 16:09 wine-symbol-fonts-1.9.3-1.fc23.noarch.rpm
    -rw-r--r-- 1 root root    54238  6. Mär 16:09 wine-systemd-1.9.3-1.fc23.noarch.rpm
    -rw-r--r-- 1 root root    72858  6. Mär 16:09 wine-system-fonts-1.9.3-1.fc23.noarch.rpm
    -rw-r--r-- 1 root root   160394  6. Mär 16:09 wine-tahoma-fonts-1.9.3-1.fc23.noarch.rpm
    -rw-r--r-- 1 root root    55270  6. Mär 16:09 wine-tahoma-fonts-system-1.9.3-1.fc23.noarch.rpm
    -rw-r--r-- 1 root root   150314  6. Mär 16:09 wine-times-new-roman-fonts-1.9.3-1.fc23.noarch.rpm
    -rw-r--r-- 1 root root    85858  6. Mär 16:09 wine-twain-1.9.3-1.fc23.i686.rpm
    -rw-r--r-- 1 root root    87210  6. Mär 16:09 wine-twain-1.9.3-1.fc23.x86_64.rpm
    -rw-r--r-- 1 root root    66466  6. Mär 16:09 wine-wingdings-fonts-1.9.3-1.fc23.noarch.rpm
    
  4. Nun wechselt man in das Verzeichnis und führt den Befehl „createrepo .“ aus. Damit werden die repodata-Files erzeugt, die DNF und YUM brauchen.
  5. Wenn alles geklappt hat, kann man das Repo jetzt mit DNF finden.

Ist das der Fall und man downgraded wine, ist das die nächst neueste Version zu der, die bereits installiert ist und damit downgraded dnf das erst mal im Beispiel auf 1.9.3, bevor es dann mit einem weiteren Downgrade auf die Basisversion 1.7.x geht. Wenn man jetzt mehr als eine Version von Wine in dem OLD Repo hat, kann man sich recht komfortabel von einer Version zur nächsten bewegen und muß nicht erst alles per dnf erase löschen und dann mit rpm -i *rpm die gewünschte Version installieren. Aber nicht vergessen das Paket in der /etc/dnf/dnf.conf zu deaktivieren, sonst kommt das Update abends gleich wieder drauf.

Natürlich kann man in so einem Repo auch eigene RPM’s speichern. So ein Repo ist auch ein prima Cache, wenn man viele, viele Server hat, die sich dann die neusten Versionen aus dem eigenen Cache ziehen, statt alle von Fedora. Der Traffic bliebe dann z.b. im LAN.