显示标签为“软件”的博文。显示所有博文
显示标签为“软件”的博文。显示所有博文

2010年3月10日星期三

被迫升级arch

今天凌晨更新了opera到10.10,无奈无法运行,说我需要libpng12,但你这里是libpng14。
——arch方便之处:以前用ubuntu的时候,遇到这种情况会陷入依赖地狱(可能因为当时手还很生)。而在arch,yaourt一个libpng12即可

今天上午再次打开电脑,smart登录管理器无法载入,awesome也无法加载壁纸,说我需要libjpeg7,但你这里是libjpeg8。于是依葫芦画瓢,yaourt了libjpeg7。

想看部电影,打开mplayer,说我也罢工了。无奈,只好pacman -Syu,好家伙,有800MB的更新需要下载。下着吧,更新完毕之后把libpng12和libjpeg7移除,一切正常。

对于滚动更新的arch,以后我该频繁定期更新还是半年才更新一次呢?

西厢计划试用成功

在twitter上看到同样热衷于翻墙的推友有一条关于“西厢计划”的推,点开一看,原来是一种用于linux系统的基于netfilter的翻墙技术。竟然还有linux专用的翻墙技术也,不试试怎么可能。

1、下载安装包:目前处于alpha阶段,貌似没有什么现成的包,只有到项目的googlecode页去下载源码包了
2、准备必需工具:除了INSTALL中要求的autoconf,automake,libtool之外,arch用户还需要安装kernel26-headers和ipset4(后者从aur安装)
3、按照INSTALL说明的步骤安装。make install完成之后测试时,iptables会报错说找不到libipt_ZHANG.o什么的,这时候把源码目录中extensions下的libxt_ZHANG.o拷贝到/usr/lib/iptables/libipt_ZHANG.so,并类似处理libxt_gfw.o就可以了,以后还有需要用到的iptables扩展可以做类似处理
4、用firefox测试:关掉autoproxy,连接youtube速度那是刚刚的,比youku、tudou什么的快。不过还是不时会出现连接重置,查看/var/log/iptables.log会发现连接重置果然是由gfw导致的,但是如何解决目前还不知道。。。
5、目前哪些网站要用西厢还要在ipset中自定义,所以我主要用它连接youtube等用翻墙软件无法很好的解决的网站,其它网站还是用autoproxy,不过要在其gfw-list中把对应youtube的项目去掉
6、作为一个linux使用者而非开发者,只有在此默念火星咒希望西厢开发顺利了。感谢开发出这项应用的童鞋们:_)

2010年1月18日星期一

vimperator与vrome

作为好用vim的非编程人员,能够像控制vim一样控制网页浏览器是我梦寐以求的浏览方式。于是有firefox的插件vimperator,和chrome的插件vrome。

vimperator的确十分强大,完整支持vim的3种模式,帮助也是以vim的方式查看,总体来说完成度十分高

vrome目前正在完善中,不支持vim的命令模式,这样就少了很多功能。而且在网页还在load的情况下以及打开空白标签的情况下好像还没法用。所以怎么说呢,只能说这个插件目前还正在完善。中vim毒者如我还是继续用firefox+vimperator先。

2010年1月16日星期六

终于又用上tor了

前面说了,tor在我这里已经好久没法用了。前几天在某网站下载了GTunnel Bundle,里面有tor。没有任何理由的运行了这个tor,竟然很快的连上了。

我想这可能是因为这个Bundle里面有个叫vidalia的软件的关系,于是在费劲下载了linux版本的vidalia编译安装。然后运行vidalia,连接不上,永远卡在"no current certificate known for authority moria1" blabla。也考虑过可能是节点有问题,参照twitbrowser.net的“如何剔除所有大陆节点”,在torrc中加入了ExcludeNodes {cn},但是没有效果。于是就没招了,依次试了以下方法:
1、导入最新版本的geoip
2、把在windows下试用成功的vidalia和tor的配置文件原封不动拷贝到linux下面
3、升级tor为最新的tor-git
4、让tor用your freedom的代理来连接节点
5、抓狂
结果错误信息还是依旧。

在google上搜索这个错误信息,得到的帖子不多,都没有结果,好像这根本就不是问题似的。还有一个帖子最下面直接说这个issue已经被关闭了,关闭原因是“这不是一个bug”......汗

