Kyd 发表于 2005-8-8 14:52:53

[翻译]Gentoo For OS X 安装与使用指南

Gentoo For Mac OS X 安装与使用指南
原文链接:http://www.gentoo.org/doc/en/macos-guide.xml
译者小声说:翻译得不好,不要笑话我,我是菜鸟一个! :oops: 尽情挑错吧。

1. 介绍

系统要求
为了安装Gentoo for Mac OS X,你必须已经安装以下软件:
[*]Mac OS 10.3 以上版本
[*]XCode Tools 1.2 以上版本

注意: XCode工具能免费从 Apple Developer Connection 成员网站下载(免费会员要求)。
重要: 我们强烈推荐XCode和X11软件开发工具包一起被安装。

安装程序
首先,你需要下载 Gentoo for Mac OS X 安装程序的磁盘镜像 (dmg)。当你挂载这个镜像文件 (双击它即可),它的内容就会出现在屏幕上的Finder窗口中;而在此你就可以看到安装程序的图标了。遵循屏幕上的指示运行安装程序。

Terminal.app
当安装完成并且退出后,你需要打开Terminal.app (或者另外一个终端仿真器)。如果你已经有一个Terminal.app开着,那就需要打开一个新的Shell窗口以便于终端任务认可安装程序所安装的软件。
警告: 使用除了bash外的其他shell就目前而言是不被支持的,其中大部分可能不会工作。你必须在Terminal.app中改变默认的shell:点击Terminal->Preferences(在菜单栏中),然后关闭“Execute this command”选项,键入 /bin/bash。

更新Portage
保持Portage的软件包信息数据库(大多数情况下我们称之为“Portage树”)最新是至关紧要的;它位于/usr/portage。Portage树掌握着每个软件包的信息以便于让Portage知道如何安装它们,包括Portage为你安装软件时所应遵从的指示。在我们继续之前更新这些Portage树的信息是极其重要的,它让我们清楚所有软件包的信息都是最新的。
为了继续我们的任务,只要你在终端中操作,就必须保持根用户的权限。如果你是计算机管理员,这一切就会变得相当简单,只要使用 sudo 命令即可。
代码 1.1: 取得root权限
$ sudo su
Password:
为了确保你的系统中具有最新的修正和软件包信息,你现在需要将你的Portage树与Gentoo服务器进行同步更新。
代码 1.2: 升级Portage树
# emerge --sync

配置
我们现在需要告诉Portage一点儿关于你的OSX版本的信息。Portage通过 /etc/make.profile 中的文件获悉哪些软件包已经被你的Mac OS X安装了,哪些软件包是针对你的Mac OS X的版本而被屏蔽的,以及一些默认的配置选项。你必须使用一个已供的配置文件,并且简单地提供给系统一个来自 /etc/make.profile 的别名到一个预写的配置文件中。对大多数人而言,这如同运行bootstrap配置脚本一样简便。
代码 1.3: 运行bootstrap配置脚本
# sh /usr/portage/scripts/bootstrap-macos.sh
如果你想手工链接你的配置文件,你可以从下列命令行中任选其一键入终端,选择一个适合你的系统的即可。
代码 1.4: 为你默认的配置文件取别名(适用于Jaguar或Panther)
# ln -s /usr/portage/profiles/default-darwin/macos/10.3 /etc/make.profile
代码 1.5: 为你默认的配置文件取别名(适用于Tiger)
# ln -s /usr/portage/profiles/default-darwin/macos/10.4 /etc/make.profile
注意: 高级用户也可尝试更进一步指定 /etc/make.conf 中的选项来配置Portage。当然,我们并不推荐普通用户这么做。

安装系统软件包
下一步,就要emerge你的系统了。这会安装Portage用来正常工作所需要的其他软件包。
代码 1.6: emerge系统
# emerge system
恭喜!祝贺!你崭新的 Gentoo for Mac OS X 安装已准备启程!

2. 使用Portage安装软件

安装软件
在Portage中安装软件,你所要做的仅仅是“emerge”。Portage会考虑并且解决软件包的所有依赖性关系。一旦你知道所要安装的软件包叫什么,一切就会变得如此简单方便!
代码 2.1: 安装Lynx
# emerge lynx

被屏蔽的软件包
照例说,你应该能安装任何软件包的组合,它们已经经过测试和更新,足以在你的Mac OS X中工作。而从目前而言,却只有一小部分的软件包没有被屏蔽。如果在一个ebuild文件中没有关键字“ppc-macos”加入,你就会得到类似于如下的讯息。
代码 2.2: 安装一个被屏蔽的软件包的范例
# emerge -p cowsay

These are the packages that I would merge, in order:

Calculating dependencies
!! all ebuilds that could satisfy "cowsay" have been masked.
!! possible candidates are:
- games-misc/cowsay-3.03 (masked by: missing keyword)

