簡體   English   中英

自定義RPM中的虛假依賴項?

[英]Bogus dependencies in custom RPM?

我正在嘗試構建RPM以安裝ACE-TAO的“開發”包。

我知道ACE-TAO的RPM已經存在,但是對於我們的應用程序來說,它們是不夠的。 要求開發人員編譯ACE + TAO容易出錯。

無論如何,我建立了一個規范文件來做到這一點:

%define _topdir %(echo $PWD)/
%define _builddir %(echo $PWD/BUILD)/

Summary: Shortens the manually installation process of ACE+TAO
Name: ace-tao-amg
Version: 6.1.7
Release: 1
Source: ACE+TAO+CIAO-src-%{version}.tar.gz
License: GLP
Group: Applications/JARSS
Vendor: <<removed>>
Packager: <<removed>>
BuildRoot: %_topdir/BUILDROOT

%define debug_package %{nil}

%description
Shortens the install process for ACE+TAO

%prep
# explicitly remove the last one and setup the new one
rm -Rf %_builddir/ACE_wrappers
%setup -q -n ACE_wrappers

%build

# we want to build ACE first
export ACE_ROOT=%_builddir/ACE_wrappers
touch $ACE_ROOT/ace/config.h
echo "#include \"ace/config-linux.h\"" >> $ACE_ROOT/ace/config.h
touch $ACE_ROOT/include/makeinclude/platform_macros.GNU
echo "include %_builddir/ACE_wrappers/include/makeinclude/platform_linux.GNU" >> $ACE_ROOT/include/makeinclude/platform_macros.GNU
#export $LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$ACE_ROOT/lib
$ACE_ROOT/bin/mwc.pl -type gnuace ACE.mwc --exclude tests --exclude examples
make -j 8

# and then we want to build TAO
export TAO_ROOT=$ACE_ROOT/TAO
cd $TAO_ROOT
$ACE_ROOT/bin/mwc.pl -type gnuace TAO.mwc --exclude tests --exclude examples
make -j 8

%install
mkdir -p $RPM_BUILD_ROOT/usr/local
cp -Rf %_builddir/ACE_wrappers $RPM_BUILD_ROOT/usr/local

%files
%defattr(-,root,root,-)
/usr/local/ACE_wrappers

%post
touch /etc/ld.so.conf.d/ace-6.1.7.conf
touch /etc/ld.so.conf.d/tao-6.1.7.conf
echo "/usr/local/ACE_wrappers/lib" > /etc/ld.so.conf.d/ace-6.1.7.conf
echo "/usr/local/ACE_wrappers/TAO/lib" > /etc/ld.so.conf.d/tao-6.1.7.conf
/sbin/ldconfig

# and update the config linux and platform_linux with the correct wildcard paths
echo -e "include \$(ACE_ROOT)/include/makeinclude/platform_linux.GNU" > /usr/local/ACE_wrappers/include/makeinclude/platform_macros.GNU

%postun
rm -Rf /usr/local/ACE_wrappers
rm -Rf /etc/ld.so.conf.d/ace-6.1.7.conf
rm -Rf /etc/ld.so.conf.d/tao-6.1.7.conf
/sbin/ldconfig

這些事情要做的就是將已編譯的ACE + TAO復制到/ usr / local。 但是,當我嘗試安裝它時,出現以下錯誤:

error: Failed dependencies:
    /pkg/gnu/bin//perl is needed by ace-tao-amg-6.1.7-1.x86_64
    /pkg/gnu/bin//perl5 is needed by ace-tao-amg-6.1.7-1.x86_64
    perl(CORBA) is needed by ace-tao-amg-6.1.7-1.x86_64
    perl(CosNotification::NotificationServiceMonitorControl) is needed by ace-tao-amg-6.1.7-1.x86_64
    perl(Net::Telnet) is needed by ace-tao-amg-6.1.7-1.x86_64
    perl(NotifyMonitoringExt::ActiveEventChannelNames) is needed by ace-tao-amg-6.1.7-1.x86_64
    perl(NotifyMonitoringExt::EventChannelConsumerNames) is needed by ace-tao-amg-6.1.7-1.x86_64
    perl(NotifyMonitoringExt::EventChannelCreationTime) is needed by ace-tao-amg-6.1.7-1.x86_64
    perl(NotifyMonitoringExt::EventChannelFactoryNames) is needed by ace-tao-amg-6.1.7-1.x86_64
    perl(NotifyMonitoringExt::EventChannelOldestEvent) is needed by ace-tao-amg-6.1.7-1.x86_64
    perl(NotifyMonitoringExt::EventChannelQueueElementCount) is needed by ace-tao-amg-6.1.7-1.x86_64
    perl(NotifyMonitoringExt::EventChannelQueueSize) is needed by ace-tao-amg-6.1.7-1.x86_64
    perl(NotifyMonitoringExt::EventChannelSlowestConsumers) is needed by ace-tao-amg-6.1.7-1.x86_64
    perl(NotifyMonitoringExt::EventChannelSupplierNames) is needed by ace-tao-amg-6.1.7-1.x86_64
    perl(NotifyMonitoringExt::InactiveEventChannelNames) is needed by ace-tao-amg-6.1.7-1.x86_64
    perl(PerlACE::Run_Test) is needed by ace-tao-amg-6.1.7-1.x86_64
    perl(Process) is needed by ace-tao-amg-6.1.7-1.x86_64
    perl(Tk) is needed by ace-tao-amg-6.1.7-1.x86_64
    perl(Tk::DialogBox) is needed by ace-tao-amg-6.1.7-1.x86_64
    perl(Tk::ROText) is needed by ace-tao-amg-6.1.7-1.x86_64
    perl(Tk::Tree) is needed by ace-tao-amg-6.1.7-1.x86_64
    perl(VmsProcess) is needed by ace-tao-amg-6.1.7-1.x86_64
    perl(Win32::Process) is needed by ace-tao-amg-6.1.7-1.x86_64
    perl(XML::DOM) is needed by ace-tao-amg-6.1.7-1.x86_64

即使我的系統上沒有perl ,也可以不使用這些而構建RPM。

因此,這里有我的問題:是否可以明確告訴RPM您不需要這些依賴項? 我不確定它們從何處顯現出來,我知道它們不會影響已安裝的環境。

謝謝!

在翻閱了有關RPM的文檔后,

AutoReqProv: no

spec文件中的方法。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM