SRC RPMs installieren mit apt und/oder rpm: Unterschied zwischen den Versionen

Aus Linupedia.org
Wechseln zu: Navigation, Suche
K (Kategorie angepasst da nun die Kategorie Paketmanager mit Unterkategorien existiert)
(kleine Überarbeitung, Lizenz, Baustein)
 
(2 dazwischenliegende Versionen von einem anderen Benutzer werden nicht angezeigt)
Zeile 1: Zeile 1:
 
Dieses Howto ist nach besten Wissen und Gewissen geschrieben, trotzdem übernehme ich keinerlei Haftung auf Richtigkeit oder Vollkommenheit.  
 
Dieses Howto ist nach besten Wissen und Gewissen geschrieben, trotzdem übernehme ich keinerlei Haftung auf Richtigkeit oder Vollkommenheit.  
  
'''1.''' Voraussetzungen  
+
== Voraussetzungen ==
 +
  
 
Wenn man das Howto mit apt machen will, benötigt man logischerweise ein funktionierendes apt und man muss wissen wie man die sources.list bearbeitet. Ansonsten sind alle nötigen Tools im Paket rpm, was auf jedem Suse-System installiert ist.  
 
Wenn man das Howto mit apt machen will, benötigt man logischerweise ein funktionierendes apt und man muss wissen wie man die sources.list bearbeitet. Ansonsten sind alle nötigen Tools im Paket rpm, was auf jedem Suse-System installiert ist.  
  
'''2.''' Vorbemerkung  
+
== Vorbemerkung ==
  
 
Wir arbeiten hier fast ausschließlich als normaler Benutzer, da so das System vor Beschädigungen besser geschützt ist.  
 
Wir arbeiten hier fast ausschließlich als normaler Benutzer, da so das System vor Beschädigungen besser geschützt ist.  
  
'''3.''' Erstellen der notwendigen Verzeichnisse  
+
 
 +
== Erstellen der notwendigen Verzeichnisse ==
  
 
Das machen wir so:
 
Das machen wir so:
Zeile 18: Zeile 20:
 
mkdir -p erstellt, wenn nötig, die fehlenden Unterverzeichnisse, somit muss man nicht jedes Verzeichnis einzeln erstellen. Die Tilde "~" am Anfang ist ein Ersatz für den Pfad zum Verzeichnis des Benutzers, der den Befehl aufruft. Bei mir ist "~" gleichbedeutend mit "/home/daniel".  
 
mkdir -p erstellt, wenn nötig, die fehlenden Unterverzeichnisse, somit muss man nicht jedes Verzeichnis einzeln erstellen. Die Tilde "~" am Anfang ist ein Ersatz für den Pfad zum Verzeichnis des Benutzers, der den Befehl aufruft. Bei mir ist "~" gleichbedeutend mit "/home/daniel".  
  
'''4.''' Setzen der RPM-Macros  
+
== Setzen der RPM-Macros ==
  
 
RPM-Macros sind vergleichbar mit Variablen. Benutzerspezifische Macros werden in der ~/.rpmmacros gesetzt. Man setzt sie so:
 
RPM-Macros sind vergleichbar mit Variablen. Benutzerspezifische Macros werden in der ~/.rpmmacros gesetzt. Man setzt sie so:
Zeile 38: Zeile 40:
 
_topdir ist nötig, da wir die Pakete in einem anderen Verzeichnis als standardmäßig (/usr/src/packages), wo meist nur root Zugriff hat, erstellen.  
 
_topdir ist nötig, da wir die Pakete in einem anderen Verzeichnis als standardmäßig (/usr/src/packages), wo meist nur root Zugriff hat, erstellen.  
  
'''5.''' Abhängigkeiten auflösen  
+
== Abhängigkeiten auflösen ==
  
'''5.1''' mit RPM  
+
=== mit RPM ===
  
 
Wenn man kein apt verwendet muss das .src.rpm lokal auf dem Computer vorliegen. Deshalb ist es bei diesem Schritt Voraussetzung, dass das .src.rpm schon heruntergeladen wurde.  
 
