APT4RPM

Aus Linupedia.org
Wechseln zu: Navigation, Suche
Apt-rpm.png
Synaptic.jpg
APT-Frontend Synaptic 0.57.2 unter openSUSE 10.2
Basisdaten
Entwickler: Gustavo Niemeyer, Panu Matilainen. Alfredo K. Kojima
Aktuelle Version: 0.5.15
letzte Veröffentlichung: ?
Betriebssystem: Linux
Kategorie: Paketmanager
Lizenz: GNU General Public License
Deutschsprachig: ja
Webseite: apt4rpm-Projektseite
Diese Anleitung setzt die Kenntnis folgender Artikel vorraus:
  • Umgang mit Editoren wie den Microsoft Editor oder Notebook, idealerweise 'kate'
  • rpm mit YaST oder 'von Hand' installiert haben.
  • Umgang mit der Konsole

Warum apt?

Unter Linux werden Programme in sogenannten Paketen gehandhabt. Und da der gemeine Linuxer faul ist, bringt nicht jedes Programm alles mit, was es benötigt, sondern nur eine Liste, was es gerne auf dem System hätte, um zu funktionieren. Wenn nun von dieser Wunschliste Pakete nicht von der Distribution bereitgestellt werden können/dürfen/wollen, dann kommt es zu Abhängigkeitskonflikten und das gewünschte Paket lässt sich nicht installieren. Zwar löst auch yast diese Abhängigkeiten auf, aber erstmal nur mit den Paketen die auch auf den CDs/DVDs zu finden sind. Man kann zwar z. B. suser-guru und packman auch als zusätzliche Installationsquelle anlegen, apt bietet aber eine noch viel größere Auswahl an Paketquellen, hier Repository genannt (trifft ab openSUSE 10.2 nicht mehr zu).

Und da wir ja die große Auswahl haben wollen installieren wir uns apt.

Ist apt nicht unsicher?

Wir verlassen hier allerdings den 'sicheren Hafen' Suse und die Software die dann installierbar ist kommt nicht mehr unbedingt von Suse und ist von Suse nicht abgesegnet. Offizielle SUSE-10.0-Repositories sind base, extra, java, update und security, alle anderen Repositories sind NICHT von Suse freigegeben. Wer das nicht will sollte bei you/yast mit den bekannten Einschränkungen/Nachteilen bleiben! 'apt' ist nicht unbedingt für Leute geeignet, die vor 10 Minuten ihre erste Distribution auf die Platte gezaubert haben. Ein wenig sollte man schon Erfahrungen gesammelt haben, wie das mit den Paketen bei einem rpm-basierten System abläuft. Allerdings traue ich jedem, der schon mal den 'Editor' unter Windows benutzt hat und einigermaßen wachen Verstandes ist, es zu, diese Anleitung nachvollziehen zu könnnen.

Installation

Apt per "Knopfdruck installieren"

Hier mal etwas für die etwas "Fauleren" unter uns.

Dank Sébastien Corot kann nun APT per Script installiert werden. Das Script holt die erforderlichen rpms für deine suse Version und System Architektur. Dies liefert eine annehmbare sources.list und holt alle rpmkeys. Sobald das Script durchgelaufen ist, kann mit APT gearbeitet werden!

  • Das Script gibts hier:

http://linux01.gwdg.de/~apt4rpm

  • Und jetzt gibt es das script sogar als RPM. Und wie man es benutzt wird dort auch beschrieben:


Hinweis:

Die apt.conf sollte auf jeden Fall nochmal per Hand korrigiert werden! Denn dort ist der Kernel nicht auf Hold gesetzt. Dieses ist weiter unten genau beschrieben, und sollte unbedingt beachtet werden.




Standardinstallation

Hier mal die Vorgehensweise für die Suse 10.0 (i386, für 64bit gilt die Anleitung zwar auch in der Form, allerdings ist meine sources.list (s.u.) nicht für 64bit-Systeme geeignet):

