• lfs成功。 - [开源之旅]

    2011年02月14日

    只是借助jhalfs自动化脚本装到了虚拟机上,所以过程还算是比较简单,没出什么大的问题,最大的感受就是——很费时间。

    本文不知何原因在发布后(我在2011年2月14日发布)丢失了……真是奇怪。

  • 大概地扫完blfs…… - [开源之旅]

    2010年12月29日

    Tag:lfs blfs arch

    其实blfs的内容也不多,它并不会详细地介绍怎么去用软件,只是告诉你怎么把它装上。有实际学习意义的也许不过是头几章,或者是某个章节的开头部分。
    感觉lfs是个境界,通过盲目的复制粘贴手册上的命令来将系统拼凑好是毫无意义的,这跟直接装个发行版有啥区别?只是花了更多的时间与精力(当然还少不了电费)罢了。
    在我看来,最快捷高效的安装lfs的方式不是alfs,而是最小化地装个arch,然后执行pacman -Rscn pacman(如果还嫌装多了东西的话,可以把你不想要的东西卸载后再让pacman自杀),当然这样装下来的软件版本肯定会跟lfs手册上的有一定差别,但变通一下应该不成问题吧?这方法感觉理论上行得通,但没实践过。
    根据我的理解,要把lfs/blfs弄得得心应手,先要搞懂一个最基本的系统由什么构成(其实我现在也说不清楚),然后才能根据自己的需要在基本系统上加上自己所要用的东西,实现自己想要的功能。当然,要做到这个就得了解怎么去按照自己的实际来定制编译,你要清楚什么是库,怎么去解决依赖问题,进而有能力在编译出错时还能通过查看错误信息及相关资料解决问题。另外,在软件编译安装后的设置工作也是必不可少的(不过这应该不算是lfs的范畴)。

    最后再补充一句,其实我什么都不懂,以上内容纯粹是泛泛而谈,大家不妨当作笑话来看。

  • lfs... - [开源之旅]

    2010年12月25日

    在粗读了下netbsd的手册后,就不知咋的想起了lfs,这以前想都不敢想的发行版(严格来说,lfs不是发行版)。
    最吸引我的莫过于它的完全自定义,可以以此来构建一个适合自己的最小系统。
    与netbsd不一样的是,lfs的中文资源相对来说还算比较丰富(其实freebsd的中文资源也不少,对之前选择去看netbsd的英文手册有点后悔啊),所以我很容易地就找到了份lfs的中文安装来刨。
    lfs的手册比bsd的要短得多,看了一天多就看完了,但看完后才发现,我上当了,这手册只是教会你怎么去安装一个最基本的系统,系统的进一步构建(如装个X window什么的)需要你进一步去阅读blfs的部分,而那部分貌似是没有中文翻译的……其实,由于长年地接触linux,我的英语水平还过得去吧…… 只是要是有中文翻译的话看起来会快很多,而且也更容易理解。
    不说废话了,谈谈我对lfs的一些小小的看法吧(我只看完lfs的部分,blfs部分打算下星期再接着看)。
    由于lfs是没有任何的包管理的(这也是它为什么不能称作发行版的原因之一吧),所有的软件都要经过自己的手动编译才能安装,而且要保证每个软件的版本尽可能地与手册上(如果参考的是svn版本的手册的话,应该能使用几乎最新的版本)的相吻合(个别还要打上补丁),不然则可能出现编译失败的情况。这就造成一个问题,就是难以对所安装过软件进行更新(尤其是底层的),更新整个系统就意味着重装整个系统,而重装整个系统,就要花好几天了。不过,细想一下就不会怎么觉得这是个大问题,频繁更新的话其实不利于保持系统的稳定性。
    目前而言,我对lfs的困惑主要是在软件的安装与卸载方面,在手册中,会对某些软件安装后的文件进行位置的调整或建立一些软连接,这样一来产生的问题就是:如果我要对其执行make uninstall来卸载的话,就会找不到原来所安装的文件或清理得不干净了(本人有洁癖)。然而,其实在安装前对其Makefile打个修改安装位置的补丁应该就能避免这问题吧?为什么官方不统一采取这样的方法呢?其实我也不明白为什么这些软件在默认情况下会装到不恰当的位置中去……其作者的疏忽?
    还有就是关于依赖的问题,就是在安装时当然清楚要把相关的依赖都先装上,但当在卸载时要把之前所因被依赖而装上的软件(主要是库)也一同卸载掉就不是件简单的事了。解决这个问题的最简单的办法就是在安装软件时把因此而安装的依赖也记录下,等到要卸载时就明了了(可以为此写个迷你的“包管理器”)。
    当然这所有的问题都可以通过安装包管理器来解决,但这么一来的lfs就基本上成了该包管理器对应的发行版了(在我看来,众发行版的主要区别就是包管理),要是我在lfs上装个pacman那跟直接弄个arch的区别有多大呢?
    由于有安装手册的缘故,安装个lfs的难度比我远没有我想像中的大(其实就是复制粘贴一番加上耐心的等待而已),再过不久就放假了,真想弄个lfs来玩一玩。说不定在将来的某一天,lfs会把我硬盘上的arch取代掉(现在没这个打算)。

    注:lfs全称为linux from scratch,"from scratch"是个英文短语,有从头开始、白手起家的意味,其实lfs还有些很霸气的中文名(可见archwiki中的“Arch和其他发行版的比较 ”一文的中文版)。

    最后再补充一下,如果让我把linux分类的话,我会将其分成三类,一类是以ubuntu为代表的预装了一大堆臃肿的gui软件的对初学者很“友好”的发行版,另一类是以arch代表的一开始只为你提供最基本的系统,让你按照自己的需要去构建系统的发行版,最后一类是啥都不给你,只给你提供一本安装手册,要你自己从零开始去编译系统的lfs……