测试软件包
你也许想要自己测试一个软件包看它能不能工作,不管它是否被屏蔽了。而我们不建议普通用户这么做,只有那些希望帮助开发者测试软件包的用户才能毫无顾忌地解除屏蔽并在自己的系统上安装并运行他们。只要增加关键字“ppc-macos”到该软件包的信息文件,或像我们那样称之为“ebuild”,即可。想要增加“ppc-macos”到一个ebuild文件,你可以使用命令“ekeyword”,它是作为gentoolkit-dev软件包的一个组件被安装的。
代码 2.3: 安装 gentoolkit-dev
# emerge gentoolkit-dev
代码 2.4: 给一个软件包增加关键字
# cd /usr/portage/games-misc/cowsay
# ekeyword ppc-macos cowsay-3.03.ebuild
# ebuild cowsay-3.03.ebuild digest
如果该软件包编译成功并且完全运行了,请提交一份bug到 Gentoo Bugzilla (免费会员要求)来通知我们该软件能工作(或者尽管提交bug给我们的Gentoo for Mac OS X开发团队,邮箱是[email protected])。如果它不工作,就请提交一份bug给我们,附带你所收到的错误信息(通常这会有很多错误;复制并且粘贴在你看起来像错误的第一段到最后一段信息)。
对大多数软件包而言,它们需要X11的运行支持,所以你需要安装X11开发软件包。若在XCode安装进程中没有选择安装它,你之后可以从 X11SDK.pkg 文件中去安装,该文件能在你的XCode1.2的CD中的 Packages 目录中找到(双击进行安装)。你不能尝试去emerge portage。这是我们对于那些依赖于Portage的软件包的一个工作区(譬如gentoolkit)。
警告: 关键字“macos”已经废除,你不应该再继续使用它。

已经安装的软件包
如果你发现一个软件包已经被Mac OS X安装,你该在 Gentoo Bugzilla (免费会员要求)写一份bug提交。在你自己的系统上,你可以在 /etc/portage/profile/package.provided中增加一项以让Portage意识到这个软件包已经被安装。
代码 2.5: 增加一个包到 package.provided
# mkdir -p /etc/portage/profile/
# echo cat-name/package-x.y.z >> /etc/portage/profile/package.provided
注意: 开发者们深信有些软件包在你的Mac OS X上已经被苹果公司安装了上去,如果你想获得这些包的列表,你也可以查阅 /etc/make.profile/package.provided。
警告: 我们不建议你修改 /etc/make.profile/package.provided ,因为它会在每次Portage树更新时被覆盖(用“emerge --sync”)。

3. 使用CVS

大小写敏感问题
CVS中的脚本在非大小写敏感的文件系统上会出现问题 ,譬如 HFS(+) ,所以你需要创建一个大小写敏感的文件系统的镜像(我们推荐至少750MB大小),以便于你检验CVS的Portage树。下列命令中,无论哪个都能创建这样一个文件系统的镜像。
代码 3.1: 创建一个大小写敏感的 UFS 镜像
(用想要的文件名代替 “gentoo-cvs.dmg” ,
用想要的卷名代替 “Gentoo-CVS” 。)

$ hdiutil create -size 750m gentoo-cvs.dmg -volname Gentoo-CVS -fs UFS
代码 3.2: 创建一个大小写敏感的 HFS+ 镜像
(用想要的文件名代替 “gentoo-cvs.dmg” ,
用想要的卷名代替 “Gentoo-CVS” 。)

$ hdiutil create -size 750m gentoo-cvs.dmg -volname Gentoo-CVS -fs HFSX
警告: 开发者: 在通向Portage树根目录的路径中若存在空格,repoman就不能工作;你不应该在命名你的CVS镜像的卷名中加入空格。

4. 卸载

卸载脚本
要卸载Gentoo for Mac OS X,你可以使用 卸载脚本 ,它允许你选择是否想要unmerge你用Gentoo for MacOS安装的软件包。
代码 4.1: 卸载 Gentoo for Mac OS X
# sudo perl uninstall.pl
注意: 要卸载,你必须以root权限运行卸载脚本。

5. 可获得的软件包

概览
有好几种方法去查看含有关键字“ppc-macos”的软件包列表,也就是在Mac OS X中被注为稳定的软件包。因为目前有许多开发正积极努力地争取作为稳定的软件包被Gentoo for Mac OS X所承认,所以我们鼓励用户们时常去检查可获得的软件包列表。

Gentoo Fresh Mac OS X Ebuilds
Gentoo Linux Fresh Mac OS X Ebuilds 网站是官方 Fresh Gentoo Ebuilds 网站的一部分。它不仅列出了目前的ebuild信息,也允许搜索,并提供更流行的特性——RSS feeds。在 Fresh Gentoo Ebuilds Feeds List 中你可以找到 RSS feed for the latest ebuilds keyworded 'ppc-macos' 。

Gentoo-Portage.com
Gentoo-Portage.com 是一个非官方的Portage树的信息源,和 Fresh Gentoo Ebuilds 很像,但是在每个ebuild的信息素上提供了更多特性,譬如逆向查询每个包的依赖关系,等等。

