-
认真看过此博的人会注意到,我所写的博文尽管有很多是关于linux的,但却极少(不过还是有的)会认认真真地对某些问题或软件的设置进行叙述……
这是为什么呢?因为我觉得有很多问题在网上随便一搜便能找到令人满意的结果,我没必要在此进行重复地说明(再说,其实我这人很懒!),我写的大多数文章都只是为了记事罢了……
不过,如果我遇到某些很难找到解决方法的问题(例如最近所写的mount img),而且时间允许的话,我还是会很乐意认真写写,跟大家分享的……
-
meego就快来了! - [开源之旅]
2011年06月21日
其实我期待的不是meego,我期待的是因meego这一纯正的linux发行版而来的一系列的手机应用,要知道理论上在meego上能用的东西都可以在所有linux发行版上使用(前提是该发行版支持相应的架构),这样一来(不知道你所期待的是否跟我一样),相信在不久的将来,在手机上装上并使用(包括打电话、发短信)自己喜爱的linux发行版(希望arch那时候能支持arm架构)将成为现实。
顺带希望一下以后的手机别都是全触屏的吧……要是到时有那么几款能带上全键盘(最好是直板的,侧滑的太麻烦),而且键盘上能有esc, tab, ctrl跟alt(没有也不是什么大问题,肯定有办法模拟的)就更好了。
刚才算了算,等meego全面上市还要差不多一年,普及(应该有这个可能吧?前提是不被android扼杀在摇篮之中(其实本人热切希望meego能把android干掉))并发展(开源的东西迅速发展起来应该不难)到成熟(如果能发展到这一步,那android估计是完了)大概还要起码一两年,所以,估计这美梦要等到我差不多大学毕业才可能实现啊……
-
这个学期的学习计划基本上完成了。 - [轻描淡写]
2011年05月07日
最近几个月又看了不少书(基本上一星期看一本吧),把shell(主要是学写bash脚本)跟正则表达式都弄得比较熟悉了,下一步准备学perl(原本是想先学python的,不过看完《精通正则表达式》(这书绝对是经典中的经典啊)后就改变主意了),小骆驼,大骆驼,我来了!
-
差一个月就要高考了…… - [轻描淡写]
2011年05月06日
当然不是我去考,但还是感觉这一年过得真快,光阴似箭啊……再过几个月就要当别人师兄噜。
-
新的musca... - [开源之旅]
2011年04月30日
比之前的又轻了一个档次。
-
回归musca... - [开源之旅]
2011年04月30日
我之前曾说dwm的扩展性比musca的要好很多,但自从我发现dwm不支持wmctrl,而musca可以通过"musca -c"进行外部调用后,就发现这句话说反了,起码对于像我这些不会hack底层的C代码的菜鸟来说,musca的扩展性比dwm要好不少,而且musca的手动平铺(manual tiling)也比dwm的动态平铺(dynamic tiling)要实用不少。
尽管尽管musca的作者已经停止了对其的开发,不过就目前而言,真的找不到有比它更适合我的窗口管理器。
-
回归firefox! - [轻描淡写]
2011年04月02日
最近那chromium老是把要访问的页面弄成下载的,快把我折磨死了……
刚才试了试firefox 4,发现还是长进了不少(要是启动速度能更快点就更好了),配上pentadactyl(一个又长又怪的名字)后比chromium强大多了。
所以,我决定回到firefox的怀抱中去了……哈哈
-
这学期不啃算法,不学C(其实我在放假时已大致看完kr了),集中精力学写脚本,先学bash,再学python或perl(有时间的话就都学学看)!
-
只是借助jhalfs自动化脚本装到了虚拟机上,所以过程还算是比较简单,没出什么大的问题,最大的感受就是——很费时间。
本文不知何原因在发布后(我在2011年2月14日发布)丢失了……真是奇怪。
-
今天就要回老家了。
预祝大家新年快乐,身体健康,阖家幸福!
-
应要求发布一下我的状态栏脚本。 - [开源之旅]
2011年01月24日
-
别了firefox。 - [开源之旅]
2011年01月21日
诟病于firefox的臃肿笨重(它是我硬盘中唯一一个不能瞬间启动的软件),我早就萌生了找个轻量级浏览器(当然要带有vi-like的键位绑定)将其取代的想法。
原计划是使用vimprobable(干嘛要取个这么长的名字呢?),昨晚折腾了一晚,这东东的轻量级堪比dwm,我也好不容易为其给tabbed写了个xft补丁(主要参考了dwm的xft补丁)来实现tab的中文显示,但最终还是放弃了,不仅仅是因为其功能实在太少,而是因为它真的不怎么稳定,不时会出现按键没有响应的问题。
然后我选择了uzbl(好奇怪的名字,我将其读作usable),从早上起床后弄到了下午4点多,最终也无奈地放弃了它,因为它配置起来太复杂了,要借助一大堆脚本才能实现比较完整的功能(当然,这表明它的扩展性很好),这样一来就产生了稳定性的问题,到最后还是什么都配置好了,就是老是用着用着就跟vimprobable那样按什么键都没有响应了,真是让人抓狂。
所以,到了最后,我还是选择了chromium,这个我大半年前就用过的浏览器,虽然比不上前二者的轻巧及扩展性,但胜在之前多次提到的稳定性,从安装到配置完毕花了不到1个小时,用得还算省心,装上autopager后的功能也绝对是前二者无法比拟的,而其vimium扩展也比我之前使用时强大了不少(当然还是比不过firefox的vimperator扩展)。之前出现的资源占用问题应该也有所改善了(猜的),如果不出什么问题就暂且再用它一段时间。
期待vimprobable跟uzbl早日成熟吧。
今天应该正式跟firefox告别了,我看着你长大,我看着你变得臃肿……不愿再看着你没落了。
-
没错,我总算成功地把开机时间压到10秒内了。 我主要参考了以下两篇wiki:https://wiki.archlinux.org/index.php/Improve_Boot_Performancehttps://wiki.archlinux.org/index.php/Maximizing_Performance我的经验(只是对于我的笔记本而言,可作参考)有:1.对于/etc/inittab的修改只需把"rm:2345:wait:/etc/rc.multi"这行的wait改成once,连其它也修改的话反而会使开机更慢;2.精简编译内核对于开机速度的改善并不明显,嫌麻烦的话可以跳过这一步;3.在Maximizing Performance一文中的"Compressing /usr"部分所介绍的把/usr压缩成squashfs的方法也可减少2-3秒的开机时间;4.尽管rc.sysinit占开机过程中占了不少时间,里面也看似有很多不必要的东西(例如lvm,加密设备等),但建议还是不要对其进行精简了,因为精简的效果往往不明显,而且一不小心就会导致无法正常开机,不建议花时间在修改这文件上。你要是真想对这一部分进行优化的话,你可以干脆把系统自带的initscripts换成更快的systemd来启动,但要是这么做的话就要修改一大堆地方来与之配合,而且会把arch的一大特色弄没了,所以我不建议这么做;5.如果嫌安装bootchart来统计开机时间麻烦的话,可以采用以下方式来更简单精确地(精确至0.01秒,而bootchart只能精确到秒)记录下开机时间:在.xinitrc文件的末尾处的启动wm(窗口管理器)命令前添加一行:[ -e /tmp/boot_time ] || cat /proc/uptime | cut -d ' ' -f 1 > /tmp/boot_time这命令会将系统在bootloader引导后至启动wm前的那一瞬间(所以不包含wm的启动时间,但基本上可以忽略)所经历的时间(uptime)记录到/tmp/boot_time,执行cat /tmp/boot_time就可查看本次的开机时间了。 -
终于放假了!
-
2010就要结束了~ - [轻描淡写]
2010年12月31日
这算是我人生当中最重要的一年了。 我经历了高考,游过了世博,考上了华工,感受了亚运…… 还看了好多的书(主要是上大学后看的),学到了很多早就想学但又没时间学的东西…… 总而言之,我这一年过得很充实。
-
使用ccache来加快内核编译…… - [开源之旅]
2010年12月29日
在这里就不作什么介绍说明了,我只告诉你,借助它,我现在编译内核只需2分半钟……推荐像我这样通过频繁编译内核来逐步精简内核的朋友们使用。
值得一提的是,我现在已将内核的安装包减至2.2兆了,这次我就不再说已经精简到极限了(因为之前已经说了好多遍简不能再简,现在看来真是自打嘴巴)。
-
错怪了parcellite…… - [开源之旅]
2010年12月29日
我刚才才发现我之前用来代替parcellite的anamnesis居然要占用近10兆内存!装回parcellite才发现其实它也可以在后台以非托盘的形式运行,换回parcellite后,那开机内存占用已经低于40兆(37兆左右)了!还是parcellite实在。
我现在以parcellite -nd(-n为非托盘,-d为以daemon形式运行)来启动它,需要查看剪切板时只需在命令行下执行parcellite -c(或-p,详情请见parcellite --help)。
-
大概地扫完blfs…… - [开源之旅]
2010年12月29日
其实blfs的内容也不多,它并不会详细地介绍怎么去用软件,只是告诉你怎么把它装上。有实际学习意义的也许不过是头几章,或者是某个章节的开头部分。
感觉lfs是个境界,通过盲目的复制粘贴手册上的命令来将系统拼凑好是毫无意义的,这跟直接装个发行版有啥区别?只是花了更多的时间与精力(当然还少不了电费)罢了。
在我看来,最快捷高效的安装lfs的方式不是alfs,而是最小化地装个arch,然后执行pacman -Rscn pacman(如果还嫌装多了东西的话,可以把你不想要的东西卸载后再让pacman自杀),当然这样装下来的软件版本肯定会跟lfs手册上的有一定差别,但变通一下应该不成问题吧?这方法感觉理论上行得通,但没实践过。
根据我的理解,要把lfs/blfs弄得得心应手,先要搞懂一个最基本的系统由什么构成(其实我现在也说不清楚),然后才能根据自己的需要在基本系统上加上自己所要用的东西,实现自己想要的功能。当然,要做到这个就得了解怎么去按照自己的实际来定制编译,你要清楚什么是库,怎么去解决依赖问题,进而有能力在编译出错时还能通过查看错误信息及相关资料解决问题。另外,在软件编译安装后的设置工作也是必不可少的(不过这应该不算是lfs的范畴)。
最后再补充一句,其实我什么都不懂,以上内容纯粹是泛泛而谈,大家不妨当作笑话来看。 -
后天要军训……(冬天军训是华工的特色)
-
在粗读了下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……
-
把《鸟哥的liunx私房菜》的基础部分看完了。原本想接着看关于建站的部分,都老是看不起劲,可能是因为感觉这方面目前对我而言不怎么实用的缘故吧。
再加上之前在阅读完《unix 编程艺术》后才发现众unix(准确来说应该是unix-like的bsd,下文就用bsd吧)有着相对于linux而言更正宗的血统,在口碑上也比 linux要稳定(网上听说的),加上之前从arch的wiki中得知其简洁到极致的系统初始化(init)方式(只需一个rc.conf就能搞掂所有相关的设置)是借鉴于bsd而来的,所以bsd就给了我一个既稳定而又简洁的美好印象(我以前总觉得它很落后)。
于是,我决定走近bsd的世界中看看。
我遇到的第一个问题就是选择了解哪个bsd好呢?freebsd好?netbsd好?还是openbsd好呢?
最后,经过我近一天的对比它们在网上各自的评价后,最终选择这在三大bsd中关注度最低(根据distrowatch)的netbsd,原因就是它是这三个bsd中最简洁的,而且有着比ports更好的包管理系统pkgsrc。(后来发现还是选freebsd比较好,原因是其手册有中文版,所以应该比较容易上手)
接着,我就开始阅读netbsd(下面简称nb吧)的手册(handbook),我发现无论是每个bsd都有一本很详尽(最详细的当数freebsd)的官方手册,手把手地去教你如何使用它,这点跟linux很不一样。有了手册就大大地减小了学习的难度了,由于我只是想了解一下bsd,并没有用其来取代arch的打算,所以只是在手机上对其手册进行阅读(全英文的,看起来很费劲!),看了大概有三四天吧,看到第四部分(关于建站的)就没看下去了,而且也将其的包管理pkgsrc的说明书看了一大部分。虽说只是纸上谈兵,没有实践安装过,而且看得很粗(看外语的话很难看得仔细),但多多少少也对之前几乎陌生的bsd有了个初步的认识,在这里给大家分享一下吧。
首先在包管理上(以nb的pkgsrc为例,其它的应该也差不多),一种是通过直接使用预编译了的包(也就是pkgsrc中的pkg);另一种是通过系统提供的方式来管理源代码,实现自定义编译安装(也就是pkgsrc中的src)。尽管与arch的类似,但在使用上估计自动化的程度要低很多。在bsd上貌似不可能像arch那样pacman -Syu一个命令就把整个系统更新一次(不过写个脚本来实现应该没问题),理论上还是可以像arch那样rolling release的,只是比较烦琐。
另外在系统的结构上也跟linux的有很大的区别,linux主要就是一个内核然后搭上众多的程序,其内核是通用的,而bsd则分为基础系统(由内核跟底层程序构成)跟另外安装的包,而对于不同的bsd其基础系统是不一样的。在这点上linux更为灵活,但可能磨合程度不如bsd的高,我还是比较喜欢linux这种模式(这估计是linux有众多发行版的主要原因吧)。
不得不提的是bsd的init模式,果然是如arch那样基本上一个rc.conf就把初始化的相关设置搞掂,但是,我发现nb的rc.conf设置跟arch的还是有所差别的,我可以很肯定地说,arch的rc.conf绝对比nb(前面提到nb已经是最简洁的了)的rc.conf简洁明了,arch的daemon设置只需要一行,但nb的却要对每个daemon都写上一行如foo=YES(而freebsd的写法是:foo_enable='YES')的东东,在这点上arch的rc.conf绝对是青出于蓝。
另外,bsd与linux的区别还有:更为宽松的bsd协议、对于新硬件的支持方面相对不足及不一样的文件系统(可以使用传说中的zfs)……
(以上内容毫无权威性,请痛批谬误之处)总的来说,bsd从系统的构成而言确实要比linux的可靠,但要说使用上的简洁方便嘛,arch在这点上比号称最简洁的netbsd都要优秀。对于桌面应用,感觉还是linux要出色一些。







