Au revoir, pkg_install

Yamagi

Possessed With Psi Powers
Teammitglied
Tja pkg_install, das war es nun also. 20 lange Jahre währte dein Leben, in unserer Branche gleich zwei oder sogar drei Ewigkeiten. Als du 1994 das Licht der Welt erblicktest, warst du als Paketmanager der ersten Generation innovativ. Sozusagen eine kleine Revolution. Allerdings nur kurz, denn nur einige Wochen später erschien die erste in C geschriebene und uneingeschränkt nutzbare Version von dpkg. Und sind wir einmal ehrlich, dpkg war immer besser. Du besaßt nur Vorwärtsabhängigkeiten, konntest also Aussagen wie "Paket A benötigt B und C" treffen. dpkg hatte auch Rückwärtsabhängigkeiten im Sinne von "Paket A von durch D und E benötigt". Dies war nur eines der Dinge, denen du dich lange, vielleicht sogar viel zu lange, verweigertest. Als du dich dann irgendwann nicht mehr drücken konntest, war deine Lösung ein besserer Hack. Anstatt die Daten aus deiner Datenbank zu lesen, erstelltest du sie zur Laufzeit. Das war langsam und problematisch.

Überhaupt ist die Datenbank ein gutes Stichwort. Allein der Name ist ein Witz. Es war lediglich eine Sammlung nicht mal wohlgeformter Textdateien, von Dingen wir Atomizität keine Spur. Ein böser Witz war, dass deine Datenbank nur kurz zwischen dem Ende der Installation und dem Hinzufügen des ersten Pakets konsistent war. Nicht umsonst lernten wir schnell Tools wie "pkgdb" schätzen, welche zumindest die schlimmsten Auswüchse nachträglich korrigieren konnten. Versagten sie, wurde vi(1) unser Freund. Oder gleich der Holzhammer in Form einer kompletten Reinstallation.

Hier lag eine weitere große Schwäche, wo du dich schon vor spätestens 10 Jahren hättest bewegen müssen. Deine unvollständige Sicht auf den Abhängigkeitsgraph machte selbst simpel erscheinende Dinge wie das Installieren fertiger Pakete, Systemupdates oder das saubere Deinstallieren nahezu unmöglich. Was schrieben wir für Unmengen Tools, um deine Unzulänglichkeiten auszugleichen. portmanager, portupdate, portmaster, pkg-update, pkg_cutleaves und noch viele mehr. Eine waren Wrapper, andere wie portupdate ersetzten dich so weit es irgendwie möglich war. Aber auch all das konnte dein unvermeidliches Ende nur herauszögern.

Lange schützte dich die Tatsache, dass FreeBSDler alles aus den Ports selbst bauten. Die Ports waren die Magie, du nur das ungeliebte Fundament. Aber die Zeiten änderten sich. Software wurde schneller komplexer, als die Leistungsfähigkeit der Hardware wuchs. Konnte man ~1996 einen ganzen Desktop in zwei Stunden bauen, war es 2012 schon ein ganzer Tag. Man hatte immer mehr Server und wer einmal die Vorzüge eines richtigen Paketmanagements genossen hat, wollte es nicht mehr missen. So schielten immer mehr sehr überzeugte BSDler wie auch ich neidisch ins Linuxlager. So wurde langsam klar, dass du ein Problem bist und ersetzt werden musst.

Am Anfang versuchte man noch dich zu überarbeiten, aber schnell setzte sich Bapstiste "bapt" Daroussin mit seinem radikalen Vorschlag dich wegzuschmeißen und von vorn zu beginnen durch. Er erzählte uns, was man alles Schönes machen könnte. Systemupdates mit nur einem Kommando, vollautomatische Behandlung von Konflikten, Sub-Pakete, Flavors... Auch die Ports würden sehr profitieren. Keine kaputten pkg-plists mehr, kein sich langsam aber sicher zumüllendes System. Letzteres wurde dann nicht in deinem Nachfolger, stattdessen auf Ebene der Ports realisiert, aber dennoch. Und mit jeder Zeile Code, die pkg besser wurdest, wurdest du zu einer größeren Belastung.

Es ging so weit, dass sich eine überwältigende Mehrheit von uns sonst konservativen BSDlern dafür aussprach Nägel mit Köpfen zu machen und unsere nahezu heilige "Policy of Least Astonishment" zu brechen. Am 1. September 2014 führte man dich zum Schafott und zwang damit tausende Admins weltweit ihre FreeBSD 8.x und 9.x Systeme auf pkg zu migrieren. Kein großer Aufwand, aber immerhin ein Kommando und ein gewisses Risiko. Da du Neuerungen nicht mehr im Weg stehst, werden aber sicher auch die größten Kritiker schnell überzeugt sein, dass es der richtige Schritt war. Definitiv richtiger, als noch einmal zwei Jahre auf dich und deine Zicken Rücksicht zu nehmen.

Daher, pkg_install: Es war eine schöne Zeit mit dir. Manchmal spannend, manchmal nervend. Du hast deinen Dienst für König und Vaterland getan, nun ist es Zeit für ein Leben im Jenseits. Au revoir, meine kleine Zicke.

Code:
Author: bapt
Date: Mon Sep 1 13:03:25 2014
New Revision: 366875
URL: http://svnweb.freebsd.org/changeset/ports/366875
QAT: https://qat.redports.org/buildarchive/r366875/

Log:
Remove support for pkg_install
Merge back bsd.pkgng.mk into bsd.port.mk
Add a note about @stopdaemon not being supported anymore

With hat: portmgr
Differential Revision: https://reviews.freebsd.org/D693

Deleted:
head/Keywords/pkg_install.awk
head/Mk/bsd.pkgng.mk
Modified:
head/CHANGES
head/Mk/Scripts/check-stagedir.sh
head/Mk/Uses/ncurses.mk
head/Mk/bsd.commands.mk
head/Mk/bsd.openssl.mk
head/Mk/bsd.port.mk
head/Mk/bsd.port.subdir.mk
head/astro/google-earth/Makefile
head/emulators/i386-wine-devel/Makefile.i386
head/emulators/i386-wine/Makefile.i386
head/lang/python/Makefile
head/lang/python2/Makefile
head/lang/python3/Makefile
head/net-mgmt/nagios-check_ports/Makefile
head/net-mgmt/net-snmp/Makefile
head/ports-mgmt/pkg-devel/Makefile
head/ports-mgmt/pkg/Makefile
head/ports-mgmt/portrac/Makefile
head/security/bro/Makefile
head/security/broccoli/Makefile
head/sysutils/freesbie/Makefile
 
Danke für den Beitrag :)

Dazu passt auch folgendes: The ports tree is now stage only [1]
Hi all,

The ports tree is now fully staged (only 2% has been left unstaged, marked as
broken and will be removed from the ports tree if no PR to stage them are
pending in bugzilla).

I would like to thank every committer and maintainers for their work on staging!
It allowed us to convert more than 23k packages to support stage in only 11
months!

Staging is a very important state, it allows us to right now be able to run
quality testing scripts on the packages (which already allowed to fix tons of
hidden problems) and it allows use to be able to build packages as a regular
user!


It also opens the gates to new features that users have been requesting for many
years:
- flavors
- multiple packages

Expect those features to happen in the near future.

Best regards,
Bapt on behalf of portmgr

[1] https://lists.freebsd.org/pipermail/freebsd-ports-announce/2014-September/000092.html
 
Zurück
Oben