Ich habe zwei RPM-Pakete erstellt
proj1-1.0-1.x86_64.rpm
libtest1-1.0-1.x86_64.rpm
proj1
hängt von der vorhandenen Datei ab libtest1.so
und wird in den hier gezeigten RPM-Paketen korrekt wiedergegeben:
user@my-pc:~$ rpm -qp --requires proj1-1.0-1.x86_64.rpm
libtest1.so()(64bit)
user@my-pc:~$ rpm -qp --provides libtest1-1.0-1.x86_64.rpm
libtest1.so()(64bit)
Die Installation von proj1
schlägt aufgrund einer fehlenden Abhängigkeit fehl.
user@my-pc:~$ rpm -ivh proj1-1.0-1.x86_64.rpm
error: Failed dependencies:
libtest1.so()(64bit) is needed by proj1-1.0-1.x86_64.rpm
Wie stelle ich sicher, dass libtest1-1.0-1.x86_64.rpm
das bei der Installation von automatisch installiert wird proj1-1.0-1.x86_64.rpm
?
Ich habe die --aid
Option rpm -i
wie hier beschrieben ausprobiert , aber sie hat bei mir nicht funktioniert.
Gibt es einen anderen Weg?
Vielen Dank für jede Hilfe.
yum --nogpgcheck localinstall packagename.arch.rpm
.yum localinstall
und es ist das gleiche wie die Antwort, die hier bereits veröffentlicht wurde , mit den bereits diskutierten Nachteilen für Situationen, in denen Abhängigkeiten nicht in yum-Repos enthalten sind (siehe, diese Methode funktioniert nur, wenn [...] ein Teil vorhanden ist).sudo yum --disablerepo=* --enablerepo=local install packagename.arch.rpm
, um sicherzustellen,yum
dass nicht in andere Repositorys geschaut wird.Der bereitgestellte Link @gertvdijk zeigt einen schnellen Weg, um die gewünschten Ergebnisse zu erzielen, ohne ein lokales Repository zu konfigurieren:
Wechseln
packagename.arch.rpm
Sie einfach zu dem RPM-Dateinamen, den Sie installieren möchten.Bearbeiten Nur zur Verdeutlichung werden automatisch alle Abhängigkeiten installiert, die bereits über System-YUM-Repositorys verfügbar sind.
Wenn Abhängigkeiten von anderen RPMs erfüllt werden, die sich nicht in den Repositorys des Systems befinden, funktioniert diese Methode nur, wenn jede RPM zusammen mit
packagename.arch.rpm
in der Befehlszeile angegeben wird.quelle
libtest1-1.0-1.x86_64.rpm
es sich in einem anderen Repository befindet oder beide Pakete in der Befehlszeile angegeben sind, wie es "rpm -i
" erfordern würde. Ich habe dies gerade amyum
3.4.3 (Fedora 18) überprüft . Das Transkript hier zeigt, dass esupdates
für die Abhängigkeiten zum Repo geht , auch wenn die Dateien genau dort sind.rpm -i
". Die Verwendungyum
bietet also keinen zusätzlichen Vorteil.Für dnf-Benutzer nur verwenden
dnf install *.rpm
,localinstall
wird nicht mehr benötigt.quelle
mysql-workbench
mitrpm -ivh
. endete schließlich mit diesem Beitrag. DNF hat es geschafft.Für mich hat nur mit gearbeitet
Und automatisch um Autorisierung gebeten, die Abhängigkeiten herunterzuladen. Unter dem Beispiel verwende ich Fedora 22
quelle
Ich habe eine einfachere Lösung gefunden. Wenn Sie alle RPMs im selben Verzeichnis haben, müssen Sie nur Folgendes tun:
rpm
scheint die richtige Reihenfolge zu finden, um diese zu installieren und die RPMs zu installieren.quelle
Matthews Antwort weckte viele Emotionen, weil ihr noch ein kleines Detail fehlt. Der allgemeine Befehl wäre:
Das
package_file_name
Obige kann einen lokalen absoluten oder relativen Pfad enthalten oder eine URL (möglicherweise sogar eine URI) sein.Yum sucht nach Abhängigkeiten zwischen allen in der Befehlszeile angegebenen Paketdateien. Wenn dies fehlschlägt, um die Abhängigkeiten dort zu finden, werden auch alle konfigurierten und aktivierten Yum-Repositorys verwendet.
Weder das aktuelle Arbeitsverzeichnis noch die Pfade eines der Verzeichnisse
package_file_name
werden durchsucht, es sei denn, eines dieser Verzeichnisse wurde zuvor als aktiviertesyum
Repository konfiguriert .Also im Fall des OP der
yum
Befehl:würde tun, wie würde das tun
rpm
:Der Unterschied zwischen diesen
yum
undrpm
Aufrufen wäre nur sichtbar, wenn eines der zu installierenden Pakete weitere Abhängigkeiten von Paketen hätte, die NICHT in der Befehlszeile aufgeführt sind.In einem solchen Fall
rpm
wird nur die Fortsetzung verweigert, währendyum
konfigurierte und aktivierte yum-Repositorys zur Suche nach Abhängigkeiten verwendet werden und möglicherweise erfolgreich sind.Das aktuelle Arbeitsverzeichnis wird in keinem Fall durchsucht, es sei denn, es wurde zuvor als aktiviertes
yum
Repository konfiguriert .quelle
Ich bin darauf gestoßen, und was für mich funktioniert hat, war,
yum localinstall enterPkgNameHere.rpm
aus dem Verzeichnis heraus zu laufen, in dem sich die RPM-Datei befindet.Hinweis: Ersetzen Sie die
enterPkgNameHere.rpm
durch den Namen Ihrer RPM-Datei.quelle
Im Fall von openSUSE Leap 15 erhalte ich einen ähnlichen Fehler:
Ich führe diesen Befehl aus, um herauszufinden, welche Abhängigkeiten bestehen:
Dann führe ich diesen Befehl aus, um Abhängigkeiten zu installieren:
Dann führe ich dies aus, um die
rpm
Datei zu installieren :Ich bin mir nicht sicher, ob es die beste Vorgehensweise ist, aber es hat mein Problem gelöst.
quelle
Schritt 1: Kopieren Sie alle U / min-Pakete an bestimmten Stellen
Schritt 2: Wenn createrepo nicht bereits installiert ist, wie es nicht standardmäßig der Fall ist, installieren Sie es.
Schritt 3: Erstellen Sie Repository-Metedaten und geben Sie die folgende Berechtigung
Schritt 4: Erstellen Sie eine Repository-Datei mit folgendem Inhalt unter /etc/yum.repos.d/mysql.repo
Schritt 5 Führen Sie diesen Befehl zur Installation aus
quelle
Führen Sie einfach den folgenden Befehl aus.
Geben Sie Ihr Passwort ein und Sie sind fertig.
quelle
Prozess zum Generieren von RPM aus der Quelldatei: 1) Laden Sie die Quelldatei mit der Erweiterung.gz herunter. 2) installiere rpm-build und rpmdevtools von yum install. (Der Ordner "rpmbuild" wird generiert ... SPECS, SOURCES, RPMS .. Ordner sollten im Ordner "rpmbuild" generiert werden.) 3) Kopieren Sie den Quellcode.gz in den Ordner SOURCES (rpmbuild / SOURCES). 4) Entpacken Sie den Teerball mit dem folgenden Befehl. Gehen Sie zum Ordner SOURCES: rpmbuild / SOURCES, in dem die TAR-Datei vorhanden ist. Befehl: zB tar -xvzf httpd-2.22.tar.gz Der Ordner httpd-2.22 wird im selben Pfad generiert. Überprüfen Sie, ob apr und apr-util und dort im Ordner httpd-2.22 / srclib. Wenn apr und apr-util nicht vorhanden sind, laden Sie die neueste Version von der Apache-Site herunter, entpacken Sie sie und legen Sie sie im Ordner httpd-2.22 / srclib ab. Stellen Sie außerdem sicher, dass Sie pcre in Ihrem System installiert haben.
5) Gehen Sie zum extrahierten Ordner und geben Sie den folgenden Befehl ein: ./configure --prefix = / usr / local / apache2 --with-include-apr --enable-proxy --enable-proxy-balancer --with-mpm = worker --enable-mods-static = all 6) Führen Sie den folgenden Befehl aus, sobald die Konfiguration erfolgreich war: make 7) Nach erfolgreicher Ausführung od make command run: checkinstall in demselben Ordner. (Wenn Sie keine Checkinstall-Software haben, laden Sie bitte die neueste Version von der Website herunter.) Außerdem hat die Checkinstall-Software einen Fehler, der auf folgende Weise behoben werden kann: ::::: checkinstallrc suchen und dann TRANSLATE = 1 durch TRANSLATE = 0 mit dem Befehl vim ersetzen. Überprüfen Sie auch, ob das Paket ausgeschlossen ist: EXCLUDE = "/ selinux" 8) checkinstall fragt nach der Option (geben Sie R ein, wenn Sie RPM für die Quelldatei erstellen möchten). 9) Fertig. Die RPM-Datei wird im RPMS-Ordner in der RPM-Build / RPMS-Datei erstellt. .. Alles Gute ....
Grüße, Prerana
quelle