Ubuntu do-release-upgrade mit apt-cacher

Ein paarmal hatte ich jetzt schon das Problem dass sudo do-release-upgrade die neue Distribution nicht gefunden hat. Ein detaillierter Aufruf lieferte diese Meldung:

sudo do-release-upgrade -p
Checking for a new Ubuntu release
Err Upgrade tool signature
  403  Sorry, not allowed to fetch that type of file: trusty.tar.gz.gpg
Err Upgrade tool
  403  Sorry, not allowed to fetch that type of file: trusty.tar.gz
Fetched 0 B in 0s (0 B/s)
WARNING:root:file 'trusty.tar.gz.gpg' missing
Failed to fetch
Fetching the upgrade failed. There may be a network problem.

Das Problem war der apt-cacher, der das Herunterladen der Dateien nicht erlaubte. Bisher hatte ich dann für das Upgrade immer kurz den Proxy auf dem System, das ich aktualisieren wollte, deaktiviert, aber das ist ja auch keine dauerhafte Lösung.

Das eigentliche Problem ist schlicht und einfach, dass dem apt-cacher die neuen Ubuntu-Versionen noch nicht bekannt sind und er sie deshalb zurückweist. Man muss nur die Codenamen der neueren Distributionen in der Config-Datei eintragen:

sudo vi /etc/apt-cacher/apt-cacher.conf

ubuntu_release_names = dapper, edgy, feisty, gutsy, hardy, intrepid, jaunty, karmic, lucid, maverick, natty, oneiric, precise, quantal, raring, saucy, trusty

apt-cacher neu starten und fertig:

sudo service apt-cacher reload

Ein Hinweis noch zu LTS-Versionen: Ein direktes Upgrade von einer LTS-Version zur nächsten (z.B. von 12.04 auf 14.04) ist erst möglich wenn das erste Point-Release der neuen Version erschienen ist (in diesem Fall 14.04.1). Bis dahin muss man, wenn man die neue Version unbedingt braucht/will, jeden einzelnen Upgrade-Schritt dazwischen mitmachen.

Ubuntu Pakete downgraden und upgrades verhindern

Manchmal gibt es mit einer neueren Version eines Paketes Probleme mit Software die es verwendet, so dass man gezwungen ist bei einer älteren Version zu bleiben. apt bietet dafür recht einfache Mechanismen.

Automatisches Downgrade

Natürlich stellt man die Probleme erst fest, wenn das neue Paket installiert ist, als muss erstmal die alte Version wieder her. Die alte Version findet man im Log von dpkg:

$ grep upgrade /var/log/dpkg.log
2014-05-30 10:27:28 upgrade mercurial 2.8.2-1ubuntu1 3.0-1ppa1~precise1
2014-05-30 10:27:28 upgrade mercurial-common 2.8.2-1ubuntu1 3.0-1ppa1~precise1

Hier wurde mercurial von Version 2.8.2 auf 3.0 aktualisiert. Mit etwas Glück kann man mit der alten Versionsnummer einfach auf die alte Version zurück:

sudo apt-get install mercurial=2.8.2-1ppa2~precise1

In dem speziellen Fall funktionierte das bei mir leider nicht:

E: Version '2.8.2-1ppa2~precise1' for 'mercurial' was not found

Manuelles Downgrade

Ein manuelles Downgrade ist eigentlich auch nicht viel Arbeit, eigentlich muss man nur die Pakete manuell herunterladen und direkt mit dpkg -i installieren. Es kann nur etwas lästig sein Abhängigkeiten zu finden.

wget http://archive.ubuntu.com/ubuntu/pool/universe/m/mercurial/mercurial-common_2.8.2-1ubuntu1_all.deb
wget http://archive.ubuntu.com/ubuntu/pool/universe/m/mercurial/mercurial_2.8.2-1ubuntu1_amd64.deb
sudo dpkg -i mercurial_2.8.2-1ubuntu1_amd64.deb mercurial-common_2.8.2-1ubuntu1_all.deb

Zukünftige Upgrades verhindern

Damit Ubuntu das Paket auch bei zukünftigen Upgrades auf dieser Version hält müssen wir apt das noch mitteilen:

sudo echo "mercurial hold" | sudo dpkg --set-selections

Und schon werden für das Paket keine Updates mehr installiert. Natürlich ist das keine Dauerlösung, wenn man das eigentliche Problem behoben hat und das Update gefahrlos installiert werden kann muss man apt auch das wieder mitteilen:

sudo echo "mercurial install" | sudo dpkg --set-selections

Das ist alles.

Windows 8.1 Update auf Latitude E6530

Dinge die nach dem Update auf Windows 8.1 Enterprise auf meinem Latitude E6530 nicht mehr funktionierten (und die Lösung dafür). Beim Update wurden alle installierten Anwendungen und Einstellungen beibehalten.

  • Externe Monitore
    Eine der Grafikkarten konnte nicht gestartet werden, ein Update des Treibers über den Device Manager behob das Problem.
  • Cisco AnyConnect VPN Client
    Setup vom AnyConnect Client starten und Installation reparieren.
  • Remote Server Administration Tools
    Die neuere Version herunterladen und installieren.
  • Meldung auf dem Desktop: SecureBoot isn’t configured correctly
    Beim Booten mit F12 das Menü öffnen und Secure Boot aktivieren.
    (Achtung: Bitlocker vorher pausieren. Ich weiß nicht ob es nötig ist, aber sicher ist sicher)
  • Skype Support mit Trillian
    Hier liegt der Schwarze Peter wohl bei Skype, das von Trillian genutzte SkypeKit funktioniert nicht mehr und wenn ich die Developer-Seiten von Skype richtig deute wird SkypeKit wohl auch nicht mehr gepflegt. In diesem Thread im Trillian Support Forum gibt es eine ältere Version von SkypeKit.exe die im Kompatibilitätsmodus für Windows 7 funktioniert. Mal schauen wie das in Zukunft aussieht.