Ik heb twee RPM-pakketten gebouwd
proj1-1.0-1.x86_64.rpm
libtest1-1.0-1.x86_64.rpm
proj1
hangt af van de aanwezigheid van het bestand libtest1.so
en wordt correct weergegeven in de RPM-pakketten zoals hier te zien is:
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)
De installatie van proj1
mislukt vanwege een ontbrekende afhankelijkheid.
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
Hoe zorg ik ervoor dat libtest1-1.0-1.x86_64.rpm
automatisch wordt geïnstalleerd tijdens
de installatie van proj1-1.0-1.x86_64.rpm
?
Ik heb de optie --aid
geprobeerd met rpm -i
zoals beschreven hiermaar het werkte niet voor mij.
Is er een andere manier?
Bedankt voor alle hulp.
Antwoord 1, autoriteit 100%
Maak een (lokale) repository en gebruik yum
om de afhankelijkheden voor je op te lossen.
De CentOS-wiki heeft een mooie pagina met instructies hierover. CentOS-wiki HowTos/CreateLocalRepos.
Samengevat en verder geminimaliseerd (niet ideaal, maar snelste):
- Maak een directory voor je lokale repository, b.v.
/home/user/repo
. - Verplaats de RPM’s naar die map.
-
Sommige eigendoms- en bestandssysteemrechten herstellen:
# chown -R root.root /home/user/repo
-
Installeer de
createrepo
Pakket indien niet geïnstalleerd en voeruit
# createrepo /home/user/repo # chmod -R o-w+r /home/user/repo
-
Maak een repository-configuratiebestand, b.v.
/etc/yum.repos.d/myrepo.repo
met[local] name=My Awesome Repo baseurl=file:///home/user/repo enabled=1 gpgcheck=0
-
Installeer uw pakket met
# yum install packagename
2, Autoriteit 189%
De geleverde link @Gertvdijk toont een snelle manier om de gewenste resultaten te bereiken zonder een lokale repository te configureren:
$ yum --nogpgcheck localinstall packagename.arch.rpm
Wijzig gewoon packagename.arch.rpm
naar de RPM-bestandsnaam die u wilt installeren.
bewerken Gewoon een verduidelijking, dit installeert automatisch alle afhankelijkheden die al beschikbaar zijn via System YUM-repositories.
Als u afhankelijkheden voldoet aan de hand van andere RPM’s die zich niet in de repositories van het systeem bevinden, werkt deze methode niet tenzij elke RPM ook wordt opgegeven samen met packagename.arch.rpm
op de opdrachtregel.
3, Autoriteit 28%
Voor DNF-gebruikers Gebruik gewoon dnf install *.rpm
, localinstall
is niet langer nodig.
4, Autoriteit 25%
voor mij werkte gewoon met
# yum install ffmpeg-2.6.4-1.fc22.x86_64.rpm
en automatisch gestelde autorisatie om de depeedscies te dowload.
Onder het voorbeeld gebruik ik Fedora 22
[root@localhost lukas]# yum install ffmpeg-2.6.4-1.fc22.x86_64.rpm
Yum command has been deprecated, redirecting to '/usr/bin/dnf install ffmpeg-2.6.4-1.fc22.x86_64.rpm'.
See 'man dnf' and 'man yum2dnf' for more information.
To transfer transaction metadata from yum to DNF, run:
'dnf install python-dnf-plugins-extras-migrate && dnf-2 migrate'
Last metadata expiration check performed 0:28:24 ago on Fri Sep 25 12:43:44 2015.
Dependencies resolved.
====================================================================================================================
Package Arch Version Repository Size
====================================================================================================================
Installing:
SDL x86_64 1.2.15-17.fc22 fedora 214 k
ffmpeg x86_64 2.6.4-1.fc22 @commandline 1.5 M
ffmpeg-libs x86_64 2.6.4-1.fc22 rpmfusion-free-updates 5.0 M
fribidi x86_64 0.19.6-3.fc22 fedora 69 k
lame-libs x86_64 3.99.5-5.fc22 rpmfusion-free 345 k
libass x86_64 0.12.1-1.fc22 updates 85 k
libavdevice x86_64 2.6.4-1.fc22 rpmfusion-free-updates 75 k
libdc1394 x86_64 2.2.2-3.fc22 fedora 124 k
libva x86_64 1.5.1-1.fc22 fedora 79 k
openal-soft x86_64 1.16.0-5.fc22 fedora 292 k
opencv-core x86_64 2.4.11-5.fc22 updates 1.9 M
openjpeg-libs x86_64 1.5.1-14.fc22 fedora 89 k
schroedinger x86_64 1.0.11-7.fc22 fedora 315 k
soxr x86_64 0.1.2-1.fc22 updates 83 k
x264-libs x86_64 0.142-12.20141221git6a301b6.fc22 rpmfusion-free 587 k
x265-libs x86_64 1.6-1.fc22 rpmfusion-free 486 k
xvidcore x86_64 1.3.2-6.fc22 rpmfusion-free 264 k
Transaction Summary
====================================================================================================================
Install 17 Packages
Total size: 11 M
Total download size: 9.9 M
Installed size: 35 M
Is this ok [y/N]: y
Antwoord 5, autoriteit 9%
Ik heb een eenvoudigere oplossing gevonden. Als je alle RPM’s in dezelfde map hebt staan, hoef je alleen maar,
$ sudo rpm -i *.rpm
rpm
lijkt de juiste volgorde te vinden om deze te installeren en installeert de RPM’s.
6
In het geval van OpenSUSE LEAP 15, ontvang ik een soortgelijke fout:
> sudo rpm -i opera-stable_53.0.2907.68_amd64.rpm
[sudo] password for root:
warning: opera-stable_53.0.2907.68_amd64.rpm: Header V4 RSA/SHA512 Signature, key ID a5c7ff72: NOKEY
error: Failed dependencies:
at is needed by opera-stable-53.0.2907.68-0.x86_64
Ik voer deze opdracht uit om erachter te komen wat de afhankelijkheden zijn:
> sudo zypper install opera-stable_53.0.2907.68_amd64.rpm
Loading repository data...
Reading installed packages...
Resolving package dependencies...
The following 4 NEW packages are going to be installed:
at libfl2 libHX28 opera-stable
4 new packages to install.
Overall download size: 50.3 MiB. Already cached: 0 B. After the operation, additional 176.9 MiB will be used.
Continue? [y/n/...? shows all options] (y): n
Vervolgens voer ik deze opdracht uit om afhankelijkheden te installeren:
> sudo zypper in at
Loading repository data...
Reading installed packages...
Resolving package dependencies...
The following 3 NEW packages are going to be installed:
at libfl2 libHX28
3 new packages to install.
Overall download size: 208.6 KiB. Already cached: 0 B. After the operation, additional 600.4 KiB will be used.
Continue? [y/n/...? shows all options] (y): y
Vervolgens voer ik dit uit om het bestand rpm
te installeren:
> sudo rpm -i opera-stable_53.0.2907.68_amd64.rpm
Ik weet nietzeker of dit de beste methode is, maar het heeft mijn probleem opgelost.
Antwoord 7
Ik kwam dit tegen en wat voor mij werkte, was om yum localinstall enterPkgNameHere.rpm
uit te voeren vanuit de map waar het .rpm-bestand zich bevindt.
Opmerking: vervang enterPkgNameHere.rpm
door de naam van uw .rpm-bestand.
Antwoord 8
Stap1: kopieer alle rpm-pkg op bepaalde locaties
Stap2: als createrepo nog niet is geïnstalleerd, aangezien dit niet standaard zal zijn, installeer het dan.
[root@pavangildamysql1 8.0.11_rhel7]# yum install createrepo
Stap3: maak repository-metedata aan en geef onderstaande toestemming
[root@pavangildamysql1 8.0.11_rhel7]# chown -R root.root /scratch/PVN/8.0.11_rhel7
[root@pavangildamysql1 8.0.11_rhel7]# createrepo /scratch/PVN/8.0.11_rhel7
Spawning worker 0 with 3 pkgs
Spawning worker 1 with 3 pkgs
Spawning worker 2 with 3 pkgs
Spawning worker 3 with 2 pkgs
Workers Finished
Saving Primary metadata
Saving file lists metadata
Saving other metadata
Generating sqlite DBs
Sqlite DBs complete
[root@pavangildamysql1 8.0.11_rhel7]# chmod -R o-w+r /scratch/PVN/8.0.11_rhel7
Stap4: Maak een repository-bestand met de volgende inhoud op /etc/yum.repos.d/mysql.repo
[local]
name=My Awesome Repo
baseurl=file:///scratch/PVN/8.0.11_rhel7
enabled=1
gpgcheck=0
Stap5 Voer deze opdracht uit om
. te installeren
[root@pavangildamysql1 local]# yum --nogpgcheck localinstall mysql-commercial-server-8.0.11-1.1.el7.x86_64.rpm
Antwoord 9
Kopieer al uw RPM’s naar een map en installeer ze als volgt:
yum install -y --cacheonly --disablerepo=* /var/rpm_dir/*.rpm
Voor specifieke pakketten kun je yumdownloader
gebruiken, bijvoorbeeld in deze andere thread: https://stackoverflow. com/a/66927190/5078874
Antwoord 10
Voer eenvoudig het volgende commando uit.
sudo dnf install *package.rpm
Voer uw wachtwoord in en u bent klaar.
Antwoord 11
Proces voor het genereren van RPM uit bronbestand:
1) download het bronbestand met de extensie.gz.
2) installeer rpm-build en rpmdevtools vanuit yum install. (rpmbuild map zal worden gegenereerd…SPECS,SOURCES,RPMS.. mappen moeten worden gegenereerd in de rpmbuild map).
3) kopieer de source code.gz naar de SOURCES map.(rpmbuild/SOURCES)
4) Maak de teerbal los met behulp van de volgende opdracht.
ga naar de SOURCES-map :rpmbuild/SOURCES waar het tar-bestand aanwezig is.
commando: bijv. tar -xvzf httpd-2.22.tar.gz
httpd-2.22 map wordt in hetzelfde pad gegenereerd. Controleer of apr en apr-util en daar in de map httpd-2.22/srclib. Als apr en apr-util niet bestaan, download dan de nieuwste versie van de apache-site, verwijder deze en plaats deze in de map httpd-2.22/srclib. Zorg er ook voor dat u pcre op uw systeem hebt geïnstalleerd.
5)ga naar de uitgepakte map en typ dan onderstaande opdracht:
./configure –prefix=/usr/local/apache2 –with-included-apr –enable-proxy –enable-proxy-balancer –with-mpm=worker –enable-mods-static=all
6) voer onderstaande opdracht uit zodra de configuratie is geslaagd:
maken
7) na succesvolle uitvoering van het commando laat uitvoeren:
checkinstall
in dezelfde map. (als je geen checkinstall-software hebt, download dan de nieuwste versie van de site)
Ook checkinstall software heeft een bug die kan worden opgelost door de volgende manier:::::
zoek checkinstallrc en vervang dan TRANSLATE = 1 in TRANSLATE=0 met behulp van de vim-opdracht.
Controleer ook op pakket uitsluiten: EXCLUDE=”/selinux”
8)checkinstall zal om een optie vragen (type R als je tp build rpm voor het bronbestand wilt)
9) Klaar .rpm-bestand wordt gebouwd in de RPMS-map in het rpmbuild/RPMS-bestand…
ALLEMAAL HET BESTE ….
Met vriendelijke groet,
Prerana