Wenn man kein apt verwendet muss das .src.rpm lokal auf dem Computer vorliegen. Deshalb ist es bei diesem Schritt Voraussetzung, dass das .src.rpm schon heruntergeladen wurde.  
Zeile 50: Zeile 52:
 
Erhält man die Pakete, die man zum Kompilieren des .src.rpm's benötigt.  
 
Erhält man die Pakete, die man zum Kompilieren des .src.rpm's benötigt.  
  
'''5.2''' mit apt  
+
mit apt  
  
 
Zuerst muss man das Repository mit dem gewünschten Paket in der sources.list eingetragen haben oder auch nicht, wenn man das Paket schon heruntegeladen hat. (Mit "apt-cache policy paket" bekommt man die möglichen Repositories in denen das gewünschte .src.rpm liegen kann.)  
 
Zuerst muss man das Repository mit dem gewünschten Paket in der sources.list eingetragen haben oder auch nicht, wenn man das Paket schon heruntegeladen hat. (Mit "apt-cache policy paket" bekommt man die möglichen Repositories in denen das gewünschte .src.rpm liegen kann.)  
Zeile 64: Zeile 66:
 
Damit werden alle benötigten Pakete heruntergeladen.  
 
Damit werden alle benötigten Pakete heruntergeladen.  
  
'''6.''' Kompilieren des .scr.rpm's und Erstellen des Binary-RPM's  
+
== Kompilieren des .scr.rpm's und Erstellen des Binary-RPM's ==
  
'''6.1''' mit RPM  
+
=== mit RPM ===
  
 
Zum Bauen des .src.rpm's genügt ein:
 
Zum Bauen des .src.rpm's genügt ein:
Zeile 74: Zeile 76:
 
Mit --with=<option> bzw. --without=<option> kann man wie beim ./configure bei .tar.gz's Optionen aktivieren/deaktivieren.  
 
Mit --with=<option> bzw. --without=<option> kann man wie beim ./configure bei .tar.gz's Optionen aktivieren/deaktivieren.  
  
'''6.2''' mit apt  
+
=== mit apt ===
  
 
  apt-get --compile source paketname
 
  apt-get --compile source paketname
Zeile 82: Zeile 84:
 
  apt-get --compile source /pfad/zum/paket/paketname.src.rpm
 
  apt-get --compile source /pfad/zum/paket/paketname.src.rpm
  
'''6.3''' Fehler durch nicht aufgelöste Abhängigkeiten  
+
=== Fehler durch nicht aufgelöste Abhängigkeiten ===
  
 
Es kann sein, dass bei einigen .src.rpm's die Abhängigkeiten nicht vollständig sind, deshalb entweder bei diesem Schritt darauf achten, welche Pakete als fehlend gemeldet werden oder besser noch auf der Homepage des Projekts nach den nötigen Pakete erkundigen, da im .src.rpm normalerweise die Originalsourcen !!!  
 
Es kann sein, dass bei einigen .src.rpm's die Abhängigkeiten nicht vollständig sind, deshalb entweder bei diesem Schritt darauf achten, welche Pakete als fehlend gemeldet werden oder besser noch auf der Homepage des Projekts nach den nötigen Pakete erkundigen, da im .src.rpm normalerweise die Originalsourcen !!!  
  
'''7.''' Installieren des fertigen RPM's  
+
== Installieren des fertigen RPM's ==
 
+
 
Den Namen mit dem kompletten Pfad des Pakets erhält man ca. 15 Zeilen vor dem Ende der Ausgabe in der Zeile, dei mit Wrote: beginnt.  
 
Den Namen mit dem kompletten Pfad des Pakets erhält man ca. 15 Zeilen vor dem Ende der Ausgabe in der Zeile, dei mit Wrote: beginnt.  
 
Z.B.
 
Z.B.
Zeile 93: Zeile 95:
 
  Wrote: /home/daniel/packages/RPMS/i586/synaptic-0.55.3-suse092.daniel.i586.rpm
 
  Wrote: /home/daniel/packages/RPMS/i586/synaptic-0.55.3-suse092.daniel.i586.rpm
  
