Yüklü yazılımı kaynaktan, yum'dan paketten kurmamak nasıl söylenir?


14

Bir CentOS 7'de, kaynaklardan derlenen foobar sürüm 2'yi yükledim .

Bağımlılık için foobar sürüm 1'i yüklemeyecek şekilde yum'un bu kurulumdan haberdar olmasını nasıl sağlayabilirim ?


Foobar montajı

$ git clone https://example.com/foobar.git
[...]
$ cd foobar
$ make && sudo make install
[...]
$ foobar --version
foobar v2

Foobar gerektiren bir paketin montajı

$ sudo yum install baz
[...]
---> Package baz.x86_64 0:3.14.15-9 will be installed
--> Processing Dependency: foobar >= 1 for package: baz-3.14.15-9.x86_64
[...]
Dependencies Resolved

==============================================================
 Package           Arch      Version      Repository   Size
==============================================================
Installing:                  
 baz               x86_64    3.14.15-9    example      1.1 M
Installing for dependencies: 
 foobar            x86_64    1.0.0-0.el7  example      4.5 M

Yum 2 foobar 2 yüklü olduğunu bilmek istiyorum ve baz gerektirir foobar >= 1veya basitçe foobar, yüklü foobar-1.0.0-0.el7.x86_64.rpm olmamalıdır .


Yanıtlar:


27

"Kaynaklardan derlenen foobar sürüm 2'yi kurdum"

Sisteminize özel yazılım eklerken daha fazla çaba sarf edin ve eklemelerinizi bir RPM'de paketleyin . Bkz. IBM Streicher, 2010-01-12, Paket oluşturma ve dağıtma , IBM .

Ardından, sonuçta elde edilen RPM'yi yükleyin, böylece paket yöneticinizin çakışması ve bağımlılık yönetimi, yükseltme, eski sürüme geçirme ve kaldırma prosedürleri ve güvenlik raporlaması ile iyi oynayabilir ve oynayabilir.


10

Başka bir seçenek (kesinlikle en iyi cevap olmasa da): söz konusu adla bir kukla rpm dosyası oluşturun.

rpmbuildYüklü ve kukla bir tarball'a ihtiyacınız olacak .

mkdir ~/rpmbuild/{RPMS,SOURCES}
touch empty.txt
tar -zcf ~/rpmbuild/SOURCES/example.tar.gz empty.txt

Sahte spec dosyasını yazın. Bu benim için Fedora 29'da çalışıyor. CentOS 7'de de iyi olmalı.

Name:           example
Version:        0.0.0
Release:        1%{?dist}
Summary:        Dummy package

Group:          Dummy
License:        CC-BY-SA 3.0
URL:            http://example.com
Source0:    example.tar.gz
BuildArch:  noarch

#BuildRequires:
#Requires:

%description
Dummy for example

%prep
:

%build
:

%install
:

%files
%doc

%changelog

Paket adını ve sürüm numarasını gerektiği gibi değiştirin ve ardından paketi oluşturun.

rpmbuild -ba example.spec

Çıktı "binary" rpm dosyası ~/rpmbuild/RPMS/noarch/example-0.0.0-1.fc29.x86_64.rpm


6

Bu şekilde çalışmaz rpm.

rpmsistemde yüklü olan rpm'leri depoladığı bir db kullanır. Bazı dosyaları el ile yüklerseniz, rpmhakkında bilgi sahibi olmaz.

Bunu çözmenin en iyi yolu foobar 2'yi bir rpm ile kurmaktır. Diğer çözümler yalnızca geçici çözüm olabilir ve uzun vadede işe yaramaz.


5
Bir bağımlılık denetimini el ile geçersiz kılamıyor musunuz? Çünkü OP'nin istediği şeye benziyor.
Mast

Evet yapabilirsiniz, ancak sonra tüm bağımlılık kontrollerini geçersiz kılabilirsiniz ... Ve daha sonra güncelleme konusunda sorun yaşayacaksınız
Chris Maes

3

Mayıs rpm --nodepsaradığınız cevabı? Burada Serverfault üzerinde daha eski bir başlıkta tartışıldı.

( yum'a tek bir bağımlılığı yoksaymasını söyle )


5
Bu, yolda sorunlara yol açabilir ve temel olarak sorunu erteler. Sistemi güncellerken veya daha sonra başka bir paket kurarken, bazı paketlerin foobar 1'i bağımlılık olarak çekmek isteyebilir, muhtemelen manuel olarak kurulmuş ve kurulmuş foobar 2'nin üzerine yazarak uyumluluk sorunlarına neden olabilir.
Jiri Valenta
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.