2013-10-09

Build a Tcl/Tk RPM (on openSUSE 12.3)

首先,要先安裝 rpm-build 這個工具。如果是 Ubuntu 的使用者,安裝的命令如下:
sudo apt-get install rpm

在 openSUSE 上我是使用 GUI 安裝軟體,下列是我猜可以使用的 openSUSE 命令,但是我沒試過:
sudo zypper install rpm-build

再來是環境設定,首先在自己的家目錄建立下列的目錄:
  • */rpm
  • */rpm/BUILD
  • */rpm/RPMS
  • */rpm/SOURCES
  • */rpm/SPECS
  • */rpm/SRPMS
Create the .rpmmacros at your home folder for your own rpm build configuratio(下面是相關的範例):

%packager       test <test@gmail.com>
 
%_topdir        /home/test/rpm
%_tmppath       /var/tmp
 
%_rpmtopdir     %{_topdir}
%_builddir      %{_rpmtopdir}/BUILD
%_rpmdir        %{_rpmtopdir}/RPMS
%_sourcedir     %{_rpmtopdir}/SOURCES
%_specdir       %{_rpmtopdir}/SPECS
%_srcrpmdir     %{_rpmtopdir}/SRPMS


再來就下載 Tcl 和 Tk 8.6.1 的 source code package。放到 rpm/SOURCES,使用下列的命令解壓縮:

tar xzvf tcl8.6.1-src.tar.gz
tar xzvf tk8.6.1-src.tar.gz

1. tcl

進入 tcl8.6.1 的目錄下,再進入 unix 目錄,對於 tcl.spec 我們有二個地方要修改:
  1. 預設的安裝目錄:原本是 /usr/local,可以改成 /usr
  2. 在最後再加入一行 %{directory}/share/man/mann,有檔案會安裝到這裡,如果不加會出現問題
如果要建立一個 tclsh 的連結,在  make INSTALL_ROOT=%{buildroot} install 之後,加入下面這一行:
ln -s tclsh%{majorver} $RPM_BUILD_ROOT%{_bindir}/tclsh


然後 tcl.spec 要在 Name:          tcl 這行之前加入版本宣告:

%global majorver1 8
%global majorver2 6
%global majorver %{majorver1}.%{majorver2}


再來使用下列的命令建立 RPM:
rpmbuild --bb tcl.spec

2. tk

先確定 tcl 做好 rpm 之後有安裝成功。另外,還需要 XFree86-dev 有安裝才行。

進入 tk8.6.1 的目錄下,再進入 unix 目錄,對於 tk.spec 我們有一個地方要修改:
  1. 預設的安裝目錄:原本是 /usr/local,可以改成 /usr 
如果要建立一個 wish 的連結,在  make INSTALL_ROOT=%{buildroot} install 之後,加入下面這一行:
ln -s wish%{majorver} $RPM_BUILD_ROOT%{_bindir}/wish

然後在 Name:          tk 這行之前加入版本宣告:

%global majorver1 8
%global majorver2 6
%global majorver %{majorver1}.%{majorver2}


再來使用下列的命令建立 RPM:
rpmbuild --bb tk.spec

沒有留言: