LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
123
返回列表 发新帖
楼主: qiujindong

求救

[复制链接]
发表于 2007-8-3 05:16:53 | 显示全部楼层
Post by abcbuzhiming
俺已经把stage3和portage包给下载到自己机器,并且集成到那个最小化installcd上了,按照安装手册,直接挂载解压即可,何必下载呢……

PS:你说到这个我突然想起来一个很重要的事情,国内那些镜像能不能作为我在网络设置中的更新镜像,比如基础区提供的这个地址

http://mirror.lupaworld.com/gentoo/

我看了看基本上这些镜像他们目录的格式都一样啊,难道不能把他们作为的sync镜像吗


你需要弄清楚很多基本概念。

  1. #include <stdlib.h>

  2. int  main()
  3. {
  4.       printf("Hello world!");
  5.       exit(0);
  6. }
复制代码


比如这么一个源程序,我需要执行,就需要调用printf函数,这个函数并不是由操作系统内核提供的,或者换句话说操作系统内核的显示接口并不能这样直接由程序调用,于是由glibc把内核调用做了包装,使得应用程序能够正常运行。

现在再说安装软件包,把上面的程序存成hello.c,再加上编译用的makefile,打包后变成hello.tar.bz2,就是通常你看到的软件包的源代码包的主要内容。这里的hello.c是由文本字符组成的源代码文件,是不能直接执行,需要编译的,通常的linux发行版本都是把源代码编译好后的可执行程序包装在一起,这种叫二进制发布,而gentoo是直接使用由源代码文件制成的包。那么就象我前面说的,这个包不能直接执行,必须经过编译。因此与普通的发行版不同,gentoo安装实际上是先由装编译器开始的。

所谓内核,并不提供通常程序使用的那些函数之类的,内核的作用就是驱动硬件,然后给应用程序提供系统接口,而为了兼容,这些接口也不是直接由应用程序调用的。简单说stage3提供了这些外围的一系列软件和库(详细说其实还不止,这个牵涉到stage 1 2 3的区别,就不多说了),但是未必是最新版本的,最新版本的需要你自己安装。

一个可启动的系统必须包括一个可以执行的二进制的内核,还有上面说的那套软件和包(都是二进制的),对于gentoo来说,为了能使安装进行,并且管理软件包,还需要与portage有关的一系列软件(也都是二进制的),除了内核以外,这些东西都包括在stage3里面。

当你使用emerge gentoo-sources命令的时候,与通常的包不同的是,正如这个包的名字暗示的,它只负责安装内核的源代码,就是一堆文本字符组成的源程序。所以安装的人需要自己编译内核,根据自己的机器做内核的配置,编译好以后,拷贝到/boot,并且设置grub以便从此内核(二进制的)启动。

刚才说了stage3里包括的是portage的软件,二进制的,可以执行,就是说管理软件的程序已经有了,但是巧妇难为无米之炊,你有了能做饭的人,还需要有米下锅。所谓的portage树,里面其实是全套菜谱,就是说里面包括了各种软件如何编译安装的流程脚本,由emerge命令这个巧妇依照相应的脚本来安装相应的软件。而你奇怪的要下载的那些东西,就是真正的米,也就是以tar.bz2形式发布的软件的源代码的包。这些包,有的在emerge过程中从相应的网站上下下来,也可以直接用emerge -f命令,只下载,不安装。下载后的这些米和菜,都扔在/usr/portage/distfiles目录下。所以emerge的过程实际上是检查/usr/portage/distfiles目录下有没有相应的源代码包,如果有,就进入编译安装的过程。

你要想真正避免从网上下载,除了安装好portage的软件系统(厨师),下载解压portage目录树(菜谱系统),还要把软件的源代码包(米和菜)都拷贝到/usr/portage/distfiles目录下。一个说明就是gentoo的内核源代码,gentoo-sources是作为系统其中一个源代码包的,所以emerge gentoo-sources也与其他软件处理方式类似。这些跟stage,跟portage树的快照都没关系。

其实中间细节还有很多,比如GRP安装的问题,还有只编译不安装。这些就不赘述了。
回复 支持 反对

使用道具 举报

发表于 2007-8-3 12:26:06 | 显示全部楼层
Post by meteo
你需要弄清楚很多基本概念。
[CODE]


刚才说了stage3里包括的是portage的软件,二进制的,可以执行,就是说管理软件的程序已经有了,但是巧妇难为无米之炊,你有了能做饭的人,还需要有米下锅。所谓的portage树,里面其实是全套菜谱,就是说里面包括了各种软件如何编译安装的流程脚本,由emerge命令这个巧妇依照相应的脚本来安装相应的软件。而你奇怪的要下载的那些东西,就是真正的米,也就是以tar.bz2形式发布的软件的源代码的包。这些包,有的在emerge过程中从相应的网站上下下来,也可以直接用emerge -f命令,只下载,不安装。下载后的这些米和菜,都扔在/usr/portage/distfiles目录下。所以emerge的过程实际上是检查/usr/portage/distfiles目录下有没有相应的源代码包,如果有,就进入编译安装的过程。

不是这么解释的吧,emerge同步的过程貌似不下载源代码包的,如果他下源代码包,那要下多久啊,很多大型软件的源代码包都很大,只有在用emerge安装某程序时,emerge才会去下源代码,这是我的理解,同步过程仅仅是更新软件树而已
回复 支持 反对

使用道具 举报

发表于 2007-8-3 15:27:48 | 显示全部楼层
Post by abcbuzhiming
不是这么解释的吧,emerge同步的过程貌似不下载源代码包的,如果他下源代码包,那要下多久啊,很多大型软件的源代码包都很大,只有在用emerge安装某程序时,emerge才会去下源代码,这是我的理解,同步过程仅仅是更新软件树而已
原来看错了

不过meteo没有说同步的时候下载源码包
回复 支持 反对

使用道具 举报

发表于 2007-8-4 05:14:35 | 显示全部楼层
Post by abcbuzhiming
不是这么解释的吧,emerge同步的过程貌似不下载源代码包的,如果他下源代码包,那要下多久啊,很多大型软件的源代码包都很大,只有在用emerge安装某程序时,emerge才会去下源代码,这是我的理解,同步过程仅仅是更新软件树而已


我没说sync要下源码包
sync是更新菜谱
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表