apt ist zumindest als Kommmandozeilenprogramm bei der 10.0 schon auf den Installationsmedien dabei, bei der Kaufversion ist auch die graphische Oberfläche 'synaptic' schon mit auf den Installationsmedien verewigt. Da wir aber 'synaptic' gleich zur Übung mit apt installieren wollen wählen wir im yast unter Software installieren nur 'apt' aus. Bitte nicht 'apt4rpm' nehmen. Das Paket heißt nur 'apt'.


Ergänzung für Suse 9.3 und Suse 10.1

Ihr benötigt 'apt' und 'apt-libs' aus diesem Verzeichnis:

32bit:
ftp://ftp4.gwdg.de/pub/linux/suse/apt/SuSE/9.3-i386/RPMS.suser-rbos

leider ist apt bei der 9.3 nicht von Suse beigelegt worden, die Pakete müssen also 'zu Fuß' installiert werden. Das Paket synaptic findet ihr ebenfalls in diesem Repository.

Für SuSE 10.1 bitte diese Pakete installieren:

32bit:
http://software.opensuse.org/download/home:/rbos/SL-10.1_i586/i586/apt-0.5.15lorg3.2-34.1.i586.rpm 
http://software.opensuse.org/download/home:/rbos/SL-10.1_i586/i586/apt-libs-0.5.15lorg3.2-34.1.i586.rpm 

64bit:
http://repos.opensuse.org/home:/rbos/SL-10.1_x86_64/x86_64/apt-0.5.15lorg3.2-12.2.x86_64.rpm
http://repos.opensuse.org/home:/rbos/SL-10.1_x86_64/x86_64/apt-libs-0.5.15lorg3.2-12.2.x86_64.rpm

Die Installation dann bitte für beide Pakete gleichzeitig ausführen:

32bit:
rpm -Uvh apt-05.15lorg3.2-12.1.i586.rpm apt-libs-05.15lorg3.2-12.2.i586.rpm
64bit:
rpm -Uvh apt-05.15lorg3.2-12.2.x86_64.rpm apt-libs-05.15lorg3.2-12.2.x86_64.rpm

