预备软件

根据您所使用平台的不同,在为 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也是缺乏维护的开发环境。下面的说明也由相应的社区来提供。