最后灵机一动想到一点:在windows上试用成功的bundle不是torproject官方的!于是下载了torproject官方的bundle,结果是,错误信息跟linux下的一模一样。想了想,翻墙牛人门你们总不会修改源代码吧,而且综合来看我遇到的问题确实不应该是bug,所以最后还是把问题锁定在欺诈节点上。

重新仔细看“如何剔除所有大陆节点”这篇文章,发现两点问题:
1、原来好像即使编辑了torrc,也要连接成功并开/关连接成功的tor若干次之后才能实现剔除这些节点
2、从一张截图中看到,在实现剔除节点的时候实际上是配置了网桥的(我下载那个能用的bundle的时候原帖很郑重的说了“我们没有配置网桥哦”...T_T)
于是配置最新网桥,连接tor。在出了一些警告之后竟然慢吞吞连上了。再开关几次,没有警告,连接迅速。取消网桥,也可以迅速的连接,看来我猜对了,不知道这算洗具还是一大堆杯具。一念之差,浪费了差不多4个小时

Vimperator+Stylish

觉得纯白的背景太伤眼睛,于是装了stylish插件,从userstyles.org/stylish下载了一个叫做midnight surfing的style,又google了一下对眼睛据说最好的浅绿色的html代码并据此修改了一个daylight green的style,对豆瓣兼容基本完美。

