预备软件

根据您所使用平台的不同,在为 Haiku 编译软件或者编译 Haiku 自身时,您可能需要额外的工具。目前,可以认为 Haiku 是最方便的开发环境。一个 Haiku 的 `每日构建镜像`_ (或者 `稳定版本`_ )将会包含编译 x86 系统镜像所需要的全部工具。尽管 Haiku 不是最快速的编译环境,但是它能够即时的测试新编译的代码,而且还具有完成的预装工具链,可以减少让您犯愁的机会。现在,在 Haiku 之上进行自身的构建可能会存在问题,尤其是当作为主机的 Haiku 系统版本比其所希望构建的系统版本老旧时候。在这种情况下,在其他系统上进行交叉编译,或者更新到新的 Haiku 系统将会解决这些问题。Haiku 目前支持自身的构建,或者在其他平台进行 交叉编译 。

构建平台支持情况

下述是常见的构建平台以及它们的支持状态。该列表并不是很完整,并且构建情况可能会随着它们新版本的发布而发生变化。通过下述列表,您能够找到更多构建设置的详细信息。

平台 包管理 支持度 技能要求 备注
Haiku pkgman 是 入门 最容易
Arch Linux pacman 是 高级
Beos pkg 否
曾经支持
Centos rpm/yum 是 中等
Debian Linux apt 是 中等 缺少 mkisofs
Elementary OS apt 是 入门 缺少 mkisofs
Fedora rpm/yum 是 入门 缺少 mkisofs
FreeBSD packages 是 高级 运行良好
Gentoo Portage 是 高级
Linux Mint apt 是 入门 缺少 mkisofs
Mac OS X MacPorts/Homebrew 是 中等
NetBSD packages 是 高级 未测试
OpenSUSE rpm/zypper 是 中等 缺少 mkisofs
Red Hat rpm/yum 是 中等 缺少 mkisofs
Solaris solaris pkg 否
Ubuntu apt 是 入门 缺少 mkisofs
Windows Cygwin 否
Zeta pkg 否
曾经支持

下面是一些必要的工具,在下述不同的平台中都有特别的说明。

常用工具列表

编译构建工具要求

编译 Haiku 要求

Linux 平台备注

Haiku 的成功构建可能还要求您所进行编译的文件系统对 xattr 的支持。不幸的是,目前您所能做的选择非常有限,例如 ext4 并不能有效的支持这一特性。因此在 Linux 下建议使用 XFS 和 ReiserFS 文件系统。

另外,这只是使用时的一种反馈机制,并且它在某些时候仍存在一些问题。

通过下面的介绍,您可以对几个发行版有更深入的了解。

../_images/ubuntu-32.png

基于 APT 的 GNU/Linux 发行版(Debian,Ubuntu...)

下面是一些需要安装到 Debian/Ubuntu 的软件包,它们需要使用 APT 和 sudo。

sudo apt-get install subversion yasm autoconf automake texinfo flex bison gawk build-essential

对于 ARM 平台移植,您可能还需要下述软件包:

sudo apt-get install uboot-mkimage util-linux mtools

备注:64位版本可能还需要安装 “gcc-multilib” 和 “g++-multilib” 。通常 “gcc-multilib” 已经安装,因为它被 “libc6-dev-i386”。更多相关信息,查看配置参数:–use-32bit。

sudo apt-get install gcc-multilib g++-multilib libc6-dev-i386

为了使用 xsttr 支持,一些版本可能还需要安装 “attr” 和 “attr-dev”。详情查阅配置参数:–use-xattr。

../_images/arch-32.png

pacman(Arch Linux)

下述软件包需要安装到 Arch Linux,其需要用到 pacman 。

pacman -S base-devel bison git texinfo yasm openssh unzip

Puppy Linux

Puppy Linux 是一个非常特别的 linux 发行版,它关注于减少硬件占用,同时创造一个易于使用的用户环境。

对于 Puppy4.2.1,可能需要安装或者从源码编译下述的软件。

  • Devx421.sfs
  • yasm,(预编译包)
  • Less,(预编译包)
  • Cdrtools,(预编译包)
../_images/fedora-32.png

基于 RPM 使用 YUM 的 GNU/Linux 发行版(Fedora,CentOS...)

下述软件包需要安装到 Fedora/CentOS,其需要使用 Yum (这部分仍存疑议,请反馈问题)。

sudo yum install git yasm autoconf automake texinfo flex bison gcc gcc-c++ make glibc-devel zlib-devel

对于 Fedora,如果因为缺少 libsupc++ 而导致编译失败,您可能还需要安装 libstc++-static 包。

sudo yum install libstdc++-static