'''7.1''' mit rpm  
+
=== mit rpm ===
  
 
  sudo rpm -Uvh packages/RPMS/iX86/paketname-0.suse092.daniel.iX86.rpm
 
  sudo rpm -Uvh packages/RPMS/iX86/paketname-0.suse092.daniel.iX86.rpm
  
'''7.2''' mit apt  
+
=== mit apt ===
 +
  
 
  sudo apt-get install packages/RPMS/iX86/paketname-0.suse092.daniel.iX86.rpm
 
  sudo apt-get install packages/RPMS/iX86/paketname-0.suse092.daniel.iX86.rpm
  
'''8.''' Schlussbemerkung  
+
== Schlussbemerkung ==
 +
  
 
Man kann, wenn man will auch rpm und apt mischen. Z.B. kann man die Abhängigkeiten mit apt lösen und das Paket dann mit rpmbuild bauen, da man mit apt keine Optionen, die den Kompiliervorgang betreffen, übergeben/ändern kann.  
 
Man kann, wenn man will auch rpm und apt mischen. Z.B. kann man die Abhängigkeiten mit apt lösen und das Paket dann mit rpmbuild bauen, da man mit apt keine Optionen, die den Kompiliervorgang betreffen, übergeben/ändern kann.  
Zeile 109: Zeile 113:
  
 
daniel2000
 
daniel2000
 
 
  
 
----
 
----
[[RPM|Zurück zur RPM Übersicht]]<br/>
+
[[Paketmanager|Zurück zur Paketmanager-Übersicht]]<br/>
[[APT|Zurück zur Apt Übersicht]]<br/>  
 
 
[[Category:RPM]]
 
[[Category:RPM]]
 
[[Category:APT]]
 
[[Category:APT]]
 +
{{LinWiki}}

Aktuelle Version vom 24. Juni 2007, 16:36 Uhr

Dieses Howto ist nach besten Wissen und Gewissen geschrieben, trotzdem übernehme ich keinerlei Haftung auf Richtigkeit oder Vollkommenheit.

Voraussetzungen

Wenn man das Howto mit apt machen will, benötigt man logischerweise ein funktionierendes apt und man muss wissen wie man die sources.list bearbeitet. Ansonsten sind alle nötigen Tools im Paket rpm, was auf jedem Suse-System installiert ist.

Vorbemerkung

Wir arbeiten hier fast ausschließlich als normaler Benutzer, da so das System vor Beschädigungen besser geschützt ist.


Erstellen der notwendigen Verzeichnisse

Das machen wir so:

mkdir -p ~/packages/SOURCES ~/packages/SRPMS ~/packages/BUILD ~/packages/SPECS ~/packages/RPMS/i386 ~/packages/RPMS/athlon ~/packages/
RPMS/i486 ~/packages/RPMS/i586 ~/packages/RPMS/i686 ~/packages/RPMS/noarch

mkdir -p erstellt, wenn nötig, die fehlenden Unterverzeichnisse, somit muss man nicht jedes Verzeichnis einzeln erstellen. Die Tilde "~" am Anfang ist ein Ersatz für den Pfad zum Verzeichnis des Benutzers, der den Befehl aufruft. Bei mir ist "~" gleichbedeutend mit "/home/daniel".

Setzen der RPM-Macros

RPM-Macros sind vergleichbar mit Variablen. Benutzerspezifische Macros werden in der ~/.rpmmacros gesetzt. Man setzt sie so:

%macroname         wert

Aufrufen kann man Macro's mit %{macroname}.

In meiner ~/.rpmmacros steht im Moment:

# SuSE Release 
%suserel        0.suse092-daniel 

# Buildroot 
%_topdir        ~/packages

Das Macro suserel wird bei den .src.rpm der suser-* Repositories benutzt. Dieser Text erscheint dann auch, je nach .src.rpm, im endgültigen Namen. z.B. synaptic-0.55.3-0.suse092-daniel.i586.rpm . Dieses Macro ist kein Standardmacro (weder von rpm direkt noch von Suse) und Macro's haben nur eine Wirkung, wenn sie im SPEC-File des .src.rpm benutzt werden. Deshalb kann es sein, dass es bei einigen .src.rpm's keinerlei Wirkung hat.

