Pakete Installieren für Newbies => "The Linux Way to do it"
Ziel dieses kleinen HowTos ist es, einem Einsteiger die richtige Weise nahe zu bringen, wie man sich ein bestimmtes Softwarepaket sauber und "the Linux Way" auf den Rechner bringt.
Dabei werden die häufigsten Fehler, die von Neulingen gemacht werden, angesprochen und das Prinzip und die Vorteile des Paketmanagements erläutert.
Teil 1: Die häufigsten Fehler und der Paketmanager als Lösung
Fehler Nr.1
Zu 99% ist ein Selbstkompilieren eines Paketes NICHT notwendig, meist gibt es fertige Pakete als rpm (oder deb bei Debian und Derivaten).
Wo kann man nach Paketen suchen? (und NICHT mehr!)
rpmseek.com - Die Suchmaschine für Linux rpm und Debian Pakete
RPM Search
Diese Adressen eigenen sich ausgezeichnet zum Suchen nach Paketen, nicht mehr und nicht weniger. Sonst kommt es oft zu ..
Fehler Nr.2
Recht oft wird das erstbeste Paket genommen, dessen Name zu passen scheint, oft nicht einmal für die richtige Distribution.
Ein Paket wie z.B.
kopete-0.7.5-0.92mdk.i586.rpm
ist für "Mandrake 9.2", eines wie
kopete-0.9.2-1.guru.suse92.kde33.i686.rpm
ist für SuSE 9.2 und KDE 3.3, beide werden z.B. auf einer SuSE 10.1 mit KDE 3.5.x sicher NICHT laufen.
Fehler Nr.3
Die meisten Linux-Distributionen sind sehr modular aufgebaut. Ein Paket A benötigt die Programmbibliothek libB, welche wiederum von libC abhängen kann, usw. usw.....
Statt nun die benötigten Bibliotheken libB und libC mit in das rpm-Paket zu packen, setzten die Programmierer einfach diese Paket als Abhängigeit, da es meist ein paar Bibliotheken gibt, von denen viele Pakete abhängen. So ist es cleverer (und weniger Download!), diese Bibliothek in einem extra Paket anzubieten, damit sie nur einmal installiert werden muß.
Will ich dann später Programm D installieren, welches auch von libB und/oder libC abhängt, dann muß diese nicht noch einmal heruntergeladen werden.
Das ist übrigens unter Windows nicht anders, auch dort gibt es gemeinsame Programmbibliotheken (dll-Dateien), z.B. als anschauliches Beispiel die typischen Grafikbausteine eines GUI-Fensters mit den typischen Buttons und Menüs.
Es wäre doch Unsinn, wenn jedes Programm seine eigenen Knöpfe mitbringen müsste, vor allem, wenn man doch ein möglichst einheitliches Look&Feel haben will.
Allerdings wird dieses Prinzip unter Linux deutlich mehr verwendet und konsequenter umgesetzt.
Vorteil => Zu 95% sind die selben Programmpakete bei Linux deutlich kleiner als unter Windows.
Nachteil => Wer soll diese ganzen Abhängigkeiten denn Auflösen?
Lösung => Ein intelligenter Paketmanager, den praktisch jede Distribution heutzutage bietet und der diese Arbeit übernimmt.
Teil 2: Fallbeispiel und Vorgehensweise
Fallbeispiel vlc:
Ich möchte mir den -auch unter Windows beliebten- Mediaplayer vlc für meine SuSE installieren und fange mal bei "0" an, wie es sich gehört.
0. Ich bin mir aber nicht sicher, welche SuSE-Version ich habe.
=> Ich brauche Pakete für SuSE 10.1 und 32 Bit, also i586 oder i686.
1. Ich suche mir einen passenden Kandidaten.
RPM Search Suchbegriff vlc.
Hier ein paar Treffer
Die Fett markierten kämen in Frage, alle anderen scheiden aus, weil sie entweder für eine andere SuSE-Version sind, oder aber die falsche Architektur haben (x86_64 = 64 Bit-System).
Aber => Alle Pakete scheinen von Packman zu stammen.
Schauen wir doch mal nach.
PackMan :: Startseite => Suchbegriff vlc
PackMan :: Informationen zum Paket vlc
Passt, es gibt Pakete auch für meine SuSE-Version als i586 oder i686. Das ist beides OK, das lassen wir den Paketmanager entscheiden.
Ein Blick in die Rubrik "Abhängigkeiten" zeigt uns:
=> Keine Chance, das in vernünftiger Zeit von Hand aufzulösen.
Packman-Pakete haben aber den großen Vorteil, daß sie so gebaut werden, daß bis auf Pakete, die es bei Packman selbst gibt nur Abhängigkeiten zu Paketen auftreten können, die von SuSE selbst kommen, also auf der DVD bzw. den CDs sein müssen.
=> Ich binde mir Packman als Installationsquelle ein und installiere den vlc über meinen Paketmanager, der den Rest erledigt und die zusätzlich benötigten Pakete automatisch mitinstalliert.
Ein weiterer Vorteil dieser Mehrarbeit ist, daß mir ab sofort ALLE weiteren Pakete von Packman über diesen Weg zur Verfügung stehen (und das sind eine ganze Menge).
Vorgehensweise (erklärt für Yast, APT und smart)
Dazu brauche ich eine passende Online-Quelle, hierzu gibt es eines zu sagen.
Verwendet MIRROR-Server, um die Server von SuSE zu entlasten, eine Liste von Mirrors findet ihr hier:
Mirrors Released Version - openSUSE
Mirrors Development Build - openSUSE
Ich werde im Folgenden den Mirror-Server [noparse]ftp://ftp.gwdg.de[/noparse] verwenden, bei anderen Mirrors sind die Verzeichnisse anzupassen, der Weg ist jedoch analog.
1. Yast.
a) Quelle einbinden
- Yast => Software => Installationsquelle wechseln
- Hinzufügen => URL
- Aktualisieren "AN" und Aktivieren "AN" => etwas warten, bis die Paketliste heruntergeladen wurde.
b) Installieren
Yast ==> Software ==> Software installieren
- Nach vlc suchen, ankreuzen => Übernehmen => Fertig.
Weitere Informationen zur Paketverwaltung mit Yast findet man hier:
http://www.pc-forum24.de/showthread.php?t=1132
http://www.pc-forum24.de/showthread.php?t=668
http://www.pc-forum24.de/showthread.php?t=569
2. APT
a) Quelle einbinden
Es gibt 2 Repositories, packman und packman i686.
- Als root mit einem Texteditor die Datei /etc/apt/sources.list öffnen
und folgende Zeile eintragen:
Die Reihenfolge ist dabei so gewählt, daß bei gleicher Versionsnummer das i686-Paket bevorzugt wird.
b) Installieren
Nun ein beherztes
und fertig.
Mehr zu APT und Beispiele für eine sources.list finden sich hier:
http://www.pc-forum24.de/showthread.php?t=632
http://www.pc-forum24.de/showthread.php?t=50
http://www.pc-forum24.de/showthread.php?t=678
http://www.pc-forum24.de/showthread.php?t=1016
3. smart
a) Quelle einbinden. Hier tritt eine Besonderheit und Stärke von smart auf, da dieser Paketmanager sowohl Quellen für Yast als auch für APT und noch einige weitere Formate verwenden kann. Ich werde als Beispiel ein rpm-md Repository verwenden.
Ich lege mir eine Datei "Packman.txt" mit folgendem Inhalt an.
und bestätigen.
b) Installation
fertig.
Mehr zur Einrichtung von smart findet sich hier:
http://www.pc-forum24.de/showthread.php?t=1678
Eine umfangreiche Channellliste findet sich bei Divine sowie im Linux-Club.
Smart Channel for openSUSE
Thema anzeigen - [TIP] Smart Channel SuSE-10.0 und SuSE 10.1, x86 und x86_64 - SuSE Linux
Schlußbemerkung:
Wer sich einmal die Mühe macht einen der oben genannten Paketmanager mit einer sorgfältig ausgewählten Liste von Installationsquellen einzurichten, der wird viel Spaß an seinem Linux-System haben und wenig Ärger mit der Installation von Software. Auch wenn hier die Verwendung von APT/smart auf der Kommandozeile demonstriert wird, es gibt für beide schöne. bunte GUIs (synaptic für apt und smart-gui für smart).
Greetz,
RM
Ziel dieses kleinen HowTos ist es, einem Einsteiger die richtige Weise nahe zu bringen, wie man sich ein bestimmtes Softwarepaket sauber und "the Linux Way" auf den Rechner bringt.
Dabei werden die häufigsten Fehler, die von Neulingen gemacht werden, angesprochen und das Prinzip und die Vorteile des Paketmanagements erläutert.
Teil 1: Die häufigsten Fehler und der Paketmanager als Lösung
Fehler Nr.1
STOP!Ich will *Programxyz* installieren, dazu habe ich mir *Programxyz* als tar.gz/bz2 heruntergeladen und entpackt, nun bekomme ich Fehler bei ...
Zu 99% ist ein Selbstkompilieren eines Paketes NICHT notwendig, meist gibt es fertige Pakete als rpm (oder deb bei Debian und Derivaten).
Wo kann man nach Paketen suchen? (und NICHT mehr!)
rpmseek.com - Die Suchmaschine für Linux rpm und Debian Pakete
RPM Search
Diese Adressen eigenen sich ausgezeichnet zum Suchen nach Paketen, nicht mehr und nicht weniger. Sonst kommt es oft zu ..
Fehler Nr.2
STOP!Ich will *Programxyz* installieren, dazu habe ich mir *Programxyz* als rpm bei *einer der beiden obigen Adressen* heruntergeladen, nun bekomme ich Fehler "unresolved Dependencies" oder "nicht erfüllte Abhängigkeiten" bei ......
Recht oft wird das erstbeste Paket genommen, dessen Name zu passen scheint, oft nicht einmal für die richtige Distribution.
Ein Paket wie z.B.
kopete-0.7.5-0.92mdk.i586.rpm
ist für "Mandrake 9.2", eines wie
kopete-0.9.2-1.guru.suse92.kde33.i686.rpm
ist für SuSE 9.2 und KDE 3.3, beide werden z.B. auf einer SuSE 10.1 mit KDE 3.5.x sicher NICHT laufen.
Fehler Nr.3
STOP!Ich habe für meine Distribution *Distri_Version*ein Paket *Programmname_Distri_Version*.rpm gefunden ud bekomme beim Installieren immer noch Fehler mit "unresolved Dependencies" oder "nicht erfüllte Abhängigkeiten"....
Die meisten Linux-Distributionen sind sehr modular aufgebaut. Ein Paket A benötigt die Programmbibliothek libB, welche wiederum von libC abhängen kann, usw. usw.....
Statt nun die benötigten Bibliotheken libB und libC mit in das rpm-Paket zu packen, setzten die Programmierer einfach diese Paket als Abhängigeit, da es meist ein paar Bibliotheken gibt, von denen viele Pakete abhängen. So ist es cleverer (und weniger Download!), diese Bibliothek in einem extra Paket anzubieten, damit sie nur einmal installiert werden muß.
Will ich dann später Programm D installieren, welches auch von libB und/oder libC abhängt, dann muß diese nicht noch einmal heruntergeladen werden.
Das ist übrigens unter Windows nicht anders, auch dort gibt es gemeinsame Programmbibliotheken (dll-Dateien), z.B. als anschauliches Beispiel die typischen Grafikbausteine eines GUI-Fensters mit den typischen Buttons und Menüs.
Es wäre doch Unsinn, wenn jedes Programm seine eigenen Knöpfe mitbringen müsste, vor allem, wenn man doch ein möglichst einheitliches Look&Feel haben will.
Allerdings wird dieses Prinzip unter Linux deutlich mehr verwendet und konsequenter umgesetzt.
Vorteil => Zu 95% sind die selben Programmpakete bei Linux deutlich kleiner als unter Windows.
Nachteil => Wer soll diese ganzen Abhängigkeiten denn Auflösen?
Lösung => Ein intelligenter Paketmanager, den praktisch jede Distribution heutzutage bietet und der diese Arbeit übernimmt.
Teil 2: Fallbeispiel und Vorgehensweise
Fallbeispiel vlc:
Ich möchte mir den -auch unter Windows beliebten- Mediaplayer vlc für meine SuSE installieren und fange mal bei "0" an, wie es sich gehört.
0. Ich bin mir aber nicht sicher, welche SuSE-Version ich habe.
Code:
cat /etc/SuSE-release
SUSE LINUX 10.1 (i586) OSS
VERSION = 10.1
1. Ich suche mir einen passenden Kandidaten.
RPM Search Suchbegriff vlc.
Hier ein paar Treffer
Code:
SuSE 10.X packman.iu-bremen.de/suse/10.0/x86_64/vlc-0.8.5-2.pm.8.x86_64.rpm
[B] SuSE 10.X packman.iu-bremen.de/suse/10.1/i686/vlc-0.8.5-2.pm.8.i686.rpm[/B]
SuSE 9.X packman.iu-bremen.de/suse/9.3/i686/vlc-0.8.5-2.pm.8.i686.rpm
SuSE 10.X packman.iu-bremen.de/suse/10.0/i686/vlc-0.8.5-2.pm.8.i686.rpm
[B]SuSE 10.X packman.iu-bremen.de/suse/10.1/i586/vlc-0.8.5-2.pm.8.i586.rpm[/B]
SuSE 9.X packman.iu-bremen.de/suse/9.3/i586/vlc-0.8.5-2.pm.8.i586.rpm
Aber => Alle Pakete scheinen von Packman zu stammen.
Schauen wir doch mal nach.
PackMan :: Startseite => Suchbegriff vlc
PackMan :: Informationen zum Paket vlc
Passt, es gibt Pakete auch für meine SuSE-Version als i586 oder i686. Das ist beides OK, das lassen wir den Paketmanager entscheiden.
Ein Blick in die Rubrik "Abhängigkeiten" zeigt uns:
Code:
Abhängigkeiten:
libdvbpsi4: libdvbpsi4-0.1.5-1.pm.1.i586.rpm
libmpcdec: libmpcdec-1.2.2-1.pm.2.i586.rpm
mad: mad-0.15.1b-1.pm.3.i586.rpm
libdca: libdca-0.0.2-1.i586.rpm
faad2: faad2-2.5-0.pm.2.i586.rpm
speex: speex-1.1.99_1.2beta1-0.pm.0.i586.rpm
libcddb: libcddb-1.3.0-0.pm.0.i586.rpm
xvid: xvid-1.1.2-0.pm.0.i586.rpm
x264: x264-0.0svn20061031-1.i586.rpm
ffmpeg: libffmpeg0-0.4.9-8.pm.svn20061008.i586.rpm
Packman-Pakete haben aber den großen Vorteil, daß sie so gebaut werden, daß bis auf Pakete, die es bei Packman selbst gibt nur Abhängigkeiten zu Paketen auftreten können, die von SuSE selbst kommen, also auf der DVD bzw. den CDs sein müssen.
=> Ich binde mir Packman als Installationsquelle ein und installiere den vlc über meinen Paketmanager, der den Rest erledigt und die zusätzlich benötigten Pakete automatisch mitinstalliert.
Ein weiterer Vorteil dieser Mehrarbeit ist, daß mir ab sofort ALLE weiteren Pakete von Packman über diesen Weg zur Verfügung stehen (und das sind eine ganze Menge).
Vorgehensweise (erklärt für Yast, APT und smart)
Dazu brauche ich eine passende Online-Quelle, hierzu gibt es eines zu sagen.
Verwendet MIRROR-Server, um die Server von SuSE zu entlasten, eine Liste von Mirrors findet ihr hier:
Mirrors Released Version - openSUSE
Mirrors Development Build - openSUSE
Ich werde im Folgenden den Mirror-Server [noparse]ftp://ftp.gwdg.de[/noparse] verwenden, bei anderen Mirrors sind die Verzeichnisse anzupassen, der Weg ist jedoch analog.
1. Yast.
a) Quelle einbinden
- Yast => Software => Installationsquelle wechseln
- Hinzufügen => URL
Code:
ftp://ftp.gwdg.de/pub/linux/misc/packman/suse/10.1
b) Installieren
Yast ==> Software ==> Software installieren
- Nach vlc suchen, ankreuzen => Übernehmen => Fertig.
Weitere Informationen zur Paketverwaltung mit Yast findet man hier:
http://www.pc-forum24.de/showthread.php?t=1132
http://www.pc-forum24.de/showthread.php?t=668
http://www.pc-forum24.de/showthread.php?t=569
2. APT
a) Quelle einbinden
Es gibt 2 Repositories, packman und packman i686.
- Als root mit einem Texteditor die Datei /etc/apt/sources.list öffnen
Code:
sudo kate /etc/apt/sources.list #KDE
sudo gedit /etc/apt/sources.list #GNOME
sudo vi /etc/apt/sources.list #Hardcore-User *SCNR*
Code:
rpm ftp://ftp.gwdg.de/pub/linux/suse/apt/ SuSE/10.1-i386 packman-i686 packman
b) Installieren
Nun ein beherztes
Code:
sudo apt update
sudo apt install vlc
Mehr zu APT und Beispiele für eine sources.list finden sich hier:
http://www.pc-forum24.de/showthread.php?t=632
http://www.pc-forum24.de/showthread.php?t=50
http://www.pc-forum24.de/showthread.php?t=678
http://www.pc-forum24.de/showthread.php?t=1016
3. smart
a) Quelle einbinden. Hier tritt eine Besonderheit und Stärke von smart auf, da dieser Paketmanager sowohl Quellen für Yast als auch für APT und noch einige weitere Formate verwenden kann. Ich werde als Beispiel ein rpm-md Repository verwenden.
Ich lege mir eine Datei "Packman.txt" mit folgendem Inhalt an.
Code:
[packman]
type = rpm-md
name = Packman 3rd Party Package Repository
baseurl = ftp://ftp.gwdg.de/pub/linux/misc/packman/suse/10.1
Code:
sudo smart channel --add /Pfad/zur/Datei/Packman.txt
b) Installation
Code:
sudo smart update
sudo smart install vlc
Mehr zur Einrichtung von smart findet sich hier:
http://www.pc-forum24.de/showthread.php?t=1678
Eine umfangreiche Channellliste findet sich bei Divine sowie im Linux-Club.
Smart Channel for openSUSE
Thema anzeigen - [TIP] Smart Channel SuSE-10.0 und SuSE 10.1, x86 und x86_64 - SuSE Linux
Schlußbemerkung:
Wer sich einmal die Mühe macht einen der oben genannten Paketmanager mit einer sorgfältig ausgewählten Liste von Installationsquellen einzurichten, der wird viel Spaß an seinem Linux-System haben und wenig Ärger mit der Installation von Software. Auch wenn hier die Verwendung von APT/smart auf der Kommandozeile demonstriert wird, es gibt für beide schöne. bunte GUIs (synaptic für apt und smart-gui für smart).
Greetz,
RM