备注:64 位版本需要一些 32 位版本的库

sudo yum install glibc.i686 glibc-devel.i686

为了使用 xattr 支持,一些发行版可能还需要安装 “attr” 和 “attr-dev” 。详情参见配置选项:–use–xattr

../_images/suse-32.png

基于 RPM 使用 zypper 的 GNU/Linux 发行版(OpenSUSE, SLES)

下述软件包需要安装到 OpenSUSE/SUSE 商业版,其使用了 zypper(本部分存在疑议,请反馈问题)。

sudo zypper install git yasm autoconf automake texinfo flex bison gcc-c++ make glibc-devel zlib-devel

备注:64 位版本可能需要某些 32 位版本的库。

sudo zypper install linux32 glibc.i686 glibc-devel.i686

为了使用 xattr 支持,某些发行版可能需要安装 “attr” 和 “attr-dev”。详情参见配置选项:–use-xattr

../_images/gentoo-32_0_0.png

Gentoo Linux 发行版

基于 Gentoo Portage 的包安装:

sudo emerge -av dev-vcs/git autoconf automake texinfo flex bison gawk tar sys-libs/zlib cdrkit wget nasm net-misc/curl bc

对于 ARM 的支持,还需安装如下软件:

sudo emerge -av u-boot-tools mtools util-linux dtc
../_images/freebsd-32.png

基于 BSD 的发行版

基于 Package 的安装:

sudo pkg_add -r bison subversion yasm gawk texinfo cdrtools-devel wget u-boot mtools linuxfdisk

基于 Ports 的安装

sudo portinstall devel/bison devel/subversion devel/yasm lang/gawk print/texinfo sysutils/cdrtools-devel ftp/wget devel/u-boot emulators/mtools sysutils/linuxfdisk
../_images/macosx-32.png

OS X

Haiku 的构建需要大小写敏感文件系统。您可以使用磁盘管理工具(Disk Utility)创建大小写敏感磁盘镜像,然后用以保存 Haiku 源码树。而大小写敏感的 HFS+ 文件系统可以很好的工作。

首先安装 Xcode,或者如果您不希望安装 Xcode 的所有工具,而只希望安装命令行工具,则只需要运行如下命令:

xcode-select --install

如果您不安装 Xcode 的所有工具,您运行如下命令,接受使用 Xcode 协议:

xcodebuild -license

在安装完成 Xcode 及命令行工具,并且同意接受终端用户协议,您可以使用 MacPorts 或者 Homebrew 安装所需要的软件。

希望通过 Macports 安装所需要的软件,请执行如下过程:

安装 MacPorts (提供了标准的安装包)。关闭当前终端,然后打开新终端窗口,输入:

sudo port install autoconf cdrtools gawk wget nasm less mpfr gmp libmpc

(可能会有提示,需要您输入当前账户的管理员密码)

如果出现错误 “port: command not found”,可能是因为保存在 ~/.profile 的 MacPorts shell 配置无法被当前用于使用。 如果您使用的是 Bash,您可能会拥有一个 ~/.bash_profile 或 ~./bash_login 文件,而它阻止了 bash 读取 ~./profile。 检查 Bash 使用的文件(按照下面的顺序),然后将下述文本添加到指定文件。

export PATH=/opt/local/bin:$PATH
export MANPATH=$MANPATH:/opt/local/share/man
export INFOPATH=$INFOPATH:/opt/local/share/info

如果您使用的是其他的 shell,请查阅相关的手册,找出登录时解析的文件,然后添加所需的命令。 之后,您可以重新尝试在新终端中运行 port install... 命令。

注解

ARM 分支还未被 OSX 所支持,MacPort 具有 mtools,但是仍缺少了 sfdisk。

希望通过 Homebrew 安装所需要的软件,请执行如下过程:

使用链接页面提供的 ruby 命令行安装程序,安装 Homebrew ,然后使用下述命令安装构建 Haiku 所需要的软件包:

brew install autoconf cdrtools gawk wget nasm homebrew/dupes/less mpfr gmp libmpc

需要注意的是,您需要从相应的库安装 gnu 版本的 less 命令,因为 OSX 自带了 BSD 版本的 less 命令,但是 Haiku 需要的是 GNU 版本的 less 命令。

../_images/beos-32.png

BeOS 和 Zeta

警告

BeOS 和 Zeta 现在已经不是活跃的开发环境。在未来的某天,这些工具非常有可能需要由个人来提供更新。

Windows 平台 Cygwin 开发

警告

Cygwin是缺乏维护的开发环境。以下的说明由相应的社区提供。

Solaris

警告

Solaris也是缺乏维护的开发环境。下面的说明也由相应的社区来提供。