Bu makalemde -Fedora-, Red Hat, Centos işletim sistemlerinde alınan “Missing Dependency: /usr/bin/rebuild-security-providers is needed by package” hatasını nasıl giderebileceğimizi anlatacağım . Aşağıdaki linkte de bu redhat’ın 260161 nolu bug raporunda da bu konuya değinilmiş.
https://bugzilla.redhat.com/show_bug.cgi?id=260161
Ben bu hatayla open-office kurmak istediğimde karşılaştım. Aldığım hata aşağıdaki gibiydi.
java-1.4.2-gcj-compat-1.4.2.0-40jpp.115.x86_64 from installed has depsolving problems
–> Missing Dependency: /usr/bin/rebuild-security-providers is needed by package java-1.4.2-gcj-compat-1.4.2.0-40jpp.115.x86_64 (installed)
Error: Missing Dependency: /usr/bin/rebuild-security-providers is needed by package java-1.4.2-gcj-compat-1.4.2.0-40jpp.115.x86_64 (installed)
ÇÖZÜM:
Öncelikle rpm-build yüklüyoruz;
# yum install rpm-build
Root hakkına sahip olmayan kullanıların rpm-build kullanabilmesini sağlıyoruz;
$ echo “%_topdir $HOME/rpmbuild” >> .rpmmacros
$ mkdir -p rpmbuild/{SRPMS,RPMS,SPECS,BUILD,SOURCES}
Yeni bir spec oluşturalım;
nano rpmbuild/SPECS/jpackage-utils-compat-el5.spec
Nano editor ile açtığımız dosyanın şu anda içi boş, aşağıdaki alandaki içeriğin aynısı olacak şekilde yapıp kaydedin.
Name: jpackage-utils-compat-el5
Version: 0.0.1
Release: 1%{?dist}%{?repo}
Epoch: 0
Summary: Compatibility For RHEL5 and JPackage
License: GPL
URL: http://rmyers.fedorapeople.org/jpackage-utils-compat-el5
Group: Utilities
BuildRoot: %(mktemp -ud %{_tmppath}/%{name}-%{version}-%{release}-XXXXXX)BuildArch: noarch
Requires: /bin/bash%description
Compatibility for JPackage Utils between RHEL5 and the JPackage Project.%prep
# no setup%build
# no building%install
rm -rf $RPM_BUILD_ROOTinstall -dm 755 ${RPM_BUILD_ROOT}%{_bindir}
install -dm 755 ${RPM_BUILD_ROOT}%{_sysconfdir}/java/security
install -dm 755 ${RPM_BUILD_ROOT}%{_sysconfdir}/java/security/security.dpushd ${RPM_BUILD_ROOT}%{_bindir}
cat > rebuild-security-providers << EOF
#!/bin/bash
# Rebuild the list of security providers in classpath.securitysecfiles=”/usr/lib/security/classpath.security /usr/lib64/security/classpath.security”
for secfile in \$secfiles; do
# check if this classpath.security file exists
[ -f “\$secfile” ] || continuesed -i ‘/^security\.provider\./d’ “\$secfile”
count=0
for provider in \$(ls /etc/java/security/security.d)
do
count=\$((count + 1))
echo “security.provider.\${count}=\${provider#*-}” >> “\$secfile”
done
done
EOFpopd
%clean
rm -rf $RPM_BUILD_ROOT%files
%defattr(-,root,root,-)
%{_bindir}/rebuild-security-providers
%{_sysconfdir}/java/security
%{_sysconfdir}/java/security/security.d%changelog
* Thu Jul 3 2008 Rob Myers <rob.myers at gtri.gatech.edu> – 0:0.0.1-1%{?dist}%{?repo}
– initial release
Yukarıda yazdığımız spec dosyası ile rpm oluşturalım;
$ rpmbuild -ba /rpmbuild/SPECS/jpackage-utils-compat-el5.spec
Eski paketi günceliyoruz;
rpm -Uvh http://plone.lucidsolutions.co.nz/linux/centos/images/jpackage-utils-compat-el5-0.0.1-1.noarch.rpm
Şimdi yum update yaparsanız dependency hatası almadığınızı göreceksiniz.
Fatih ŞÖLEN
ALLAH razı olsun ya valla beni kaç günlük dertten kurtardın kafayı yemiştim.