November 2nd, 2008

fedora 蓝色小药丸

在 Bluehost 安装 git 和 subversion

买了空间,申请了独立 IP 和 ssh,惊喜地发现系统里还有 screen 可以用,而且其他设置也很不赖。毕竟也是 fedora
系统!连接上去,就像在用自己的机器一样。当然还要传一些配置文件过去,.vimrc 和
.screenrc,如此而已。这个版本有些老,fedora 8 么,vim 6,而且 x86_64 以前还没用过,不过完全可以接受啦。用
vi 修改 .htaccess 就是比在 cpanel 文件管理器里操作要快!

接下来就是安装 git 和 svn,不知道为什么 wordpress 和 svn 有关系,我倒是一定要用 git 管理配置文件。我的打算是从
koji 下载 fedora 的 srpm,然后可以借鉴 rpm spec 里的参数和依赖关系,最多改改 prefix。另外建立
rpmbuild 那一套目录也很有用,熟悉的目录结构。

git 的编译很简单, spec 里用的是直接 make,那么改变 prefix 后的参数是
make -j 3 prefix=$HOME/opt ETC_GITCONFIG=$HOME/opt/etc/gitconfig
gitexecdir=$HOME/opt/libexec/git/ 目标是 all 和 install

svn 的编译,根据网上的文章,需要先编译 subversion-deps,仔细看内容原来是 apr, apr-utils,
neon。这三个包在 fedora 里都是单独的 rpm,所以编译也做了好几次。编译 apr 的参数是
./configure --prefix=$HOME/opt --enable-shared --disable-static 然后
make && make install
编译 apr-utils 的参数是
./configure --prefix=$HOME/opt --with-apr=$HOME/opt
编译 neon 的参数是和 apr 一样的,多一个 --with-ssl。觉得如果只是本地使用,不需要 WebDAV,也就不需要 neon
了?为什么 wordpress 要和 svn 有关系?
最后编译 svn 的参数是
./configure --prefix=$HOME/opt --with-apr=$HOME/opt
--with-apr-util=$HOME/opt --with-swig --with-ssl --with-neon=$HOME/opt
--disable-static
make all
这样会提示 BDB 不可用,自动采用 FSFS 后端。这个也没关系了,如果只是本地使用的话(?)。
根据 spec,需要单独编译 subversion-perl 也就是 perl(SVN),命令是这样
make swig-pl swig-pl-lib
make install-swig-pl-lib
make check-swig-pl CLEANUP=yes
结果是 fail check: Failed 2/10 test programs. 2/193 subtests failed.
"3client" Failed tests: 16, 20, "6ra" Parse errors: Bad plan. You
planned 40 tests but ran 20.

make pure_vendor_install -C subversion/bindings/swig/perl/native
PERL_INSTALL_ROOT=$HOME/opt
不知道为什么文件被安装到了 $HOME/opt/blib/arch/SVN/ 而不是 $HOME/opt/perl5/... 下面,而
auto/SVN 目录也没有安装。我自己把它复制过去了,现在 git svn 倒是可以执行了。

那个 check CLEANUP=yes 如果不运行一下,结果好像就会是错的?真是莫名其妙。
fedora 蓝色小药丸

安装 pastebin

折腾了一天来安装 http://paste.fedora-zh.org ,用的是 Blaenk Denum 的,带 reCAPTCHA 支持的 pastebin http://www.blaenkdenum.com/pastebin/

主要是 UTF-8 的问题,有好几个地方在连接服务器,我又不能修改 Bluehost 的 my.ini,所以只好用一个函数包装这几句话
mysql_query("SET NAMES 'UTF8'");
mysql_query("set character_set_database = 'UTF8'");
mysql_query("set character_set_server = 'UTF8'");
,然后每个 connect 的地方都调用一下。第二个 UTF-8 的问题是 GeSHi 代码格式化程序,需要在生成 geshi 对象后,调用 set_encoding 方法。最后一个 UTF-8 问题是输出到 textarea 的时候用了 htmlentities() 函数,必须设定第三个参数(编码)。当然还有整个页面的编码,entry file 的 xhtml header 要设置为 UTF-8,而 .htaccess 也设置成了 AddDefaultCharset UTF-8

这个 pastebin 号称是 1.5 版本,GPL,代码却有一些问题。entry file 的开头有好几个空行。配置文件里说默认前缀是 "/" 实际却应该是 ""。

这下子世界清净了。update: patch here http://fedora-zh.net/pastebin-1.5-use-utf8.patch




头一次这样改 php 程序,觉得 Google 还是满有用的,很多帖子都比较小心客气。php 的语法与 c++ 挺象的。在 Bluehost
操作 phpMyAdmin 和直接执行 mysql 命令,感觉都很爽:很久没有这样操作一个完全属于自己的数据表了。折腾 :)