6. 高级特性和故障排除

冲突保护
自动冲突保护是Gentoo for MacOS的一大特性,它能防止Portage覆盖那些原本并不自置于那儿的文件。这个特性能利用 FEATURES="-collision-protect" 来关闭。
代码 6.1: 允许portage覆盖Mac OS X的文件
# FEATURES="-collision-protect" emerge autoconf
警告: 关闭冲突保护极其危险,这有可能会导致系统不再工作。

emerge命令没找到
Gentoo for Mac OSX 安装程序通过增加 /usr/lib/portage/bin 到你的 PATH 环境变量来更新 /etc/profile 文件。为了简单运行 emerge ...,你也许要键入 “source /etc/profile” 或者登出再登录以避免键入完整路径(/usr/lib/portage/bin/<toolname>)来运行Portage工具。

<library>.a 出错
在安装 <library>.a 文件时,ranlib的运行用来确保库文件参考了合适的路径。当一个ebuild在执行 make install 时,文件事实上是被安装到了 /var/tmp/portage <package>/image 而非实际的活动文件系统(livefs)。 这意味着ebuild安装的库文件参考了错误的路径。这个问题只存在于darwin内核和其 <library>.a 文件中,而Gentoo for Mac OS X开发团队却一直在这方面努力工作。
根据Gentoo for Mac OS X的政策方针,安装库文件的ebuild必须在被赋予关键字“ppc-macos”前接受检查,以确保它们处于正常的工作状态。大多数情况下,库文件不工作的原因仅仅是因为它们参考了错误的路径。 对于那些不在这里的冒险者来说,对此这只是一个简单的小任务罢了。此外, ranlib 命令能修正库文件中错误路径的参考。
代码 6.2: 使用 ranlib 来修复无效的库文件
(用 “/usr/lib/libjpeg.a” 代替无效的库文件)

# ranlib /usr/lib/libjpeg.a

Portage的依赖关系
一些软件包是依赖于正在被安装的Portage的。就目前对Portage来说这还是个大问题:它并不知道自己已经被安装了。而Gentoo for OS X开发团队正致力于解决这个bug,这只是一个简单的工作区。尝试emerge任何软件包而忽略它的依赖关系是完全可能的。这就能用来避免Portage 的依赖关系,但是不能用于其它依赖关系。
代码 6.3: 在emerge时忽略依
# emerge --nodeps gentoolkit

The contents of this document are licensed under the Creative Commons - Attribution / Share Alike license.

shadyslim 发表于 2005-8-8 16:46:32

:mrgreen: 辛苦了,但是我没有苹果机。
斑竹过来加个精啊。

Kyd 发表于 2005-8-8 18:46:47

贴图(不是我的机子)!

http://www.metadistribution.org/macos/1.png
http://www.metadistribution.org/macos/2.png
http://www.metadistribution.org/macos/3.png
http://www.metadistribution.org/macos/4.png
http://www.metadistribution.org/macos/5.png
http://www.metadistribution.org/macos/6.png
http://www.metadistribution.org/macos/7.png
http://www.metadistribution.org/macos/8.png
http://www.metadistribution.org/macos/9.png

cnhnln 发表于 2005-8-8 23:06:26

:mrgreen: 辛苦了,但是我没有苹果机。

因为我没有苹果,所以就不用加精了 :mrgreen:

Kyd 发表于 2005-8-9 09:49:49

强烈要求找个用Mac的版主!杀死3n! :twisted:

flycity 发表于 2005-8-9 19:06:20


强烈要求找个用Mac的版主!杀死3n!

行了,弱女子别欺负,否则。。。

shadyslim 发表于 2005-8-9 19:16:16

强烈要求找个用Mac的版主!杀死3n! :twisted:
那你去www.macfans.org得了。 :mrgreen:

cnhnln 发表于 2005-8-9 20:55:53

凸-_-凸,技术版严禁BT

楼主辛苦了,精一次吧 :mrgreen:

Kyd 发表于 2005-8-9 21:17:49

3n是男仔,我打赌! :twisted:

cnhnln 发表于 2005-8-9 21:31:45

不用赌,你赢定了 :mrgreen:

linky_fan 发表于 2005-8-9 22:53:24

来晚了, 来晚了, 精一个 :-D

linky_fan 发表于 2005-8-9 22:55:09

附带说一句, 楼主的排版很不错. 都是kuye的旧爱and新欢 :wink:

Kyd 发表于 2005-8-10 10:12:41

我是Kuye徒弟。 8)

linky_fan 发表于 2005-8-10 19:31:15


我是Kuye徒弟。

贴出pp才承认. :twisted:

Kyd 发表于 2005-8-10 20:33:55

你问Kuye吧,不过他也没见过我的照片~哈哈 :P
不过他的样子被我窥见了。。 :lol:
页: [1] 2
查看完整版本: [翻译]Gentoo For OS X 安装与使用指南