2008年12月27日星期六

pkg-config

这是为了方便安装一些 libs 用于编译、连接时给 cc or ld 送参数的程序,
/usr/lib/pkgconfig
/usr/share/pkgconfig
/usr/share/aclocal/pkg.m4
/usr/share/man/man1
/usr/share/man/man1/pkg-config.1.gz
/usr/share/doc/pkg-config/README
/usr/share/doc/pkg-config/AUTHORS
/usr/share/doc/pkg-config/copyright
/usr/share/doc/pkg-config/changelog.gz
/usr/share/doc/pkg-config/NEWS.gz
/usr/share/doc/pkg-config/changelog.Debian.gz
/usr/bin/pkg-config
用起来也很简单,就是 --cflags 和 --ldflags 一个给 cc 一个给 ld,如果需要更多的细节看 man pages。pkg-config 的工作原理很简单,就是找对应的 .pc 文件,多数 libs 都提供了这个,方便大家编译、连接的时候使用,搜索的路径为 PKG_CONFIG_PATH 用 : 分割的路径,默认的 LIB/pkcconfig 如 /usr/lib/pkgconfig/ 里面存有多数使用 pkg-config 的库的 pc 文件。另外可以用 PKG_CONFIG_LIBDIR 环境变量覆盖默认的搜索路径。

2008年12月20日星期六

rsync

rsync 是一个强大同步工具,不仅可以通过自己的 daemon 实现客户端和服务器端的同步,还可以通过 shell(走 ssh 或者 rsh)进行同步,还可以把本地两个目录进行同步。嗯,这个包里面有如下内容:
/usr/bin/rsync
/usr/share/doc/rsync/examples
/usr/share/doc/rsync/examples/rsyncd.conf
/usr/share/doc/rsync/examples/logrotate.conf.rsync
/usr/share/doc/rsync/scripts/cull_options.gz
/usr/share/doc/rsync/scripts/atomic-rsync.gz
/usr/share/doc/rsync/scripts/cvs2includes.gz
/usr/share/doc/rsync/scripts/file-attr-restore.gz
/usr/share/doc/rsync/scripts/files-to-excludes.gz
/usr/share/doc/rsync/scripts/git-set-file-times.gz
/usr/share/doc/rsync/scripts/logfilter.gz
/usr/share/doc/rsync/scripts/lsh.gz
/usr/share/doc/rsync/scripts/mnt-excl.gz
/usr/share/doc/rsync/scripts/munge-symlinks.gz
/usr/share/doc/rsync/scripts/rrsync.gz
/usr/share/doc/rsync/scripts/rsyncstats.gz
/usr/share/doc/rsync/changelog.Debian.gz
/usr/share/doc/rsync/README.gz
/usr/share/doc/rsync/tech_report.tex.gz
/usr/share/doc/rsync/TODO.gz
/usr/share/doc/rsync/changelog.gz
/usr/share/doc/rsync/copyright
/usr/share/man/man1/rsync.1.gz
/usr/share/man/man5/rsyncd.conf.5.gz
/etc/default/rsync
/etc/init.d/rsync
可见,主要掌握 rsync 命令,它既是客户端,也是服务器端。我们先看作为一个 client 如果使用 rsync。基本上 rsync 和 scp 这类命令一样,两个地址格式一样,如果使用 shell 方式,如果使服务器则 server::module 的方式。参数常用的有 -a 使用 archive 方式(和 tar 一样),-v 详细显示,-z 压缩传输,--rsh 选择 ssh 或者 rsh(-e,提供连接命令,如需要其他的 options 在这里用引号),-q 取消 motd,-c 使用 checksum(默认使用时间、大小),-r 递归到目录,-R 使用相对路径,-u 仅仅 update 更新的内容,-p 保持属性,-n 测试,-C 排出 CVS 目录,-f 提供 filter 功能... 总而言之 rsync 提供了非常详尽的口之同步使用的选项。要求两边都有 rsync 命令。

建立一个 daemon 使用 --daemon 参数,占用 873 端口,可以用 inetd 来启用该 daemon。