_topdir ist nötig, da wir die Pakete in einem anderen Verzeichnis als standardmäßig (/usr/src/packages), wo meist nur root Zugriff hat, erstellen.

Abhängigkeiten auflösen

mit RPM

Wenn man kein apt verwendet muss das .src.rpm lokal auf dem Computer vorliegen. Deshalb ist es bei diesem Schritt Voraussetzung, dass das .src.rpm schon heruntergeladen wurde.

Mit

rpm -qRp name-des-Pakets.src.rpm

Erhält man die Pakete, die man zum Kompilieren des .src.rpm's benötigt.

mit apt

Zuerst muss man das Repository mit dem gewünschten Paket in der sources.list eingetragen haben oder auch nicht, wenn man das Paket schon heruntegeladen hat. (Mit "apt-cache policy paket" bekommt man die möglichen Repositories in denen das gewünschte .src.rpm liegen kann.)

Die Abhängigkeiten löst man auf mit (muss man als root machen):

sudo apt-get build-dep paketname

oder wenn das Paket schon auf dem Computer vorliegt

sudo apt-get build-dep /pfad/zum/paket/paketname.src.rpm

Damit werden alle benötigten Pakete heruntergeladen.

Kompilieren des .scr.rpm's und Erstellen des Binary-RPM's

mit RPM

Zum Bauen des .src.rpm's genügt ein:

rpmbuild --rebuild /pfad/zum/paket/paketname.src.rpm 

Mit --with=<option> bzw. --without=<option> kann man wie beim ./configure bei .tar.gz's Optionen aktivieren/deaktivieren.

mit apt

apt-get --compile source paketname

bzw.

apt-get --compile source /pfad/zum/paket/paketname.src.rpm

Fehler durch nicht aufgelöste Abhängigkeiten

Es kann sein, dass bei einigen .src.rpm's die Abhängigkeiten nicht vollständig sind, deshalb entweder bei diesem Schritt darauf achten, welche Pakete als fehlend gemeldet werden oder besser noch auf der Homepage des Projekts nach den nötigen Pakete erkundigen, da im .src.rpm normalerweise die Originalsourcen !!!

Installieren des fertigen RPM's

Den Namen mit dem kompletten Pfad des Pakets erhält man ca. 15 Zeilen vor dem Ende der Ausgabe in der Zeile, dei mit Wrote: beginnt. Z.B.

Wrote: /home/daniel/packages/RPMS/i586/synaptic-0.55.3-suse092.daniel.i586.rpm

mit rpm

sudo rpm -Uvh packages/RPMS/iX86/paketname-0.suse092.daniel.iX86.rpm

mit apt

sudo apt-get install packages/RPMS/iX86/paketname-0.suse092.daniel.iX86.rpm

Schlussbemerkung

Man kann, wenn man will auch rpm und apt mischen. Z.B. kann man die Abhängigkeiten mit apt lösen und das Paket dann mit rpmbuild bauen, da man mit apt keine Optionen, die den Kompiliervorgang betreffen, übergeben/ändern kann.

Fertig


daniel2000


Zurück zur Paketmanager-Übersicht

Tux.png Dieser Artikel ist aus dem LinWiki (LinWiki) mit der dortigen Lizenz Attribution-Share Alike 2.5 Generic übernommen worden. Die Quelle im LinWiki unter SRC RPMs installieren mit apt und/oder rpm ist zum Zeitpunkt der Einfügung identisch mit dem, was in der Linupedia (dem Linux-Club Wiki) unter SRC RPMs installieren mit apt und/oder rpm steht. Der Artikel kann gerne überarbeitet werden. Wenn der Artikel der Quelle im Wortlaut nicht mehr entspricht, kann der Baustein entfernt werden, es muss aber die Quellenangabe unten eingefügt werden. Zudem sollte dann der Bausteine Vorlage:by-sa eingefügt werden, da der Artikel dann unter diese Lizenz fällt. Im LinWiki ist eine Liste der Autoren verfügbar.