然后发现vimperator的hint模式下每个hint的字体颜色都成了白色(原来是红色),大为不爽。下面乃解决过程:
1、进入~/.mozilla/firefox/****.default/extensions/vimperator***blabla/chrome,发现里面只有一个jar而不是一堆.js文件

2、google之发现必须用sun jdk中的jar工具才能把这个jar包解开,害的我又在小妾win server机器上装了jdk

3、进入cmd
cd C:\Program Files\Java\jdk****\
jar xf vimperator.jar,得到一堆文件

4、看了看hints.js,其中没有颜色相关的配置。最后算是找到了style.js,把里面Hint section里的color由原来的white改成red,并且把字号从10pt改到了20pt

5、jar uf common\content\style.js vimperator.jar

6、备份原来的vimperator.jar并用这个替代,问题解决

ps: 使用vimperator后,要下载stylish.js(到vimperator lab的网站搜索)放到~/.vimperator/plugin中才能使用stylish。最常用的用法是:stylish toggle在安装的各种style之间切换
psps:虽然可以在~/.vimperatorrc中自定义初始化设定,但是我想要初始化时便让所有网页放大,在.vimperatorrc中设置了:zo! 120之后没有效果,估计于时间顺序有关

2009年6月25日星期四

OpenVPN翻墙

其实blogger很早之前就被屏蔽了,由于太忙,想大不了有什么想写的写在豆瓣日记里呗,所以就没有积极的考虑翻墙。最近google reader和www.google.com终于也被屏蔽了,越想越气,这人还怎么活。开始积极的思考翻墙。

首先想到的是tor。tor确实好配置,不过龟速实在难以忍受,于是想到了OpenVPN。目前找到了两个免费的OpenVPN服务,分别是ultravpn和alonweb。首先到alonweb的官方网站下载必要的文件,解压到家目录中。然后把解压出的alonweb.conf中的"redirect-gateway"改为"redirect-gateway def1"(如果你自己是处于一个LAN网络中已经有一个default gateway的话)。

modprobe tun,然后sudo openvpn --config alonweb.conf --ca alonweb.crt就可以启动openvpn了,不要忘了先要安装openvpn这个软件,和在alonweb的官网上注册。

然后就可以测试了,ping xxx.xxx.0.1(这是启动openvpn时提示信息最后几行中显示的),如果能ping通,就成功了一半。至此,就建立了自己的电脑到远程vpn服务器的一个隧道。如果启动openvpn时把"redirect-gateway"注释掉的话,使用route命令查看一下本地的路由表,会发现只有到xxx.xxx.0.1的连接会通过新建立的隧道,而其它通信还是通过原来的网关。但是我们用vpn的目的就是用来翻墙,所以必须要进行一些额外的配置。其第一步,就是在配置文件中设置redirect-gateway def1(刚才我们已经完成了),接下来还有2步:
1. sudo sysctl -w net.ipv4.ip_forward=1,允许内核进行ip forward
2. 设置iptables:
iptables -t nat -A POSTROUTING -s xxx.xxx.xxx.0/24 -o eth0 -j MASQUERADE
/etc/rc.d/iptables save
/etc/rc.d/iptables start
注意这里的xxx.xxx.xxx.0/24是你自己所处的实际内网的网段,与OpenVPN的输出信息完全无关。我就是在这里纠结了好长一段时间,后来想想,这里的含义应该是:由于我处于这个内网,我的所有访问必然会经过这个内网,所以只要把与这个内网的所有通信都route到隧道就可以了。

经过以上的设置,本机所有的网络通信都通过隧道进行,这显然不是最合理的。至于如何精细调节,可能就要在iptables或route上下功夫了,不在本文讨论之列。经测试,速度还是可以忍受的,比tor要快得多。

最后ps一下:alonweb是有广告的(ultraweb还没试),不过这对于我来说反而是一种安慰——自由软件事业还是需要大家的支持。

2009年5月2日星期六

更快的查看mldonkey进度的方法

以前要查看mldonkey,比较简单的方法是用web界面或第三方gui如sancho。下面介绍更简单的利用telnet查看进度的方法。

1. 编辑~/.bashrc,加入一行:

alias m='(echo "auth username password";echo vd)  | nc -q 1 localhost 4000 | awk '"'"'/\[D/{print"\033[0;32m"$7"\t\033[4;31m"$8"%\033[0m\t",$14"KB/s"} /Down:/'"'"' |head'

然后source ~/.bashrc就可以用m来查看前10条进度记录了。


2. 多用户的权限配置策略

如果是单用户的话,没什么好说的,把你的用户名和密码写在上面的命令中,然后想办法保证.bashrc文件不会被别人看到就ok。

如果是多用户,假设自己是管理员user1,还有一个一般用户为user2。我想查看所有用户的进度,但是user2只能查看自己的进度。并且为了安全起见,用于查看的用户没有管理员权限,则可以如下配置用户和组:

user========group=====================admin

admin=======mldonkey==================true

user1=======mldonkey group1==============true

user2=======group2=====================false

view========group1 group2===============false


group============admin

mldonkey==========true

group1===========false

group2===========false


并把user1的默认group设置为group1,如此设置的效果为:admin基本不用;user1具有管理员权限,但是它下载的文件属于group1组,能够被view用户看到;user2只能看到自己的下载的文件,但是view用户也能看到user2下载的文件。剩下的就只需要保证.bashrc不被别人看到了,其实看到了也无所谓,大不了把我下载的文件取消了,至少无法改变我的设置


3. 可能用到的命令

以下为telnet命令:

groupadd group1 true/false #true则该组具有管理员权限

useradd user passwd group

useraddgroup user group #把user加入到group组中

userdgroup user group #设置user的默认group

chgrp num none/group #把某一个下载进程的所属组改为group,none则为只有其所属用户才能看到

以下为shell命令:

cd ~/.mldonkey && mv files.ini temp && cat temp |sed 's/mldonkey$/group1/g' > files.ini && rm temp #把以前用管理员帐号下载的文件的group值都改为group1




Powered by ScribeFire.



2009年4月30日星期四

VIM的插件式输入法

刚加入douban上的vim小组,然后发现了vimim这个插件式输入法,试用之后,我感动得都快要哭了。
自家的xterm一直没有搞定中文输入(可能是因为ibus本身就不太完善的关系?),因此虽然终端和vim能够显示中文,但是在终端vim下无法输入中文很是郁闷。安装了这个vimim插件之后,奇迹般的搞定了终端vim的中文输入而且不会出现ibus的种种奇怪问题,可以说是最近除了完成LFS的创建以外最振奋人心的事。
一下是安装过程:
1. 到这个网站的下部下载插件
2. 在这里下载码表,我下载的是拼音码表
3. 把上述文件放到~/.vim/plugin文件夹下,如果没有的话直接创建即可
然后就可以测试了:
vim test
在插入模式下按下ctrl+^(实际上就是6)键,此时vim的提示区显示为"--插入(语言)--",然后输入拼音就会出来选字框了,空格选字。其它很多种玩法在这里有介绍,还没有来得及全部试,试了一下“点石成金”貌似很好玩。

另外,firefox也有一个嵌入式输入法名为fireinput,我用opera不准备尝试,有兴趣的朋友可以一试。

linux下的chromium试用成功

以前曾经试过,没有成功,隔了1个多月再来测试,已经基本可用了。

安装:
arch下直接使用AUR即可,如果安装了yaourt,直接yaourt -S chromium-browser
其它发行版自己看看不稳定仓库里面有没有吧,或者可以自己用google code上的源代码编译

运行:chromium-browser

测试:打开普通的英文网页和中文显示都没有问题,下载也还行,会自动的在家目录建立一个“下载”的文件夹。打开gmail等google本家的服务也没有问题。

问题:
1. 貌似无法弹出对话框?想要设置options和登入一个需要密码的网站都未能成功(可以在地址中直接写下用户名和密码来登入)。
2. 对https的支持不太好还是怎的,blogspot的页面显示不出来
3. 中文输入法还无法使用
4. 有时候会莫名其妙崩溃退出

结论:基本可用,但是离取代opera还有较大距离,只能作为备用浏览器。

2009年3月31日星期二

mldonkey导入服务器和节点

用了这么久的mldonkey,今天才来干这件早该干的事。server.met和nodes.dat都是拷贝的用extreme用得很有心得的同学的现成文件,然后在web界面的输入框中输入:
servers 'server.met的绝对路径'
kad_load 'nodes.dat的绝对路径'
即可
导入并不会覆盖原来的列表而是添加新的服务器或节点,所以理论上是不用备份的

2009年3月30日星期一

awesome3.2的一个关于浮动窗口的小问题

更新awesome到3.2,发现soffice自动变成了浮动状态,而rc.lua里并没有相关设置。解决办法是Mod4+m把soffice的窗口最大化就可以取消其浮动状态了

2009年3月28日星期六

Gentoo安装lxde整理版

Lxde的wiki上写得有点乱,现整理如下
1. emerge安装layman和mercurial
2. layman -S更新overlay的列表
3. layman -a lxde添加lxde的overlay
4. 在/etc/make.conf中添加source /usr/portage/local/layman/make.conf
5. lxde的包都被Mask了,最简单的解决方法是emerge autounmask
6. 确保/etc/portage/package.keywords文件存在,然后autounmask lxde-base/lxde-common-9999-r1,注意最后的包要给出确切的版本号,用autounmask直到可以进行下一步为止
7. 安装lxde:emerge lxde-common virtual/lxsession pcmanfm lxpanel openbox gpicview -av
8. 在.bashrc中添加exec startlxde即可

Bingo!灰常简单的*-to-linux远程桌面

曾经用一台低端Windows机作为二奶机,跑一些Linux下面没有的程序,比如迅雷,rayfile等。无奈几天前由于供电原因该服务器被机房停用。本来也可以在自己的机器上wine这些windows应用,但是我这人有系统洁癖,最好的选择还是去污染不那么重要的一些服务器吧。而且服务器可以整天开而我白天是要出去的。要命的是很多window应用你根本只能在GUI下去access它,所以必须要在linux服务器上安装远程桌面服务。

如果你google一下linux remote desktop的话,所有的结果可能会告诉你用vnc吧。我尝试了tightvnc,不那么好用,而且根本没有连上,可能是我太笨吧...sign。偶然的在一个讨论tightvnc的帖子中发现有freenx这个东东,其声称是新一代的远程桌面解决方案。也是,人家tightvnc的说明文档都好多年以前的了,试试这freenx吧。

如果你用gentoo,搜搜freenx安装就好了。咱也不去hack它的配置,安装好了之后
nxsetup --install --setup-nomachine-key --clean --purge

就可以用了。

如果不行,一般都是ssh的配置有问题,可以检查以下条目:
1. /etc/ssh/sshd_config文件中Port 22前面的注释已经去掉
2. 上述文件中PubkeyAuthentication yes前面的注释已经去掉
3. 上述文件中AuthorizedKeysFile为.ssh/authorized_keys2
4. 如果client登录时总是停留在waiting authentication阶段然后因"280 exiting on signal 15"而失败,可能是新的ssh输入密码的方式问题。解决办法是编辑/etc/nxserver/node.conf,把里面的ssh验证改为0,SU验证改为1,然后把su加入wheel用户组。

这里要说一下nx的机制,它是默认是直接通过ssh协议进行通讯的,所以对于服务器重启之后要不要找找看需不需要重新开启服务这种问题,遇到问题再说吧。

好了,以上是服务器端的配置,简单得想撞墙吧。注意服务器上必须是要有xorg和至少一个窗口管理器的,我的是dwm。

然后是client端。我的笔记本用的是archlinux,搜了一下安装源里面的nxclient要用29M空间,而nomachine官方提供的client只要4M多,所以去下官方的client吧(前面都说了我这个人有系统洁癖)。貌似client和server的版本号可以不一致也没关系。

至于client的配置,只有两个地方要注意:
1. 如果你的服务器上有kde,gnome等桌面环境的话,就没啥可注意的,在Next...Next的时候看到选择环境选对应的那个就好了。否则,比如用的是dwm,那么你就要选Custom->连接的时候执行命令->输入exec dwm,还要在下面选择打开新的virtual desktop(晕吧,见末尾的图)
2. dwm是很好的一个二奶窗口管理器,如果没有头绪的话,知道默认的功能键是Alt, Alt+Shift+Enter打开xterm,Alt+Shift+c杀掉聚焦窗口应该就可以了。我的笔记本用的是awesome,老爸和儿子在一起还真是协调呢:_P

client端的使用,一个最基本的tip就是你不用每次都logout,只要disconnect就可以了,所有的进程还保持运行状态。要做到这一点,只要把nxclient的窗口关掉就可以了,这时候会跳出一个对话框问你想要干吗,然后选择suspend即可。

btw:截图是用
scrot -s -d 5

弄出来的,60kb左右的小软,很好用啊

2009年3月25日星期三

lftp with ssl/tls and more

Even though the encode of my ftp server is set to POSIX, and I've configured
set ftp:charset "gbk"
set file:charset "utf-8"

in ~.lftp/rc, which worked before, lftp on my computer still cannot display Chinese characters normally on the ftp server. And with no means can I figure this out.
Today I need to access my ftp server with ssl/tls protocol, and I tried the following command in lftp prompt:
set ftp:ssl-force true
connect ftp.domain.com
login username
Password:
ls

And I found it works perfectly and even the characters can be displayed normally!
Know maybe the truth is just that I've never digged deep enough, but the simple and out-of-expect solvement really made me quite happy. CLI is so powerful, that I can't wait to put all my friends up for this tiny thing.

Add: you can add "set ftp:ssl-force true" in ~.lftp/rc, and bookmark and "open" the encrypted site as usual

2009年3月19日星期四

锁屏软件slock

X环境下的锁屏软件,大的有gnome或kde各自的工具,但是对于我这种想尽量减少gnome和kde依赖的强迫症患者,显然是不太合用的。因此,大多数人想到的,可能是xscreensaver这个软件包。它的确具有锁屏功能而且还有屏保,但是安装后有十多M。如果只是想要锁屏功能的话,未免有点小题大做。
之前在awesome下一直用xlock,比xscreensaver是要小得多,但还是包含了一些屏保选项。今次在google上碰运气,找到了slock这个软件。
如其页面所说,可能的确是史上最小的锁屏软件了,只有几K。而且及其纯粹,运行slock就锁成黑屏,直接输入密码回车就解锁,根本没有用来输入密码的界面。够weird!

官方网站在这里,该网站上还有一些比较weird的软件,比如也是以kb计的窗口管理器/桌面环境dwm :_P

2009年3月5日星期四

opera的flashblock和附带tor配置

鉴于收取engadget的rss时常会被flash搞得opera瘫掉,所以想要类似于firefox的flashblock的功能。别看opera没有插件功能,其用户配置脚本可一点不比插件差。flashblock也有现成的脚本,不过是放在my.opera.com的,只有翻墙才能访问,所以就附带配置了opera使用tor。

1. tor的配置
参见archwiki,需要注意的是向config里添加的那一行最后的英文句点是必需的
这里贴一个opera自动配置代理的脚本,存成~/.opera/opera.pac然后在opera的代理中设置成自动使用这个脚本就可以了,在这个脚本里添加的域名是使用tor的域名:
function FindProxyForURL(url, host){
host=host.toLowerCase();

if(
dnsDomainIs(host,"wikibooks.org")
||dnsDomainIs(host, ".wordpress.com")
||dnsDomainIs(host, ".livejournal.com")
||dnsDomainIs(host, "my.opera.com")
||dnsDomainIs(host, ".uncyclopedia.wikia.com")
||dnsDomainIs(host, "whatsmyip.net")
)
return "PROXY localhost:8118";
else return "DIRECT";
}


2. flashblock的配置
十分简单,参见这里,把那个Flashblocker.zip下载后看说明就可以了

2009年1月18日星期日

试用google chrome

google一直不出linux下的chrome,而个人又比较抵制模拟windows下面的软件,所以这个东西出来了很久我这样一个科技男也还是没有去体验。今天回到家,睡了一觉搞好家里的电脑之后便把这个心中的神物安装下来试了一试。

安装:十分简便,从任何一个浏览器登入chrome的下载页面,直接点击下载然后允许运行就可以了,貌似安装文件不是太大,很快就装好了。

运行:流畅得让我想哭。以前用过的任何浏览器,IE核心的就不说了,firefox3和我甚为推崇的opera在chrome面前都黯然失色。有人担心的每个页面一个进程可能引起的过度的资源占用也没有出现。我不由得一百个盼望原生的linux版chrome的诞生。

界面:精简到极致。默认状态下对中文字体的渲染有点丑,不过应该是可以改进的。类似于opera的快速拨号很好用,而且也很流畅。

插件:主要测试了一下flash插件,在adobe下载安装给windows的版本就可以了。播放时CPU占用率30%左右,应该还算正常。

已经晚了,以后再继续尝试新的特性。

2008年12月24日星期三

自己制作iSilo文档

鉴于不久之后很可能会搞一个palm来玩玩,而自己又有大量的文档,所以想到要把这些文档转换为iSilo专用的pdb文件来看。需要转换的主要有3类,基本上都是先把这些文档转换为html档,然后再用iSilo官方提供的iSiloXC来转换之。下面以chm转pdb来说明。

1. 首先下载iSiloXC for Linux,并安装libchm-bin。ubuntu/debian用户可以直接apt-get,gentoo对应的ebuild名称为dev-libs/chmlib,其它发行版用户可能要自己编译。
2. 解压缩chm文档:
extract_chmlib source.chm target

然后查看一下target里面的内容,把index.html或类似的table of contents找出来。
3. 准备iSiloXC转换时必须的文件。常规只需要准备ixl文件即可,从这里下载一个样板,然后进行如下修改,把<hotsync></hotsync>段落改为:
<files><path>result.pdb</path></files>

然后把source里面的path改为该index.html的路径。注意这里有一个很关键的地方,就是设置MaximumDepth和MaximumOfflineDepth,这决定了iSiloXC需要去处理的链接的深度,该值太大会浪费不必要的资源,太小则不能完全得到你想要的东西,最好自己试一下。
4. 一切就绪之后,运行:
iSiloXC -xvv mypdb.ixl

然后就等吧。如果是镜像网站的话,可能还是需要较多的时间的。

另外,对于openoffice文档,可以直接输出成html再转换。而对于pdf文档,当然首选的方法是直接用pdf阅读器看,实在不行的话这里可以pdf转换为html,然后再自己转换吧(详贴在这里

ps: 顺便学了一下html语言中的特殊字符:< 要用 &lt;来表示,而> 要用&gt;来表示。还是蛮有趣的
Update:iSiloXC可能不识别linux下的特殊字符如\ 等,所以可能要酌情更改一下html文件。另外,chm解压出来可能并没有可用的index.html文件,可以考虑自己做一个。

2008年12月7日星期日

Arch20小时

昨天下午,突然没有事情做了,觉得无聊。又不想浪费大好光阴在看书上,于是想,干脆装一个Arch吧,正好让钝化的脑子活动一下。

Arch还是很好装的,而且装得也足够快。装完之后pacman -Syu的时候出错,才看到Arch forum一个黄毛说不用ftp方式装就是SB。此为一囧。不管出错提示,直接pacman -Sfyu干掉它。在此之前要配置仓库镜像,果然脑子太钝了,轻易就相信了Arch官方的list,结果为了更新一个系统就等了4个小时,真佩服我的耐心。之后在linuxsir发现SJTU原来有Arch仓库,此为二囧。不过安装的时候我在纯文字终端看不到linuxsir的帖子也算正常...orz

Arch的纯文字终端真的做得很棒,以至于后来被ati折磨得没话说的时候还在用这个东西打气。刚装上的系统还是有些问题的,比如rc.conf无法add route,比如我的CPU被限制在了800MHz,比如风扇在任何情况下都以最大转速辛勤工作。不过总的来说Arch的维基还是做得不错的,声卡、SLIM、Awesome等都轻易搞定。这里又有一个囧的:我的电脑两周前才装了个awesome3-git,然后在Arch中也装了个awesome3,两个的配置居然都不一样,对于相信地球人都很有时间的awesome的开发者,我很无语。

然后装xorg——原来xorg已经到1.5了哦?我彻底落后了。作为ati的受害者,我还是装了ati提供的catalyst8.12。这个catalyst是最囧的,glxgears和fgl_glxgears都能运行,fglrxinfo也说有direct rendering,但x运行就是蜗牛爬。你好歹给个正常的2D加速吧ATI!这个囧驱动直接导致我用opera以浏览幻灯片方式查找资料查到恶心。于是,在10个小时之后,终于还是恢复了原来的Linuxmint。这里赞一个clonezilla,很快,而且可以用命令行加载各种即插即用硬件,十分好用。

心情沮丧不已,晃荡了2个小时之后,突然在Arch wiki上看到说你可以把Arch装到U盘上,你还可以像装gentoo一样在已有的linux中装arch,而且文档明显比用光盘启动短得多。。。我fxxk!Arch你把这两篇文档放到维基的Main Page就好了。又折腾了几个小时,试了2次,终于看到从U盘启动的Arch了。总结下来,安装方法真的是——十~分~简~单!这次小白经历,终于以“会心的微笑”的美好结局告终。

下面有一些现在还记得的重要的地方:
1. 启动X之前,记得在xorg.conf里面的ServerFlags section里加上Option "AutoAddDevices" "false",不然进入X之后键盘和鼠标就会被禁用,只能直接关机。果然高版本的软件不属于第三世界。
2. 为防X僵死并锁定键鼠,可以在一个vc startx的同时在另一个vc sleep 60 && killall -9 xorg,以在60秒之后自动结束xserver。注意在kill xorg之前要先杀掉awesome和slim这些调用xserver的进程。
3. 安装到USB之前,要先用fdisk在U盘上创建一个主分区并且设置为bootable,否则grub是不认的。Arch维基说U盘最好格式化成ext2格式,所以在U盘系统中操作时更要注意startx的问题。否则直接关机的话会对ext2文件系统造成很大的损害。
4. Arch维基没有说明grub的问题。其实如果是在原有Linux系统中边听歌边安装的话,使用原来的grub就可以了。像我只有1个sata盘,那么U盘的root就是(hd1,0),在kernel行写root=/dev/sdb1就可以了。当然前体是正确用fdisk创建了分区。
5. USB上的Arch是很容易继续加工的,慢慢加工好了之后再复制到根分区稍微改一下应该就可以用了。所以涉及到备份问题。先在U盘系统中pacman -Scc删除从仓库下载的软件包,然后直接在原有的linux中把U盘mount上,cd到U盘中并tar cvpf name.tar .就可以了。一个基本系统只有不到500M,很喜乐啊。

最后想到一点:Arch的仓库会把旧的软件包移除,但是最新的软件包其实还是可能会造成困扰的。

2008年12月4日星期四

The way to CLI

在Linuxtoy上看到关于awesome的介绍后,突然想要摆脱Gnome或KDE或Xfce,决定要尽量向CLI迈进了。于是便有了这篇不短不长的文章。本文着重于常用软件的CLI解决,所以高深的东西就不谈了(其实也没资格)。

1. Awesome的安装
Awesome的维基其实是蛮囧的。我使用的发行版为兼容Ubuntu Hardy的LinumMInt Elyssa,但是按照其官方for Ubuntu Hardy的安装指南却装不上,最后还是用git的方式才把awesome3装上。详见此页,基本生一步一步照做就行了。要注意的是几乎一定会出现该指南中第三个Note所说的错误的,而且解决时后面的路径还是Tab出来吧,如果直接把指南中的代码复制进去会让人崩溃的。

2. Awesome的配置
装好就基本能用了,下面修改一下其默认配置文件基本就可用了:
1). 安装和使用wicked:

git clone git://git.glacicle.com/awesome/wicked.git
sudo cp wicked/wicked.lua /usr/share/awesome/lib/
sudo cp wicked/wicked.7.gz /usr/share/man/man7/

2). 修改默认主题,其实改一下背景就好了。最简单的方法是把/etc/xdg/awesome/themes拷贝到.config/awesome。以default为蓝本自己修改背景文件即可。较为灵活的方式是把自己的配置文件link到default。
注意:主题配置文件和rc.lua中最好都用绝对路径
3). 去掉窗口之间的缝隙:编辑rc.lua,查找honorsizehints,将其值改为false即可
4). 关于widgets在statusbar(就是桌面最上方的那条bar)中的排列顺序:首先分左右,也就是在statusbar的左端还是右端。这是由定义widget时的aligh='right/left'指定的。然后再按照statusbar中列举的顺序分别排列。左边和右边的顺序各自是独立的。
5). 一个很有用的组合键:ctrl+win+r,可以让awesome重读rc.lua,马上看到修改rc.lua的效果
6). 最后一点注意的:awesome的配置文件的语法千变万化(orz...),所以看官方指南的时候一定要先滑到底部看到底是for awesome2还是for awesome3的指南。更囧的是官方一些for awesome3的widget也不能正常使用。如果不想再去学习一门lua语言的话,还是配置得简单一点吧。

3. 一些常用的CLI程序
1). 终端模拟器urxvt:为什么用urxvt呢?因为默认的xterm要正确显示中文还是需要一番设置的,想要速成的话还是用urxvt吧。ubuntu下安装rxvt-unicode就可以了。之后在rc.lua中把xterm改成urxvt,我还加上了一些优化参数如下:

-tr:打开透明支持
-tint color:在打开透明支持的前提下,在背景上做一个单色alpha蒙版
-fg color:终端下主要字体的颜色。比如我使用的是一个黑色背景,则应该把该选项设置为亮色,如white,cyan,magenta等
-sr:把滚动条放在右边,比较符合习惯

在awesome中win+enter可以呼出默认终端,所以就不需要把上述优化参数加在.bashrc中了
另外,使用urxvt远程登入时会被提示unknown terminal而导致一些功能无法使用。解决方法是把本地机器的/usr/share/terminfo/r/rxvt-unicode拷贝到远程机器的同一目录中。
2). 音频播放器:个人还是比较习惯用mocp,安装的时候可以把它的ffmpeg插件也一并安装了。当然还有mp3blaster和mpd等可选,不过前者强烈不推荐,后者想要速成的话还是放弃吧。
mocp的爆音问题:其实是PCM设得太大了,其它程序也会有爆音的。我的解决方法是让mocp内置的音量调节功能不要去调节PCM而去调节Master。编辑.moc/config,找到关于alsa或oss的段落,把首选device从PCM改成Master就可以了。
mocp显示中文:当然可以把所有音乐的标签转换成utf8,不过为了兼容性考虑还是算了吧。我采用的是一种折衷的方法,让mocp不要去读取标签,改为直接显示文件名。在.moc/config中找到ReadTags,把值设为no就可以了。
mocp背景透明:编辑theme文件,把background和frame的背景色改为default就可以了。
3). 视频播放器:毫无疑问的mplayer,快捷键man去吧。关于中文字幕问题,要在.mplayer/config中加上subcp=936
4). 辞典:星际译王的终端接口sdcv
5). 文件管理器:推荐gnu的MC(midnight commander)。F1~F10为功能键。
默认使用vim编辑器:在mc的选项中取消“使用内置编辑器”,然后

sudo update-alternatives --config editor

选择vim.basic
设置透明:在.mc/ini最后加入

[Colors]
base_color=normal=white,default:marked=magenta,default

其实还可以完全透明掉,不过不知道为什么我这里总是不成功。不想折腾,爱折腾的可以自己google一下,绝对是可以实现的。
设置文件操作规则:编辑/etc/mc/mc.ext,看一下文件头的说明吧,语法还是很好懂的。
6). 图片查看器:用feh吧。推荐在rc.lua中把feh设置为浮动窗口启动(搜到Mplayer,然后把feh也像模像样加进去就可以了)
7). Todo list:本来想用todo.txt的todo.sh的,不过很神奇这个东西有语法错误。然后基于不折腾原则,找到了ikog,可用性还不错,也是基于todo.txt的

4. 其它需要注意的终端操作
awesome的program launcher:如果使用默认配置文件的话,win+F1就可以打开launcher了,之后应该输入命令
调节音量:amixer set Master/PCM 5%+,具体的man amixer
查看电池电量:acpi
终端的复制/粘贴操作:复制的话选中就可以了,粘贴一般可以用shift+insert,在opera中要用鼠标中键,不过应该可以map到键盘
休眠:sudo pmi action suspend

至此,实现了无折腾达到基本可用。之后怎么搞,爱深入研究什么东西就看个人意愿了。恩,也不知道我的the way会不会继续更新下去。