स्रोत से इंस्टॉल किया गया सॉफ़्टवेयर, यम को पैकेज से इसे स्थापित नहीं करने के लिए कैसे कहें?


14

एक CentOS 7 पर, मैंने सूत्रों से संकलित फ़ॉबर संस्करण 2 स्थापित किया है।

मैं yum को उस इंस्टॉल के बारे में कैसे पता कर सकता हूं ताकि वह निर्भरता के लिए फ़ॉबर संस्करण 1 को स्थापित न करे ?


फोब्बर की स्थापना

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

फ़ॉबर की आवश्यकता वाले पैकेज की स्थापना

$ 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 को foobar 2 स्थापित है और चूंकि baz की आवश्यकता है foobar >= 1या बस foobar, स्थापित foobar-1.0.0-0.el7.x86_64.rpm नहीं होना चाहिए


जवाबों:


27

"मैंने सूत्रों से संकलित फ़ॉबर संस्करण 2 स्थापित किया है"

अपने सिस्टम में कस्टम सॉफ़्टवेयर जोड़ते समय अतिरिक्त प्रयास करें और RPM में अपने परिवर्धन को पैकेज करें । देखें मार्टिन Streicher, 2010-01-12, निर्माण और वितरण संकुल , आईबीएम कि कैसे करना है पर।

तो यह तो है कि जिसके परिणामस्वरूप RPM स्थापित और कर सकते हैं , अपने पैकेज प्रबंधक के संघर्ष और निर्भरता से निपटने के साथ अच्छा खेलने का उन्नयन, ढाल और हटाने प्रक्रियाओं और सुरक्षा रिपोर्टिंग।


10

एक अन्य विकल्प (यद्यपि निश्चित रूप से सबसे अच्छा जवाब नहीं है): प्रश्न में नाम के साथ एक डमी आरपीएम फ़ाइल बनाएं।

आपको rpmbuildस्थापित करने की आवश्यकता होगी , और एक डमी टारबॉल।

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

डमी कल्पना फ़ाइल लिखें। यह मेरे लिए फेडोरा 29 पर काम करता है। यह CentOS 7 पर भी अच्छा होना चाहिए।

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

आवश्यक रूप से Tweak पैकेज का नाम और संस्करण संख्या, और फिर पैकेज का निर्माण करें।

rpmbuild -ba example.spec

आउटपुट "बाइनरी" आरपीएम फ़ाइल होगी ~/rpmbuild/RPMS/noarch/example-0.0.0-1.fc29.x86_64.rpm


6

यह कैसे rpmकाम करता है।

rpmdb का उपयोग करता है जहाँ यह स्टोर करता है जो सिस्टम पर rpms स्थापित है। यदि आप कुछ फ़ाइलों को मैन्युअल रूप से स्थापित करते हैं, rpmतो इसके बारे में नहीं जानते हैं।

इसे हल करने का सबसे अच्छा तरीका है कि फोबार 2 को आरपीएम के साथ इंस्टॉल किया जाए। अन्य समाधान केवल वर्कअराउंड होंगे और लंबे समय में काम नहीं करेंगे।


5
आप मैन्युअल रूप से एक निर्भरता जांच को ओवरराइड नहीं कर सकते हैं? क्योंकि यह पढ़ता है कि यह क्या उबलता है, ओपी क्या चाहता है।
मस्त

हाँ, आप कर सकते हैं, लेकिन फिर आप सभी निर्भरता जाँचों को ओवरराइड करते हैं ... और आपको बाद में अपडेट करने में परेशानी होगी
क्रिस Maes

3

हो rpm --nodepsसकता है आप जिस उत्तर की तलाश कर रहे हैं? सर्वरफॉल्ट पर यहां एक पुराने सूत्र में चर्चा की गई।

( एकल निर्भरता को अनदेखा करने के लिए यम को बताएं )


5
इससे सड़क पर समस्याओं का सामना करना पड़ सकता है और मूल रूप से समस्या को स्थगित कर दिया जा सकता है। सिस्टम को अपडेट करते समय या बाद में किसी अन्य पैकेज को स्थापित करते समय, यह हो सकता है कि कुछ पैकेज फ़ॉबोर 1 को एक निर्भरता के रूप में खींचना चाहते हैं, संभवतः मैन्युअल रूप से निर्मित और स्थापित फ़ॉबोर 2 को अधिलेखित कर सकते हैं और संगतता मुद्दों का कारण बन सकते हैं।
जिरी वैलेंटा
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.