Eine sources.list für Eure Distribution und Versionsnummer findet hier im Wiki: Repository Listen für Apt(eine der beiden Links könnnte man streichen, bzw. schauen, in wieweit, http://www.linux-club.de/viewtopic.php?t=44774 im Wiki eingefügt ist)


Hier kann man auch gleich sehen, das YaST auch Abhängigkeiten auflösen kann, denn apt-libs werden gleich mit ausgewählt. Also installieren wir die Pakete.

Die sources.list

Mit der Tastenkombination ALT-F2 und dort mit der Eingabe von

kdesu kate /etc/apt/sources.list 

den Editor kate mit Root-Rechten auf. Durch die Übergabe von /etc/apt/sources.list wird dann auch direkt das Herz von apt geöffnet, die 'sources.list'

Unter gnome sollte alternativ dieser Befehl funktionieren:

gnomesu gedit /etc/apt/sources.list

In dieser Datei sind alle Programmquellen aufgelistet, auf die apt zugreifen kann. Da diese Liste nur als Beispiel dient und meiner Meinung nach keine 'gute Liste' ist sollten wir die noch anpassen. Eine sources.list für Eure Distribution und Versionsnummer findet hier im Wiki: Repository Listen für Apt


Bitte auch unbedingt die Anmerkungen zu den einzelnen Quellen, den sog. Repositories beachten. Die sources.list dort ist eigentlich sehr sicher zusammengestellt, es könnte aber sein, das ihr noch andere Quellen als nützlich oder unnütz erachtet. Dann müsst ihr in der sources.list das #-Zeichen am Anfang einer Zeile entfernen, danach wird dieses Repository 'scharf' geschaltet, wenn ihr ein # setzt wird es entsprechend deaktiviert. Aber für den Anfang sollte die Liste gut sein. Wir speichern jetzt die sources.list.

Anpassung der apt.config

Mit einem Editor z.B. kate öffnen wir die Datei:

/etc/apt/apt.conf.d/apt.conf 

Dort fügen wir über der Zeile

ignore {"gpg-pubkey"; }; 

folgendes ein:

Hold { "kernel-smp"; "kernel-default"; "kernel-source"; };   

Bitte kopiert diesen Text hier raus, denn es kommt auf jedes Leerzeichen an. Mit dieser Änderung verhindern wir, das kernel-updates über apt installiert werden.

Achtung:

Der Kernel sollte aus dem Grunde auf Hold gesetzt sein, da unterschiedliche default-kernel z.B. der Jengelh-Kernel über apt verfügbar sind, steht ein anderer default-kernel zur Verfügung, so kann dieses zu einem unerwünschten Update kommen, da ein bestimmter default-kernel für das eigene System genutzt wird. kernel-updates lassen sich gewollt auch "per Hand" über apt updaten.




Ich persönlich lasse kernel-updates noch vom YastOnlineUpdate (=YOU) vornehmen, alles andere läuft allerdings über apt, denn apt bringt auch die Updates mit, die über YOU geliefert werden. Grundsätzlich sollte man sich für ein System Updates zu installieren entscheiden, ein Nebeneinander von you und apt kann zu Problemen führen.

Wir schließen kate und wagen uns auf die Kommandozeile. Hier werden wir mit der Eingabe von 'su' zum Systemverwalter root. Das System fragt nach dem Passwort, welches wir blind eingeben, es erfolgt keine Rückmeldung, wenn wir das PW eintippen. Nicht verwirren lassen! Wenn eine Internetverbindung steht geben wir ein:

apt update

Dadurch werden die in der sources.list 'scharf' geschalteten Repositories abgefragt, was sie so anzubieten haben. Dies sollte man immer machen, bevor man neue Pakete installieren will, damit auch die aktuellste Programm-Version geladen wird.

rpm-key installieren

Wenn das durchgelaufen ist laden wir die ersten Pakete rein: Die Eingabe von

apt --no-checksig install rpmkey* 

installiert die digitalen Schlüssel der Paketersteller, mit denen diese ihre Pakete signieren. Mit Hilfe der Schlüssel kann sichergestellt werden, das ein Paket aus einer bestimmten Quelle kommt und während des Downloads nicht beschädigt wurde. Deshalb würde ich die Prüfung immer aktiviert lassen, auch wenn man die abschalten kann und einige es empfehlen die 'nervige' Prüfung auszuschalten. Mir hat das mal bei einem Update den Hals gerettet, weil bei einem sehr wichtigen Paket die Signatur durch einen fehlerhaften Download falsch war und das Paket daher nicht eingespielt wurde.

Da aber die Schlüssel noch nicht im System sind müssen wir die Prüfung auf die digitalen Schlüssel mit '--no-checksig' umgehen.

Leider liegen nicht alle Schlüssel in Form eines rpm-Paketes vor. Diese sollte man aber auch noch übernehmen. Einige der gebräuchlichsten keys sind hier aufgeführt. Einfach den ganzen Block in eine root-Konsole kopieren und die letzte Zeile mit Enter abschließen.

rpm --import http://suse.osuosl.org/people/kraxel/8690E4BE-kraxel-gpg-key.asc 
rpm --import http://suse.osuosl.org/people/kraxel/8750D2C4-kraxel-gpg-key-old.asc 
rpm -Uvh http://folk.uio.no/oeysteio/apt/suse/rpmkey-oystein-1.0-4.noarch.rpm 
rpm --import http://www.version6.net/apt/gpg-pubkey-624dc562-41b8bcbe.asc 
rpm --import http://www.jpackage.org/jpackage.asc 
rpm --import http://ftp.suse.com/pub/projects/samba/414A57C3-lmuelle-gpg-key.asc 
rpm --import ftp://ftp4.gwdg.de/pub/linux/misc/suser-jengelh/gpg-pubkey-844C4360.asc
rpm --import http://www.skype.com/download/skype/linux/rpm-public-key.asc 
rpm --import http://download.opengroupware.org/nightly/packages/RPM-GPG-KEY.opengroupware 

Nun sollten alle bekannten rpmkeys installiert sein und künftige Installationen werden dann mit den Schlüsseln abgeglichen.

Installation von Paketen ohne Signatur

Falls doch mal ein Paket ohne oder mit einer unbekannten Signatur dazwischen rutscht und der Schlüssel nicht aufzutreiben ist, dann sollte man überlegen, ob man es trotzdem benötigt. Ganz aktuelle OpenOffice-Pakete sind z. B. nicht signiert, warum auch immer. Diese Pakete würden dann wie die Schlüssel mit

apt --no-checksig install paketname 

eingespielt

Oder:

apt --no-checksig upgrade

wenn man ein Upgrade machen will, welches zu viele Pakete ohne Signatur enthält, die aber installiert werden sollen.

Wie funktionert apt nun?

Jetzt schreiten wir zur Tat und installieren das erste 'richtige' Programm. Ein guter Kandidat ist 'synaptic'. Damit kann man apt mit einer graphischen Oberfläche bedienen. (synaptic gibt es zur Zeit nicht für Suse 10.1, ein Versuch das zu installieren wird also ins Leere laufen.)

Ein

apt install synaptic

sollte das Programm auf die Platte zaubern. Weitere Pakte werden dann mit

apt install PAKETNAME

installiert. Dieser Befehl funktioniert auch für ein Update eines einzelnen Paketes. apt bzw. realisiert dann, dass das entsprechende Paket bereits installiert ist und führt dann ein Update durch.

Aber wenn man schon mal dabei ist, kann man auch auf Wunsch (und bei einer dicken Leitung in's Internet) auch noch mit

apt upgrade

das ganze System auf den aktuellsten Stand bringen. Dabei kommt es allerdings dazu, das SEHR viele Pakete zugleich auf den Rechner gespült werden. Bei Problemen ist es dann recht schwer, den Fehler einzukreisen. Daher empfehle ich dieses Vorgehen für Anfänger nicht.

Falls Probleme auftauchen, die meisten Fehlermeldungen wurden in einem Thread hier zusammengefasst:

Bei lustig fällt mir noch ein: Gebt mal

apt moo

in der Kommandozeile ein. Muss auch nicht als root sein.

GUIs für apt

synaptic - als rpm verfügbar (apt-get install synaptic) oder http://www.nongnu.org/synaptic/

kynaptic - ewtas für KDE-Fans, nicht ganz so mächtig wie synaptic, aber arbeitet ebenfalls. Gibt es als fertiges rpm kynaptic

kpackage - gehört zum Lieferumfang von KDE und unterstützt apt als Debianquellen, auch wenn dank apt unter SuSE/OpenSuSE/openSUSE eigentlich rpm Pakete installiert werden.

apt-iselect - siehe apt-Forum

ansonsten gibt es noch eineige nette apt-Erweiterungen ==> bei freshmeat.net suchen.

Wichtig:

Damit synaptic bzw kynaptic mit apt installiert werden kann, muss das Repository suser-rbos in der sources.list aufgenommen werden.


Kurzeinweisung synaptic

synaptic funktioniert dann analog: Neu laden entspricht dem 'apt update', 'Aktualisierungen vormerken' entspricht einem 'apt -s upgrade' (Eine Simulation, was würde passieren wenn...) und Anwenden ist ein 'apt upgrade' oder wenn nur ein bestimmtes Paket gewählt wurde ein 'apt install' Synaptic findet man im 'Startmenü' unter System -> Konfiguration -> Synaptic

Dann mal 'Lustiges updaten/installieren mit apt und synaptic'!

Tips und Tricks

Abschließend noch ein paar Kniffe bezüglich 'apt':

  • Wenn es bei der Benutzung von synaptic zu der Situation kommt, das ein fehlender Schlüssel angemeckert wird, dann hat Synaptic die dumme Eigenschaft, das auch durch nachträgliche Umstelllung auf 'Nicht auf Signaturen prüfen' eine Installation über Synaptic nicht mehr möglich ist.

Man muss dann über die Konsole mit der Option '--no-checksig' (siehe HowTo) installieren.

  • Man kann mit apt auch rpm-Pakete installieren, die man von außerhalb erhalten hat. Das hat den Vorteil, das etwaige Abhängigkeiten wieder von apt gehandhabt werden können.
apt install /pfad/zum/heruntergeladenen/rpm.rpm

und apt kümmert sich wieder um die Abhängigkeiten. Zum Beispiel im Fall von skype kann man das so machen. Dann kommt auch der skype-rpm-key zum Einsatz, der in der Liste der Schlüssel aufgeführt ist.

  • Wenn man nur so ungefähr weiß, wie ein Paket heißt oder man sucht eine bestimmte Datei aus einem Paket kann man mit
apt search SUCHBEGRIFF

die Paketquellen nach dem gesuchten Begriff durchforsten.

  • Wenn man schnell sehen will, woher ein Paket stammt und welche Version zur Zeit installiert ist hilft ein
apt policy PAKETNAME

weiter.

Update und upgrade können auch zusammengefasst werden:

apt-get update && apt-get upgrade

Entfernen von Paketen, ohne deren Abhänggkeit:

apt-get remove paketname

Entfernt alle Pakete welche nur von paketname gebraucht wurden und das Paket paketname

apt -R remove paketname


Alle Pakete auf den neusten Stand bringen:

apt-get dist-upgrade

Suchwort sucht nach Programmen:

apt-cache search SUCHBEGRIFF

APT das REPOMD (REPODATA) versteht

Richard Bos, der "Packager" der apt-Tools für SUSE, stellt im neuen SUSE-Build-Server seine Pakete in einer neuen Version bereit, die nicht mehr unbedingt auf die "künstlich" erstellten APT-Repositories bei der GWDG angewiesen ist, sondern auch das repomd-Format versteht, das im SUSE Build-Server automatisch gleich mit erzeugt wird.

Damit kann man in der sources.list alles hinzufügen, was so im Build-Server gebraten wird.

Beispiel für sources.list:

repomd http://software.opensuse.org/download/KDE:/KDE3 <Komponente>
repomd http://software.opensuse.org/download/KDE:/Backports <Komponente>

wobei <Komponente> derzeit für eins von diesen steht:

SUSE_Linux_9.3
SUSE_Linux_10.0
SUSE_Linux_10.1

(diese beiden repomd-Einträge sind zusammen genau der Ersatz für das weggefallene APT-Repository kde bzw. kde3-stable.)

Die neuen apt-Pakete von Richard Bos liegen unter

für SUSE 9.3, 10.0 und 10.1, jeweils für i586 und x86_64.

openSUSE:
10.2


Achtung: Es müssen UNBEDINGT die Pakete apt und apt-libs ZUSAMMEN aktualisiert werden!

Die richtigen beiden Pakete downloaden, dann

rpm -Uhv apt-0.5.15lorg* apt-libs-0.5.15lorg3*

und dann in der sources.list entsprechend die "repomd"-Zeilen hinzufügen.


siehe auch

Quellen und weiterführende Links

Editorentabelle

Editorentabelle

Autoren: Grothesk, }-Tux-{ , oc2pus, pawe


Ergänzungsautor:


Lektor:


Designer: Yehudi


Bilder:


Dank an:


Wenn Du möchtest, dass Deine Arbeit wie die des Ursprungsautoren gewürdigt wird, trage Dich in dieser Tabelle entsprechend ein.


Zurück zur Paketmanager-Übersicht