RPM- und TGZ-Paket erzeugen mit Checkinstall
Aufgrund der Reaktionen zum Artikel »Eine Kurzeinführung in Encap« habe ich mir einmal das Programm »Checkinstall« angeschaut.
Es stellt eine weitere Möglichkeit zur Verfügung, die Kontrolle über selbstkompilierte Software im Sytem zu behalten. Außerdem wird das Erstellen von RPM- oder TGZ-Paketen aus Source-Paketen zum Kinderspiel.
Installation
Zuerst besorgt man sich die neuste Version von hier.
Nach dem Entpacken (z.B. mit dem Midnight-Commander) wechselt man ins Verzeichnis "checkinstall-[version]". Am besten liest man nochmal die Doku, die in den Dateien "INSTALL" und "README" enthalten ist. Installiert wird dann mit
make make install
Nun ist das Programm installiert und könnte von sich selber mittels "checkinstall" ein Paket erzeugen. Hier taucht jedoch ein kleines Problem auf, denn die Dateien werden nach /usr/local installiert. Bei meiner Distribution befinden sich aber /usr/local/bin und /usr/local/sbin nicht im Pfad von root. Da jedoch nur root Programme installieren darf, muß entweder die Pfadvariable entsprechend geändert werden oder symbolische Links nach /usr/sbin und /usr/bin erzeugt werden.
Den Pfad im Makefile einzustellen habe ich auch probiert, die Datei "checkinstall" konnte nun zwar ausgeführt werden, jedoch wurde das ebenfalls geänderte lib-Verzeichnis /usr/lib nicht gefunden. Also habe ich kurzentschlossen die Variante mit den Links durchgeführt. Vielleicht weiß jemand anderes ja, wie man das ganze Programm korrekt ins /usr-Verzeichnis installieren kann.
ln -s /usr/local/bin/installwatch /usr/bin/installwatch ln -s /usr/local/sbin/checkinstall /usr/sbin/checkinstall ln -s /usr/local/sbin/makepak /usr/sbin/makepak
Wenn die Pfade nun stimmen, kann "checkinstall" von sich selber ein Paket erzeugen:
checkinstall
Dadurch wird "make install" wiederholt durchgeführt und alles protokolliert. Dann wird gefragt, ob man ein TGZ oder ein RPM Paket erzeugen will. Nach der Eingabe von "R" wurde auf meinem System im Verzeichnis /usr/src/packages/RPMS/i386/ ein RPM-Paket abgelegt und selbiges auch gleich nochmal installiert. Nun ist Checkinstall eingerichtet und kann über das Paketsystem auch wieder entfernt werden.
Anwendung
Anschließend habe ich gleich noch einmal einen Test gemacht mit dem Quellpaket des Midnight-Commanders:
Nach dem Entpacken:
cd mc-4.5.54 ./configure make checkinstall
Es wird also ganz normal kompiliert, nur wird anstelle von "make install" "checkinstall" aufgerufen. Das fertige Paket landet wieder in /usr/src/packages/RPMS/i386.