Categories
學習筆記

如何將Fedora 24的SRPM重編譯為CentOS 7下可用rpm安裝包

最近朋友在玩開源社群,在協助開發chewing-editor。
所以需要諸多測試環境,所以我也湊了一下熱鬧。
但偶然發現想在CentOS 7下編譯chewing-editor並非簡單的事,不僅不少安裝包的命名方式不同,連libchewing的版本也過低。
主要原因在於即便安裝了各種諸如EPEL的repo,也僅僅支持libchewing-0.3.4,並不支持chewing-editor所要求的0.4以上的版本。

所以我就想試著安裝Fedora 24的rpm安裝包,但發現諸多人並不建議這樣做,畢竟Fedora 24的安裝包不見得能在CentOS 7上兼容。
後來搜索了一些相關資料,又看到了CentOS官方關於rpm安裝包rebuild的相關資料。
文中提及Redhat(CentOS)是Fedora的一個相對穩定的子集,所以絕大多數情況下,CentOS是可以對Fedora的Source RPM進行rebuild的,意思就是Fedora上可以安裝的包,CentOS rebuild之後也可以安裝。

首先你必須先找到你要rebuild的Source RPM,你可以到這裡查看。
http://rpms.famillecollet.com/rpmphp/
famillecollet
然後下載到你的目錄下,

wget http://dl.fedoraproject.org/pub/fedora/linux/development/24/Everything/source/tree/Packages/l/libchewing-0.4.0-6.fc24.src.rpm

rebuild前,你需要先安裝rpm-build。

yum install -y rpm-build

安裝好rpmbuild後就開始rebuild Source RPM了。

rpmbuild --rebuild libchewing-0.4.0-6.fc24.src.rpm

若有什麼東西是需要安裝的,rebuild時也會提示你。
dependency

yum install -y autoconf automake libtool texinfo sqlite-devel python2-devel

rebuild完成後你就可以看到你想要的rpm安裝包了。
success

最後就來個卸載舊版本,然後本地安裝就可以了。

cd /root/rpmbuild/RPMS/x86_64
yum remove -y libchewing
yum localinstall -y libchewing*
yum install ibus-chewing

備註:
yum remove的時候會把一些相關的軟件也一併卸載,如果需要的話記得重新安裝喔 🙂

相關內容可參考:
https://wiki.centos.org/HowTos/RebuildSRPM
https://wiki.centos.org/HowTos/SetupRpmBuildEnvironment

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.