预备软件 - pengphei/haiku-cn GitHub Wiki
根据您所使用平台的不同,在为 Haiku 编译软件或者编译 Haiku 自身时,您可能需要额外的工具。
目前,可以认为 Haiku 是最方便的开发环境。一个 Haiku 的预编译测试版本将会包含编译 Haiku 镜像的所有需要的工具。尽管 Haiku 不是最快速的编译环境,但是它能够即时的测试新编译的代码,而且还具有完成的预装工具链,可以减少让您犯愁的机会。
目前,Haiku 能够支持自身构建,以及其他平台的交叉编译。
下述是常见的构建平台以及它们的支持状态。该列表并不是很完整,并且构建情况可能会随着它们新版本的发布而发生变化。通过下述列表,您能够找到更多构建设置的详细信息。
Platform | Package Manager | Supported | Skill Level | Notes |
Haiku | OptionalPackages | Yes | Beginner | Easiest build platform |
Arch Linux | pacman | Yes | Advanced | - |
BeOS | pkg | No | - | Once upon a time.. |
CentOS | rpm/yum | Yes | Intermediate | - |
Debian Linux | apt | Yes | Intermediate | Missing mkisofs |
Fedora | rpm/yum | Yes | Beginner | - |
FreeBSD | packages | Yes | Advanced | Works very well |
Linux Mint | apt | Yes | Beginner | Works very well |
Mac OS X | MacPorts | Yes | Intermediate | Works |
NetBSD | packages | Yes | Advanced | Untested |
OpenSUSE | rpm/zypper | Yes | Intermediate | - |
RedHat Linux | rpm/yum | Yes | Intermediate | - |
Solaris | solaris pkg | No | - | - |
Ubuntu | apt | Yes | Beginner | Works very well |
Windows | Cygwin | No | - | - |
Zeta | pkg | No | - | Once upon a time.. |
下面是一些必要的工具,在下述不同的平台中都有特别的说明。
- Git 客户端,用以拷贝项目源代码
- SSH 客户端,仅用于项目提交权限成员
- autoconf
- automake
- makeinfo
- flex
- bison
- gawk
- zlib 开发包,用于编译 GCC4 构建工具
- Haiku 交叉编译工具,仅用于非 Haiku 构建平台,如 Linux 等。
- Jam,在 Haiku 中使用了定制的 Jam 版本。(包含在构建工具,用于交叉编译)
- mkisofs,注意 genisoimage 不等同于 mkisofs。
- wget,用于下载附加软件包。
- Yasm (0.7.0 及更高版本)
- mkimage
- Mtools
- sfdisk
- dtc (设备树编译器)
Haiku 的成功构建可能还要求您所进行编译的文件系统对 xattr 的支持。不幸的是,目前您所能做的选择非常有限,例如 ext4 并不能有效的支持这一特性。因此在 Linux 下建议使用 XFS 和 ReiserFS 文件系统。
另外,这只是使用时的一种反馈机制,并且它在某些时候仍存在一些问题。
通过下面的介绍,您可以对几个发行版有更深入的了解。
下面是一些需要安装到 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。
下述软件包需要安装到 Arch Linux,其需要用到 pacman 。
pacman -S base-devel bison git texinfo yasm openssh unzip
Puppy Linux 是一个非常特别的 linux 发行版,它关注于减少硬件占用,同时创造一个易于使用的用户环境。
对于 Puppy4.2.1,可能需要安装或者从源码编译下述的软件。
- Devx421.sfs
- yasm,(预编译包)
- Less,(预编译包)
- Cdrtools,(预编译包)
下述软件包需要安装到 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
下述软件包需要安装到 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
基于 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
Haiku 的构建需要大小写敏感文件系统。您可以使用磁盘管理工具(Disk Utility)创建大小写敏感磁盘镜像,然后用以保存 Haiku 源码树。
首先,安装 MacPorts(提供了标准的安装包) 关闭当前终端,然后打开新终端窗口,输入:
sudo port install cdrtools gawk gnuregex wget yasm
(可能会有提示,需要您输入当前账户的管理员密码)
如果出现错误 “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。
BeOS 和 Zeta 现在已经不是活跃的开发环境。在未来的某天,这些工具非常有可能需要由个人来提供更新。
- Git:当前不可用
- SSH:[net_server,BONE]
- 开发工具(包含过时的 GCC 版本,请使用下述的版本)
- GCC compiler 2.95.3
- GCC Haiku cross compiler 2.95.3(解压安装到:/boot)
- Jam,2008-03-37
- yasm 0.8.0 (用于BONE)
- wget
Cygwin是缺乏维护的开发环境。以下的说明由相应的社区提供。
- /community/forum/cygwin_nt_build_support
- /community/forum/how_to_get_haiku_running_in_virtualbox
- MauriceK's instructions
Solaris也是缺乏维护的开发环境。下面的说明也由相应的社区来提供。
- [openbeos] Building Haiku on Solaris... 摘抄自邮件列表