我想在我的 CentOS 5.8(64 位)机器上安装 tmux 1.7。
它需要 libevent 版本至少为 1.4.14b 或 2.0.20 ,yum
CentOS 5.8 软件包中的最新版本是 1.4.13 。
我知道我libevent-devel
也需要这个包来构建,tmux
但我无法在任何地方得到它。
谁能给我提示如何做到这一点?
我如何获取(构建)开发包?
答案1
您可以使用以下步骤在 CentOS 5.8 上编译 tmux 1.7:
安装开发者工具
yum groupinstall "Development Libraries"
yum groupinstall "Development Tools"
yum install rpm-build gcc
设置 .rpmmacros 文件
$ cat > /home/<myusername>/.rpmmacros << EOF
%packager Your Name
%vendor Your Orgnazation
%_topdir /home/<myusername>/rpmbuild
%_signature gpg
%_gpg_name Your Packaging Dept
%_gpg_path /home/mockbuild/.gnupg
%dist build_id
%buildroot
EOF
笔记:确保将 $HOME 路径替换为<myusername>
.
设置 rpmbuild 区域
mkdir -p $HOME/rpmbuild/{BUILD,RPMS/i386,SOURCES,SPECS,SRPMS}
构建 libevent 2.x RPM
# d/l package
wget http://sourceforge.net/projects/levent/files/libevent/libevent-2.0/libevent-2.0.10-stable.tar.gz/download
mv libevent-2.0.10-stable.tar.gz rpmbuild/SOURCES/
# download .spec file
wget http://geekery.altervista.org/specs/libevent2010.spec
mv libevent2010.spec rpmbuild/SPECS
# build RPM
rpmbuild -bb rpmbuild/SPECS/libevent2010.spec
安装 libevent 包
cd $HOME/rpmbuild/RPMS/x86_64
rpm -ivh libevent-devel-2.0.10-1build_id.x86_64.rpm libevent-2.0.10-1build_id.x86_64.rpm
下载 tmux SRPM
为此,我们将下载 Fedora 的 SRPM,但提取其中的内容并重用它的 .spec 文件来为 CentOS 5.x 构建 tmux。
cd $HOME/rpmbuild
wget ftp://ftp.muug.mb.ca/mirror/fedora/linux/development/19/source/SRPMS/t/tmux-1.7-2.fc19.src.rpm
mkdir -p temp && cd temp
rpm2cpio ../tmux-1.7-2.fc19.src.rpm | cpio -idmv
mv tmux.spec ../SPECS/ && mv tmux-1.7.tar.gz ../SOURCES/
cd ../SPECS/ && rmdir ../temp/
编辑 tmux.spec
vim tmux.spec
我遇到了这个 tmux.spec 文件的几个问题。不确定这是否是我的设置,所以我做了这些更改,但您可能不需要它们。
# Added these lines after the BuildRequires
BuildRoot: %{buildroot}
Prefix: /usr
# added DESTDIR=%{buildroot}
make %{?_smp_mflags} LDFLAGS="%{optflags}" DESTDIR=%{buildroot}
# changed this line
%{_bindir}/bin/tmux
# to this line
/usr/bin/tmux
保存此文件。
构建 tmux RPM
cd $HOME/rpmbuild
rpmbuild -ba SPECS/tmux.spec
rpm -ivh RPM/x86_64/tmux-1.7-2.x86_64.rpm
预构建
考虑到执行此操作的步骤数量,我将帮您一个忙,并在我的 yum 存储库中提供这些 RPM。