<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>易水博客 &#187; 开源软件</title>
	<atom:link href="http://easwy.com/blog/archives/category/open-source/feed/" rel="self" type="application/rss+xml" />
	<link>http://easwy.com/blog</link>
	<description>关注Linux, Scala, Android, Java, 开源软件和嵌入式系统</description>
	<lastBuildDate>Tue, 31 Jan 2012 02:58:55 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>在Ubuntu上编译vim 7.3</title>
		<link>http://easwy.com/blog/archives/compile-vim73-on-ubuntu/</link>
		<comments>http://easwy.com/blog/archives/compile-vim73-on-ubuntu/#comments</comments>
		<pubDate>Tue, 28 Dec 2010 16:13:13 +0000</pubDate>
		<dc:creator>Easwy</dc:creator>
				<category><![CDATA[开源软件]]></category>
		<category><![CDATA[文本处理]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[ubuntu]]></category>
		<category><![CDATA[Vim]]></category>

		<guid isPermaLink="false">http://easwy.com/blog/?p=1113</guid>
		<description><![CDATA[本文介绍了在Ubuntu中编译vim 7.3的方法。<div class="fixed"></div><div id="related_posts"><h3  class="related_post_title">相关文章</h3><ul class="related_post">
<li><a href='http://easwy.com/blog/archives/install_apache_php_mysql_wordpress_on_debian_lenny/' rel='bookmark' title='在Debian Lenny上安装Apache2，PHP5，MySQL5, WordPress&#8230;'>在Debian Lenny上安装Apache2，PHP5，MySQL5, WordPress&#8230;</a></li>
<li><a href='http://easwy.com/blog/archives/compile-android-gingerbread-2-3-1/' rel='bookmark' title='在Ubuntu上编译Android Gingerbread 2.3.1'>在Ubuntu上编译Android Gingerbread 2.3.1</a></li>
<li><a href='http://easwy.com/blog/archives/chinese_in_debian_lenny/' rel='bookmark' title='在Debian Lenny中配置中文'>在Debian Lenny中配置中文</a></li>
</div><div class="fixed"></div>]]></description>
			<content:encoded><![CDATA[<p>
    <a class="ulink" href="http://easwy.com/blog/archives/install-ubuntu-on-thinkpad-t400-aa1/" target="_top">在Thinkpad T400上安装完Ubuntu 10.04 LTS</a>后，就开始搭建<a class="ulink" href="http://easwy.com/blog/archives/tag/android/" target="_top">Android</a>开发环境，第一步当然是编译vim。
  </p>
<p>
    目前最新的vim版本是7.3，因为从vim 7.3开始已经换用Mercurial做为版本管理工具，我们在下载vim 7.3源代码前，先要安装Mercurial:
  </p>
<pre class="programlisting">
sudo aptitude install mercurial
cd ~
hg clone https://vim.googlecode.com/hg/ vim73</pre>
<p>
    执行完上面的命令后，我们就取得了vim 7.3的最新代码，放在目录<span class="emphasis"><em>~/vim73</em></span>中，接下来准备编译。在编译前，需要安装编译时需要的包，在<a class="ulink" href="http://easwy.com/blog/archives/tag/ubuntu/" target="_top">Ubuntu</a>上用如下命令：
  </p>
<pre class="programlisting">
sudo aptitude install xorg-dev libx11-dev libgtk2.0-dev libncurses5-dev </pre>
<p>
    上面是<a class="ulink" href="http://easwy.com/" target="_top">Easwy</a>在编译前所安装的依赖文件。后来在一篇帖子中看到另一种方法安装依赖文件，可能更方便(未测试)：
  </p>
<pre class="programlisting">
sudo aptitude install build-essential
sudo aptitude build-dep vim-gtk </pre>
<p>
    接下来修改<span class="emphasis"><em>~/vim73/src/Makefile</em></span>，打开自己所需要的功能，Easwy打开了下面这些特性：
  </p>
<div class="itemizedlist">
<ul class="itemizedlist" type="disc">
<li class="listitem">
      CONF_OPT_CSCOPE = &#8211;enable-cscope
    </li>
<li class="listitem">
      CONF_OPT_MULTIBYTE = &#8211;enable-multibyte
    </li>
<li class="listitem">
      CONF_OPT_INPUT = &#8211;enable-xim
    </li>
<li class="listitem">
      CONF_OPT_OUTPUT = &#8211;enable-fontset
    </li>
<li class="listitem">
      CONF_OPT_FEAT = &#8211;with-features=big
    </li>
<li class="listitem">
      CONF_OPT_COMPBY = “&#8211;with-compiledby=Easwy Yang &lt;easwy.mail@gmail.com&gt;”
    </li>
</ul>
</div>
<p>
    接下来编译安装：
  </p>
<pre class="programlisting">
cd ~/vim73/src
make &amp;&amp; make install </pre>
<p>
    执行完后编译好的vim以及gvim就安装在<span class="emphasis"><em>/usr/local/bin</em></span>目录中了。将此目录加入PATH即可。
  </p>
<p>
    Easwy在编译后，每次运行gvim都会提示：
  </p>
<pre class="screen">
Warning: Missing charsets in String to FontSet conversion
Warning: Unable to load any usable fontset
Warning: Missing charsets in String to FontSet conversion
Warning: Unable to load any usable fontset
Error: Aborting: no fontset found </pre>
<p>
    后来在网上查了一下，是因为没有安装<span class="emphasis"><em>libgtk2.0-dev</em></span>包造成后，安装此包再重新编译后问题解决。
  </p>
<p>
    如果你在编译gvim时遇到了问题，可以参考我以前写的一篇文章：<a class="ulink" href="http://easwy.com/blog/archives/advanced-vim-skills-solve-compile-problem/" target="_top">vi/vim使用进阶: vim编译中遇到的问题及解决方法</a>。
  </p>
<p>
    最后，把我们编译的vim 7.3做为Ubuntu中的缺省编辑器，执行如下命令：
  </p>
<pre class="programlisting">
sudo update-alternatives --install /usr/bin/editor editor /usr/local/bin/vim 50 --slave /usr/share/man/man1/editor.1.gz editor.1.gz /usr/local/man/man1/vim.1.gz
sudo update-alternatives --install /usr/bin/vi vi /usr/local/bin/vim 50 --slave /usr/share/man/man1/vi.1.gz vi.1.gz /usr/local/man/man1/vim.1.gz </pre>
<p>
    Happy viming!
  </p>
<p>
    更多内容，请阅读<a class="ulink" href="http://easwy.com/blog/" target="_top">易水博客</a>上的其它文章。
  </p>
<p><span class="bold"><strong>[ 参考文档 ]</strong></span></p>
<div class="itemizedlist">
<ul class="itemizedlist" type="disc">
<li class="listitem">
      <a class="ulink" href="http://www.vim.org/mercurial.php" target="_top">The Vim Mercurial repository</a>
    </li>
<li class="listitem">
      <a class="ulink" href="http://forum.ubuntu.org.cn/viewtopic.php?t=11432&amp;highlight=vim7" target="_top">ubuntu编译VIM7指南</a>
    </li>
<li class="listitem">
      <a class="ulink" href="http://hi.baidu.com/yulanding/blog/item/71ccaa3d67fc71ce7d1e71d8.html" target="_top">系统管理：update-alternatives</a>
    </li>
</ul>
</div>
<div class="posturl">
<p><span class="bold"><strong>原创文章，请阅读页脚的<a href="#license">许可方式</a>，转载请注明：</strong></span>转载自<a class="link" href="http://easwy.com/blog/" target="_top">易水博客</a> [ <a class="link" href="http://easwy.com/blog/" target="_top">http://easwy.com/blog/</a> ]</p>
<p><span class="bold"><strong>本文链接地址:</strong></span> <a class="link" href="http://easwy.com/blog/archives/compile-vim73-on-ubuntu/" target="_top">http://easwy.com/blog/archives/compile-vim73-on-ubuntu/</a></p>
</div>
<p style="margin-top: 0; margin-bottom: 15px; color: #888888; font-size: 80%; font-style: italic">文章的脚注信息由WordPress的<a href="http://easwy.com/blog/wordpress/wp-posturl/" style="color: #8888FF; text-decoration: underline;">wp-posturl插件</a>自动生成</p>
<div class="fixed"></div><div id="related_posts"><h3  class="related_post_title">相关文章</h3><ul class="related_post">
<li><a href='http://easwy.com/blog/archives/install_apache_php_mysql_wordpress_on_debian_lenny/' rel='bookmark' title='在Debian Lenny上安装Apache2，PHP5，MySQL5, WordPress&#8230;'>在Debian Lenny上安装Apache2，PHP5，MySQL5, WordPress&#8230;</a></li>
<li><a href='http://easwy.com/blog/archives/compile-android-gingerbread-2-3-1/' rel='bookmark' title='在Ubuntu上编译Android Gingerbread 2.3.1'>在Ubuntu上编译Android Gingerbread 2.3.1</a></li>
<li><a href='http://easwy.com/blog/archives/chinese_in_debian_lenny/' rel='bookmark' title='在Debian Lenny中配置中文'>在Debian Lenny中配置中文</a></li>
</div><div class="fixed"></div>]]></content:encoded>
			<wfw:commentRss>http://easwy.com/blog/archives/compile-vim73-on-ubuntu/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>在Thinkpad T400上安装Ubuntu</title>
		<link>http://easwy.com/blog/archives/install-ubuntu-on-thinkpad-t400-aa1/</link>
		<comments>http://easwy.com/blog/archives/install-ubuntu-on-thinkpad-t400-aa1/#comments</comments>
		<pubDate>Mon, 27 Dec 2010 16:05:29 +0000</pubDate>
		<dc:creator>Easwy</dc:creator>
				<category><![CDATA[开源软件]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[ubuntu]]></category>

		<guid isPermaLink="false">http://easwy.com/blog/?p=1112</guid>
		<description><![CDATA[利用周末的时间在自己的Thinkpad T400 AA1上安装了Ubuntu 10.04 LTS版本，这篇文章做为安装Ubuntu的一个小结。
首先在Ubuntu官网上下载了Ubuntu 10.04 LTS Desktop版，刻录后使用光盘启动。整个的安装过程很顺利，不得不说Ubuntu在易用性和用户界面方面下了很大的工夫，它的安装过程以及界面已经可以和Windows相媲美了。感谢Ubuntu把Linux从专业人士的工具变成了普通大众能接受的操作系统，相信在不远的将来，Linux在桌面领域会有更长足的进步。
安装完后，登录Gnome，有一种眼前一亮的感觉，曾几何时，Linux的图形界面已经做的美观如斯。并且现在Linux也非常的易用，已经不再需要费心的去安装/配置各种驱动。对Thinkpad T400的硬件，Ubuntu都能正确的识别出来：显卡(集成)正常、声卡正常、网卡以及无线网卡都可以正常工作，电源管理工作正常(能够正常待机)......
在接下来的篇幅中，Easwy将简要介绍一下自己所做的一些配置。 <div class="fixed"></div><div id="related_posts"><h3  class="related_post_title">相关文章</h3><ul class="related_post">
<li><a href='http://easwy.com/blog/archives/thinkpad_trackpoint_on_linux/' rel='bookmark' title='在Linux中使用thinkpad的小红点+中键'>在Linux中使用thinkpad的小红点+中键</a></li>
<li><a href='http://easwy.com/blog/archives/debian-lenny-installation-on-thinkpad-t400/' rel='bookmark' title='在thinkpad t400上安装debian lenny'>在thinkpad t400上安装debian lenny</a></li>
<li><a href='http://easwy.com/blog/archives/compile-vim73-on-ubuntu/' rel='bookmark' title='在Ubuntu上编译vim 7.3'>在Ubuntu上编译vim 7.3</a></li>
</div><div class="fixed"></div>]]></description>
			<content:encoded><![CDATA[<p>
    一直以来，Easwy所使用的Linux发行版都是<a class="ulink" href="http://easwy.com/blog/archives/tag/debian/" target="_top">Debian</a>。因为Easwy喜欢Debian上丰富的软件、便捷的安装/升级方式，以及它所代表的自由精神。前些天，Easwy预定了一部魅9手机，为了充分体验DIY的乐趣，Easwy决定自己为魅9手机编译一个ROM。因为魅9基于Android系统，为了编译<a class="ulink" href="http://easwy.com/blog/archives/tag/android/" target="_top">Android</a>，Easwy利用周末的时间在自己的Thinkpad T400 AA1上安装了Ubuntu 10.04 LTS版本，这篇文章做为安装Ubuntu的一个小结。
  </p>
<p>
    首先在Ubuntu官网上下载了Ubuntu 10.04 LTS Desktop版，刻录后使用光盘启动，我的Ubuntu之旅就开始。整个的安装过程很顺利，不得不说Ubuntu在易用性和用户界面方面下了很大的工夫，它的安装过程以及界面已经可以和Windows相媲美了。感谢Ubuntu把Linux从专业人士的工具变成了普通大众能接受的操作系统，相信在不远的将来，Linux在桌面领域会有更长足的进步。
  </p>
<p>
    安装完后，登录Gnome，有一种眼前一亮的感觉，曾几何时，Linux的图形界面已经做的美观如斯。并且现在Linux也非常的易用，已经不再需要费心的去安装/配置各种驱动。对Thinkpad T400的硬件，Ubuntu都能正确的识别出来：显卡(集成)正常、声卡正常、网卡以及无线网卡都可以正常工作，电源管理工作正常(能够正常待机)&#8230;&#8230;
  </p>
<p>
    因为<a class="ulink" href="http://easwy.com/blog/archives/tag/ubuntu/" target="_top">Ubuntu</a>以Debian Unstable版本为基础，所以对于拥有Debian使用经验的Easwy来说有一种天然的熟悉感。在接下来的篇幅中，Easwy将简要介绍一下自己所做的一些配置。
  </p>
<p><span class="bold"><strong>[ sudo不需要输入密码 ]</strong></span></p>
<p>
    Ubuntu缺省禁止root用户登录。在需要root权限执行命令时，用户需要使用sudo来执行相应的命令。为了在sudo时不需要输入密码，我们首先执行命令<span class="command"><strong>sudo visudo</strong></span>，这条命令会用缺省编辑器打开一个文件，找到下面这一行内容：
  </p>
<pre class="programlisting">
%admin ALL=(ALL) ALL </pre>
<p>
    将其改为：
  </p>
<pre class="programlisting">
%admin ALL=(ALL) NOPASSWD: ALL </pre>
<p>
    保存退出后，以后再使用sudo就不需要再输入密码了。
  </p>
<p><span class="bold"><strong>[ 修改更新源 ]</strong></span></p>
<p>
    在Debian/Ubuntu中安装或升级软件时，都会自动从你配置的服务器上下载相应的软件，因此选择一个下载速度较快的源就非常重要。
  </p>
<p>
    在<a class="ulink" href="http://wiki.ubuntu.org.cn/%E5%A6%82%E4%BD%95%E4%BD%BF%E7%94%A8%E6%88%91%E4%BB%AC%E6%8E%A8%E8%8D%90%E7%9A%84%E6%BA%90" target="_top">Ubuntu中文Wiki</a>上列出了国内用户常用的源，你可以为自己选择一个最快的源。使用文本编辑器打开文件<span class="emphasis"><em>/etc/apt/source.list</em></span>，将你所用的源加进去就行了。在这里，Easwy所用的源是台湾的官方源：
  </p>
<pre class="programlisting">
$ sudo vi /etc/apt/source.list

# Add your source here...

deb http://tw.archive.ubuntu.com/ubuntu lucid main restricted universe multiverse
deb http://tw.archive.ubuntu.com/ubuntu lucid-security main restricted universe multiverse
deb http://tw.archive.ubuntu.com/ubuntu lucid-updates main restricted universe multiverse
deb http://tw.archive.ubuntu.com/ubuntu lucid-backports main restricted universe multiverse
deb http://tw.archive.ubuntu.com/ubuntu lucid-proposed main restricted universe multiverse
deb-src http://tw.archive.ubuntu.com/ubuntu lucid main restricted universe multiverse
deb-src http://tw.archive.ubuntu.com/ubuntu lucid-security main restricted universe multiverse
deb-src http://tw.archive.ubuntu.com/ubuntu lucid-updates main restricted universe multiverse
deb-src http://tw.archive.ubuntu.com/ubuntu lucid-backports main restricted universe multiverse
deb-src http://tw.archive.ubuntu.com/ubuntu lucid-proposed main restricted universe multiverse </pre>
<p>
    需要注意的是在添加源时，需要使用正确的版本名。上面源中的<span class="emphasis"><em>lucid</em></span>就是Easwy所安装的10.04 LTS版本。可以在中文Wiki中找到你所用的版本名称。
  </p>
<p><span class="bold"><strong>配置Thinkpad的小红点</strong></span></p>
<p>
    小红点是Thinkpad系列电脑的特色了，想让小红点在Ubuntu下正常工作，需要新建一个文件：
  </p>
<pre class="programlisting">
sudo vi /usr/lib/X11/xorg.conf.d/20-thinkpad.conf

# Add following lines...

Section "InputClass"
Identifier "Trackpoint Wheel Emulation"
MatchProduct "TPPS/2 IBM TrackPoint|DualPoint Stick|Synaptics Inc. Composite TouchPad / TrackPoint"
MatchDevicePath "/dev/input/event*"
Option "EmulateWheel" "true"
Option "EmulateWheelButton" "2"
Option "Emulate3Buttons" "false"
Option "XAxisMapping" "6 7"
Option "YAxisMapping" "4 5"
EndSection </pre>
<p>
    然后重启一下电脑，小红点就可以正常工作了。 在Ubuntu 10.10版本中需要把文件保存为<span class="emphasis"><em>/usr/share/X11/xorg.conf.d/20-thinkpad.conf</em></span>。
  </p>
<p>
    至此，Easwy的Ubuntu环境就基本完成了。更多内容，请阅读<a class="ulink" href="http://easwy.com/blog/" target="_top">易水博客</a>上的其它文章。
  </p>
<p><span class="bold"><strong>[ 参考文档 ]</strong></span></p>
<div class="itemizedlist">
<ul class="itemizedlist" type="disc">
<li class="listitem">
      <a class="ulink" href="http://www.eastwoodzhao.com/thinkpad-middle-button-scroll-ubuntu-linux-10-04-lucid-lynx/" target="_top">ThinkPad Middle Button Scroll – Ubuntu Linux Maverick Meerkat 10.10 &amp; Lucid Lynx 10.04</a>
    </li>
<li class="listitem">
      <a class="ulink" href="http://wiki.ubuntu.org.cn/%E5%A6%82%E4%BD%95%E4%BD%BF%E7%94%A8%E6%88%91%E4%BB%AC%E6%8E%A8%E8%8D%90%E7%9A%84%E6%BA%90" target="_top">Ubuntu国内常用源服务器</a>
    </li>
</ul>
</div>
<div class="posturl">
<p><span class="bold"><strong>原创文章，请阅读页脚的<a href="#license">许可方式</a>，转载请注明：</strong></span>转载自<a class="link" href="http://easwy.com/blog/" target="_top">易水博客</a> [ <a class="link" href="http://easwy.com/blog/" target="_top">http://easwy.com/blog/</a> ]</p>
<p><span class="bold"><strong>本文链接地址:</strong></span> <a class="link" href="http://easwy.com/blog/archives/install-ubuntu-on-thinkpad-t400-aa1/" target="_top">http://easwy.com/blog/archives/install-ubuntu-on-thinkpad-t400-aa1/</a></p>
</div>
<p style="margin-top: 0; margin-bottom: 15px; color: #888888; font-size: 80%; font-style: italic">文章的脚注信息由WordPress的<a href="http://easwy.com/blog/wordpress/wp-posturl/" style="color: #8888FF; text-decoration: underline;">wp-posturl插件</a>自动生成</p>
<div class="fixed"></div><div id="related_posts"><h3  class="related_post_title">相关文章</h3><ul class="related_post">
<li><a href='http://easwy.com/blog/archives/thinkpad_trackpoint_on_linux/' rel='bookmark' title='在Linux中使用thinkpad的小红点+中键'>在Linux中使用thinkpad的小红点+中键</a></li>
<li><a href='http://easwy.com/blog/archives/debian-lenny-installation-on-thinkpad-t400/' rel='bookmark' title='在thinkpad t400上安装debian lenny'>在thinkpad t400上安装debian lenny</a></li>
<li><a href='http://easwy.com/blog/archives/compile-vim73-on-ubuntu/' rel='bookmark' title='在Ubuntu上编译vim 7.3'>在Ubuntu上编译vim 7.3</a></li>
</div><div class="fixed"></div>]]></content:encoded>
			<wfw:commentRss>http://easwy.com/blog/archives/install-ubuntu-on-thinkpad-t400-aa1/feed/</wfw:commentRss>
		<slash:comments>12</slash:comments>
		</item>
		<item>
		<title>在Windows上安装配置Apache FOP</title>
		<link>http://easwy.com/blog/archives/install-apache-fop-on-windows/</link>
		<comments>http://easwy.com/blog/archives/install-apache-fop-on-windows/#comments</comments>
		<pubDate>Tue, 10 Aug 2010 11:17:55 +0000</pubDate>
		<dc:creator>Easwy</dc:creator>
				<category><![CDATA[开源软件]]></category>
		<category><![CDATA[文本处理]]></category>
		<category><![CDATA[docbook]]></category>

		<guid isPermaLink="false">http://easwy.com/blog/?p=1059</guid>
		<description><![CDATA[在使用Apache FOP将Docbook文档转换成PDF一文中，Easwy介绍了在Debian Linux上使用Apache FOP将Docbook文档转换成PDF文件。本来在那篇文章之后，Easwy想写一篇如何在Windows上配置Apache FOP的文章，不过一直没抽出时间。今天刚好有网友问这个问题，于是教她一步步做下来，把步骤列在下面。 <div class="fixed"></div><div id="related_posts"><h3  class="related_post_title">相关文章</h3><ul class="related_post">
<li><a href='http://easwy.com/blog/archives/render_docbook_xml_to_pdf_by_apache_fop/' rel='bookmark' title='使用Apache FOP将Docbook文档转换成PDF'>使用Apache FOP将Docbook文档转换成PDF</a></li>
<li><a href='http://easwy.com/blog/archives/remove-duplicate-word-with-awk/' rel='bookmark' title='使用awk去掉重复的单词'>使用awk去掉重复的单词</a></li>
<li><a href='http://easwy.com/blog/archives/xlink-href-can-not-generate-hyperlink/' rel='bookmark' title='xlink:href不能生成html超链接'>xlink:href不能生成html超链接</a></li>
</div><div class="fixed"></div>]]></description>
			<content:encoded><![CDATA[<p>
    在<a class="ulink" href="http://easwy.com/blog/archives/render_docbook_xml_to_pdf_by_apache_fop/" target="_top">使用Apache FOP将Docbook文档转换成PDF</a>一文中，Easwy介绍了在Debian Linux上使用Apache FOP将Docbook文档转换成PDF文件。本来在那篇文章之后，<a class="ulink" href="http://easwy.com/" target="_top">Easwy</a>想写一篇如何在Windows上配置Apache FOP的文章，不过一直没抽出时间。今天刚好有网友问这个问题，于是教她一步步做下来，把步骤列在下面。
  </p>
<p>
    你可以在这里下载到文章中<a class="ulink" href="http://easwy.com/" target="_top">Easwy</a>用到的所有文件：<a class="ulink" href="http://easwy.com/blog/uploads/2010/08/easwy.zip" target="_top">点此下载</a>
  </p>
<div class="orderedlist">
<ol class="orderedlist" type="1">
<li class="listitem">
      <span class="bold"><strong>安装Docbook样式表和xsltproc程序</strong></span></p>
<p>
        按照文章<a class="ulink" href="http://easwy.com/blog/archives/a-simple-docbook-5-example/" target="_top">一个简单的Docbook 5.0例子</a>，安装Docbook样式表和xsltproc转换程序，并能够成功将Docbook文件转换成html格式。
      </p>
</li>
<li class="listitem">
      <span class="bold"><strong>安装Apache FOP和Java虚拟机</strong></span></p>
<p>
        到<a class="ulink" href="http://www.apache.org/dyn/closer.cgi/xmlgraphics/fop" target="_top">Apache Download Mirrors</a>下载Apache FOP，Easwy下载的是FOP 1.0。下载后，将下载的文件解压，<a class="ulink" href="http://easwy.com/" target="_top">Easwy</a>把它解压到C:\docbook\fop-1.0。
      </p>
<p>
        接下来，还要安装Java虚拟机，因为Apache FOP需要Java虚拟机才能运行。到<a class="ulink" href="http://www.java.com/zh_CN/download/" target="_top">Java网站</a>下载安装即可。
      </p>
</li>
<li class="listitem">
      <span class="bold"><strong>设置Apache FOP</strong></span></p>
<p>
        我们需要配置Apache FOP进行PDF转换时所用到的字体信息。首先，用下面的命令把字体信息从Windows自带的系统字体中提取出来：
      </p>
<pre class="programlisting">
cd C:\docbook\fop-1.0
mkdir fonts
java -cp build\fop.jar;lib\avalon-framework-4.2.0.jar;lib\commons-logging-1.0.4.jar;lib\commons-io-1.3.1.jar;lib\xmlgraphics-commons-1.4.jar org.apache.fop.fonts.apps.TTFReader -ttcname SimSun c:\windows\fonts\simsun.ttc fonts\simsun.xml
java -cp build\fop.jar;lib\avalon-framework-4.2.0.jar;lib\commons-logging-1.0.4.jar;lib\commons-io-1.3.1.jar;lib\xmlgraphics-commons-1.4.jar org.apache.fop.fonts.apps.TTFReader -ttcname SimHei c:\windows\fonts\simhei.ttf fonts\simhei.xml </pre>
<p>
        上面的命令，把<span class="emphasis"><em>C:\Windows\fonts\</em></span>目录下的宋体和黑体这两种字体信息提取到<span class="emphasis"><em>fonts\simsun.xml</em></span>和<span class="emphasis"><em>fonts\simhei.xml</em></span>文件中。
      </p>
<p>        接下来配置<span class="bold"><strong>C:\docbook\fop-1.0\conf\fop.xconf</strong></span>，使Apache FOP能够找到这两种字体。首先在文件中找到<span class="emphasis"><em>&lt;renderer mime=”application/pdf”&gt;</em></span>这一行，然后在此标签中加入关于字体的配置。
      </p>
<pre class="programlisting">

&lt;fonts&gt;
  &lt;font metrics-url="fonts/simsun.xml" kerning="yes" embed-url="file:///c:/windows/fonts/simsun.ttc"&gt;
    &lt;font-triplet name="SimSun" style="normal" weight="normal"/&gt;
    &lt;font-triplet name="SimSun" style="normal" weight="bold"/&gt;
    &lt;font-triplet name="SimSun" style="italic" weight="normal"/&gt;
    &lt;font-triplet name="SimSun" style="italic" weight="bold"/&gt;
  &lt;/font&gt;

  &lt;font metrics-url="fonts/simhei.xml" kerning="yes" embed-url="file:///c:/windows/fonts/simhei.ttf"&gt;
    &lt;font-triplet name="SimHei" style="normal" weight="normal"/&gt;
    &lt;font-triplet name="SimHei" style="normal" weight="bold"/&gt;
    &lt;font-triplet name="SimHei" style="italic" weight="normal"/&gt;
    &lt;font-triplet name="SimHei" style="italic" weight="bold"/&gt;
  &lt;/font&gt;

  &lt;directory recursive="true"&gt;file:///c:/windows/fonts/&lt;/directory&gt;

  &lt;auto-detect/&gt;
&lt;/fonts&gt;
         </pre>
</li>
<li class="listitem">
      <span class="bold"><strong>配置XLT转换样式表</strong></span></p>
<p>
        接下来，我们要配置XSL转换样式表，让xsltproc在转换Docbook文档时，使用我们指定的中文字体。在下面我给出了一个简单的样式表，假设存为docbook_fo.xsl：
      </p>
<pre class="programlisting">
&lt;?xml version='1.0'?&gt;
&lt;xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
  xmlns:exsl="http://exslt.org/common"
  xmlns:fo="http://www.w3.org/1999/XSL/Format"
  xmlns:ng="http://docbook.org/docbook-ng"
  xmlns:db="http://docbook.org/ns/docbook"
  exclude-result-prefixes="db ng exsl"
  version='1.0'&gt;

  &lt;xsl:import href="C:/docbook/docbook-xsl-1.74.3/fo/docbook.xsl"/&gt;
  &lt;xsl:param name="body.font.family"&gt;SimSun&lt;/xsl:param&gt;

  &lt;xsl:param name="monospace.font.family"&gt;SimSun&lt;/xsl:param&gt;
  &lt;xsl:param name="title.font.family"&gt;SimHei&lt;/xsl:param&gt;
&lt;/xsl:stylesheet&gt;
         </pre>
<p>
        在这个转换样式表里，首先导入了Docbook的FO样式表，然后重新设置了其中的字体参数，改成我们所要的字体名称。需要注意的是，这里的字体名字需要和<span class="emphasis"><em>fop.xconf</em></span>中设置的font-triplet中的名字完全一致。
      </p>
</li>
<li class="listitem">
      <span class="bold"><strong>输出PDF文件</strong></span></p>
<p>
        完成上述配置后，就可以进行PDF文件的转换了。把下面的文件保存为<span class="emphasis"><em>example.xml</em></span>：
      </p>
<pre class="programlisting">

&lt;?xml version='1.0' encoding="utf-8"?&gt;

&lt;article xmlns="http://docbook.org/ns/docbook" version="5.0" xml:lang="zh-CN"
  xmlns:xlink='http://www.w3.org/1999/xlink'&gt;
  &lt;articleinfo&gt;
    &lt;title&gt;我的第一篇Docbook 5.0文档&lt;/title&gt;
    &lt;author&gt;
      &lt;firstname&gt;Easwy&lt;/firstname&gt;

      &lt;surname&gt;Yang&lt;/surname&gt;
    &lt;/author&gt;
  &lt;/articleinfo&gt; 

  &lt;section&gt;
    &lt;title&gt;文档介绍&lt;/title&gt;

    &lt;para&gt;
      这是我的第一篇Docbook 5.0文档，欢迎你来到&lt;link xlink:href='http://easwy.com/blog/'&gt;Easwy的博客&lt;/link&gt;。
    &lt;/para&gt;
  &lt;/section&gt;
&lt;/article&gt;
         </pre>
<p>
        然后输入下面的命令将其转换成PDF：
      </p>
<pre class="programlisting">
xsltproc -o example.fo c:\docbook\fop-1.0\conf\docbook_fo.xsl example.xml
fop -c c:\docbook\fop-1.0\conf\fop.xconf example.fo -pdf example.pdf </pre>
</li>
</ol>
</div>
<p>
    更多内容，请阅读<a class="ulink" href="http://easwy.com/blog/" target="_top">易水博客</a>上的其它文章。
  </p>
<p><span class="bold"><strong>参考文档</strong></span></p>
<div class="itemizedlist">
<ul class="itemizedlist" type="disc">
<li class="listitem">
      <a class="ulink" href="http://xmlgraphics.apache.org/fop/0.95/configuration.html" target="_top">Apache FOP: Configuration</a></p>
</li>
<li class="listitem">
      <a class="ulink" href="http://xmlgraphics.apache.org/fop/0.95/fonts.html" target="_top">Apache FOP: Fonts</a>
    </li>
<li class="listitem">
      <a class="ulink" href="http://blog.chinaunix.net/u/1096/showart.php?id=1808039" target="_top">使用Apache FOP将Docbook转换成PDF文档</a>
    </li>
<li class="listitem">
      <a class="ulink" href="http://gentoogle.blogspot.com/2008/03/docbookpdf.html" target="_top">中文docbook转换成PDF终于实现</a>
    </li>
<li class="listitem">
<p>      <a class="ulink" href="http://blog.donews.com/limodou/archive/2004/04/01/9917.aspx" target="_top">使用FOP将中文DocBook xml转换成pdf的实现记录</a>
    </li>
</ul>
</div>
<div class="posturl">
<p><span class="bold"><strong>原创文章，请阅读页脚的<a href="#license">许可方式</a>，转载请注明：</strong></span>转载自<a class="link" href="http://easwy.com/blog/" target="_top">易水博客</a> [ <a class="link" href="http://easwy.com/blog/" target="_top">http://easwy.com/blog/</a> ]</p>
<p><span class="bold"><strong>本文链接地址:</strong></span> <a class="link" href="http://easwy.com/blog/archives/install-apache-fop-on-windows/" target="_top">http://easwy.com/blog/archives/install-apache-fop-on-windows/</a></p>
</div>
<p style="margin-top: 0; margin-bottom: 15px; color: #888888; font-size: 80%; font-style: italic">文章的脚注信息由WordPress的<a href="http://easwy.com/blog/wordpress/wp-posturl/" style="color: #8888FF; text-decoration: underline;">wp-posturl插件</a>自动生成</p>
<div class="fixed"></div><div id="related_posts"><h3  class="related_post_title">相关文章</h3><ul class="related_post">
<li><a href='http://easwy.com/blog/archives/render_docbook_xml_to_pdf_by_apache_fop/' rel='bookmark' title='使用Apache FOP将Docbook文档转换成PDF'>使用Apache FOP将Docbook文档转换成PDF</a></li>
<li><a href='http://easwy.com/blog/archives/remove-duplicate-word-with-awk/' rel='bookmark' title='使用awk去掉重复的单词'>使用awk去掉重复的单词</a></li>
<li><a href='http://easwy.com/blog/archives/xlink-href-can-not-generate-hyperlink/' rel='bookmark' title='xlink:href不能生成html超链接'>xlink:href不能生成html超链接</a></li>
</div><div class="fixed"></div>]]></content:encoded>
			<wfw:commentRss>http://easwy.com/blog/archives/install-apache-fop-on-windows/feed/</wfw:commentRss>
		<slash:comments>13</slash:comments>
		</item>
		<item>
		<title>Linux使用笔记：Linux下动态链接库配置</title>
		<link>http://easwy.com/blog/archives/dynamic_library_configuration_in_linux/</link>
		<comments>http://easwy.com/blog/archives/dynamic_library_configuration_in_linux/#comments</comments>
		<pubDate>Mon, 22 Feb 2010 06:16:52 +0000</pubDate>
		<dc:creator>Easwy</dc:creator>
				<category><![CDATA[嵌入系统]]></category>
		<category><![CDATA[开源软件]]></category>
		<category><![CDATA[linux]]></category>

		<guid isPermaLink="false">http://easwy.com/blog/?p=1020</guid>
		<description><![CDATA[ 当Easwy尝试telent一个远端设备(ssh也遇到同样的错误)时，遇到下面的提示：

/usr/local/bin/cli: error while loading shared libraries: libAbc.so: cannot open shared object file: No such file or directory 
...<div class="fixed"></div><div id="related_posts"><h3  class="related_post_title">相关文章</h3><ul class="related_post">
<li><a href='http://easwy.com/blog/archives/enable-ip-forward-on-linux/' rel='bookmark' title='Linux使用笔记: 在Linux中使能IP转发'>Linux使用笔记: 在Linux中使能IP转发</a></li>
<li><a href='http://easwy.com/blog/archives/disable-ipv6-in-centos-and-redhat/' rel='bookmark' title='Linux使用笔记：在CentOS 5中关闭IPv6'>Linux使用笔记：在CentOS 5中关闭IPv6</a></li>
<li><a href='http://easwy.com/blog/archives/solve-fragment-packets-loss-of-ping/' rel='bookmark' title='Linux使用笔记: 解决Xen虚拟机中VLAN接口不能ping大包的问题'>Linux使用笔记: 解决Xen虚拟机中VLAN接口不能ping大包的问题</a></li>
</div><div class="fixed"></div>]]></description>
			<content:encoded><![CDATA[<p>
    当<a class="ulink" href="http://easwy.com/blog/" target="_top">Easwy</a>尝试telent一个远端设备时，遇到下面的提示(ssh也遇到同样的错误)：
  </p>
<pre class="programlisting">
/usr/local/bin/cli: error while loading shared libraries: libAbc.so: cannot open shared object file: No such file or directory </pre>
<p>
    在这个设备里，由<span class="command"><strong>xinetd</strong></span>来启动<span class="command"><strong>in.telnetd</strong></span>，而<span class="command"><strong>in.telnetd</strong></span>则调用<span class="command"><strong>/usr/local/bin/cli</strong></span>来做为登录程序。看上述提示，应该是<span class="command"><strong>in.telnetd</strong></span>在启动<span class="command"><strong>/usr/local/bin/cli</strong></span>时找不到动态链接库。
  </p>
<p>
    首先用<span class="command"><strong>ldd</strong></span>命令查看一下<span class="command"><strong>/usr/local/bin/cli</strong></span>所使用的动态链接库：
  </p>
<pre class="programlisting">
$ ldd /usr/local/bin/cli
linux-vdso32.so.1 =  (0x00100000)
libAbc.so =&gt; /usr/local/lib/libAbc.so (0x0fdfc000)
libreadline.so.5 =&gt; /lib/libreadline.so.5 (0x0f376000)
libncurses.so.5 =&gt; /lib/libncurses.so.5 (0x0f337000)
libstdc++.so.6 =&gt; /lib/libstdc++.so.6 (0x0f24e000)
libm.so.6 =&gt; /lib/libm.so.6 (0x0f17a000)
libgcc_s.so.1 =&gt; /lib/libgcc_s.so.1 (0x0f14a000)
/lib/ld.so.1 (0x48000000)
libtinfo.so.5 =&gt; /lib/libtinfo.so.5 (0x0efaa000)&gt; </pre>
<p>
    从上面的命令输出可以看到，<span class="command"><strong>cli</strong></span>程序的确会调用libAbc.so这个库，不过上面的输出中，这个库已经被找到了，它对应着文件/usr/local/lib/libAbc.so。考虑到在shell中已经设置了<span class="emphasis"><em>LD_LIBRARY_PATH</em></span>环境变量，在此环境变量中增加了<span class="emphasis"><em>/usr/local/lib</em></span>目录，那么是不是xinetd在启动in.telnetd时没有传递此环境变量呢？
  </p>
<p>
    于是修改<span class="emphasis"><em>/etc/xinetd.d/telnet</em></span>，在里面增加一行：
  </p>
<pre class="programlisting">
env = LD_LIBRARY_PATH=/lib:/usr/lib:/usr/local/lib </pre>
<p>
    再次telnet，还是显示上述错误。似乎是in.telnetd在启动cli时没有传递上述环境变量。
  </p>
<p>
    幸好还有一个方法来指定动态链接库的位置。
  </p>
<p>
    <a class="ulink" href="http://easwy.com/blog/" target="_top">Easwy</a>在目录<span class="emphasis"><em>/etc/ld.so.conf.d</em></span>中新增加一个文件<span class="emphasis"><em>cli.conf</em></span>，内容是：
  </p>
<pre class="programlisting">
$  cat cli.conf
/usr/local/lib </pre>
<p>
    然后再以root身份执行一下<span class="command"><strong>ldconfig</strong></span>命令。现在再telnet或ssh，就不会出现上述错误提示了。
  </p>
<p>
    <span class="command"><strong>/usr/ldconfig</strong></span>命令会读取命令行参数、<span class="emphasis"><em>/etc/ld.so.conf</em></span>配置文件以及/lib和/usr/lib目录，为动态链接器<span class="command"><strong>ld.so</strong></span>和<span class="command"><strong>ld-linux.so</strong></span>生成所需的链接和缓存信息。也就是说，如果不修改任何配置，只有位于/lib和/usr/lib目录的库才能被动态链接器使用。<a class="ulink" href="http://easwy.com/blog/" target="_top">Easwy</a>上面的修改新增了<span class="emphasis"><em>/usr/local/lib</em></span>目录，并且使用<span class="command"><strong>/sbin/ldconfig</strong></span>命令重新生成了缓存，使动态链接器可以引用上述目录的库。这样就解决了此问题。
  </p>
<p>
    因此，在你也遇到类似的错误时，如果有root权限，就可以用这种方法来解决；如果没有root权限，那就只能设置一下<span class="command"><strong>LD_LIBRARY_PATH</strong></span>环境变量了。
  </p>
<p>
    更多内容，请阅读<a class="ulink" href="http://easwy.com/blog/" target="_top">易水博客</a>上的其它文章。
  </p>
<div class="posturl">
<p><span class="bold"><strong>原创文章，请阅读页脚的<a href="#license">许可方式</a>，转载请注明：</strong></span>转载自<a class="link" href="http://easwy.com/blog/" target="_top">易水博客</a> [ <a class="link" href="http://easwy.com/blog/" target="_top">http://easwy.com/blog/</a> ]</p>
<p><span class="bold"><strong>本文链接地址:</strong></span> <a class="link" href="http://easwy.com/blog/archives/dynamic_library_configuration_in_linux/" target="_top">http://easwy.com/blog/archives/dynamic_library_configuration_in_linux/</a></p>
</div>
<p style="margin-top: 0; margin-bottom: 15px; color: #888888; font-size: 80%; font-style: italic">文章的脚注信息由WordPress的<a href="http://easwy.com/blog/wordpress/wp-posturl/" style="color: #8888FF; text-decoration: underline;">wp-posturl插件</a>自动生成</p>
<div class="fixed"></div><div id="related_posts"><h3  class="related_post_title">相关文章</h3><ul class="related_post">
<li><a href='http://easwy.com/blog/archives/enable-ip-forward-on-linux/' rel='bookmark' title='Linux使用笔记: 在Linux中使能IP转发'>Linux使用笔记: 在Linux中使能IP转发</a></li>
<li><a href='http://easwy.com/blog/archives/disable-ipv6-in-centos-and-redhat/' rel='bookmark' title='Linux使用笔记：在CentOS 5中关闭IPv6'>Linux使用笔记：在CentOS 5中关闭IPv6</a></li>
<li><a href='http://easwy.com/blog/archives/solve-fragment-packets-loss-of-ping/' rel='bookmark' title='Linux使用笔记: 解决Xen虚拟机中VLAN接口不能ping大包的问题'>Linux使用笔记: 解决Xen虚拟机中VLAN接口不能ping大包的问题</a></li>
</div><div class="fixed"></div>]]></content:encoded>
			<wfw:commentRss>http://easwy.com/blog/archives/dynamic_library_configuration_in_linux/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Windows下cscope -q选项出错的解决</title>
		<link>http://easwy.com/blog/archives/cscope_sort_option_on_windows/</link>
		<comments>http://easwy.com/blog/archives/cscope_sort_option_on_windows/#comments</comments>
		<pubDate>Sun, 21 Feb 2010 02:50:07 +0000</pubDate>
		<dc:creator>Easwy</dc:creator>
				<category><![CDATA[开发编程]]></category>
		<category><![CDATA[开源软件]]></category>
		<category><![CDATA[文本处理]]></category>
		<category><![CDATA[Vim]]></category>

		<guid isPermaLink="false">http://easwy.com/blog/?p=1021</guid>
		<description><![CDATA[ 以前曾有网友留言，在windows下使用cscope时，使用-q选项出现如下提示：

D:\Temp> cscope -Rbkq
Input file specified two times.

cscope: cannot create inverted index; ignoring -q option
cscope: removed files ncscope.in.out and ncscope.po.out 

当时Easwy以为是windows版本的cscope不支持-q选项。 网友Liang Feng提醒说是由于没有找到合适的sort程序，Easwy又做了一个实验，找到了解决此问题的办法。<div class="fixed"></div><div id="related_posts"><h3  class="related_post_title">相关文章</h3><ul class="related_post">
<li><a href='http://easwy.com/blog/archives/advanced-vim-skills-cscope/' rel='bookmark' title='vi/vim使用进阶: 程序员的利器 &#8211; cscope'>vi/vim使用进阶: 程序员的利器 &#8211; cscope</a></li>
<li><a href='http://easwy.com/blog/archives/vim-cscope-ctags/' rel='bookmark' title='vi/Vim + Cscope/Ctags'>vi/Vim + Cscope/Ctags</a></li>
<li><a href='http://easwy.com/blog/archives/install-cscope-to-home/' rel='bookmark' title='如何将cscope安装到指定目录'>如何将cscope安装到指定目录</a></li>
</div><div class="fixed"></div>]]></description>
			<content:encoded><![CDATA[<p>
    以前曾有网友留言，在windows下使用cscope时，使用-q选项出现如下提示：
  </p>
<pre class="programlisting">
D:\Temp&gt; cscope -Rbkq
Input file specified two times.

cscope: cannot create inverted index; ignoring -q option
cscope: removed files ncscope.in.out and ncscope.po.out </pre>
<p>
    当时<a class="ulink" href="http://easwy.com/blog/" target="_top">Easwy</a>以为是windows版本的cscope不支持-q选项。
  </p>
<p>
    不过网友Liang Feng昨天<a class="ulink" href="http://easwy.com/blog/archives/advanced-vim-skills-cscope/#comment-2116" target="_top">留言</a>说：
  </p>
<pre class="programlisting">
Windows版本的cscope是支持-q选项的，出现以上错误是因为没找到合适的sort命令。所以只要cscope进程的工作目录下有GNU版本的sort就可以了。注意是进程的工作目录，不是可执行程序的目录。具体原因看一下cscope的代码片段。

build.c

#ifdef WIN32
snprintf(sortcommand, sizeof(sortcommand), “set LC_ALL=C &amp;&amp; sort -T %s %s”, tmpdir, temp1);
#else
snprintf(sortcommand, sizeof(sortcommand), “env LC_ALL=C sort -T %s %s”, tmpdir, temp1);
#endif </pre>
<p>
    于是重新做了一下试验。在安装了Cygwin后，在cygwin的shell界面中使用cscope，没有出现上面的错误提示。但如果打开windows的命令行窗口cmd.exe，在里面执行cscope，则会出现上面的错误。
  </p>
<p>
    在仔细比较了cygwin和cmd.exe的环境后发现，原来是Windows自带的sort.exe搞的鬼。
  </p>
<p>
    在cygwin的shell窗口中，PATH环境变量的设置会使其先找到GNU版的sort.exe，所以上述cscope命令执行可以成功。但在cmd.exe窗口中，PATH环境变量会使其先找到windows自带的sort.exe而不是GNU sort.exe，所以会出现上面的错误提示。
  </p>
<p>
    知道了问题的原因，解决方法就很简单了，我们可以写一个批处理程序，在此程序中重设PATH环境变量，使cscope使用GNU版的sort.exe。示例程序如下：
  </p>
<pre class="programlisting">
D:\Temp&gt; type cs.bat
@echo off
set path=c:\cygwin\bin;
cscope -Rbkq </pre>
<p>
    在这个批处理里，首先把path环境变量指向<span class="emphasis"><em>c:\cygwin\bin;</em></span>，我的cscope.exe和GNU版的sort.exe都在此目录中。接下来现执行cscope命令，现在它使用的就是GNU版的sort.exe了。
  </p>
<p>
    在此感谢网友Liang Feng，谢谢他的提醒。
  </p>
<p>    更多内容，请阅读<a class="ulink" href="http://easwy.com/blog/" target="_top">易水博客</a>上的其它文章。
  </p>
<div class="posturl">
<p><span class="bold"><strong>原创文章，请阅读页脚的<a href="#license">许可方式</a>，转载请注明：</strong></span>转载自<a class="link" href="http://easwy.com/blog/" target="_top">易水博客</a> [ <a class="link" href="http://easwy.com/blog/" target="_top">http://easwy.com/blog/</a> ]</p>
<p><span class="bold"><strong>本文链接地址:</strong></span> <a class="link" href="http://easwy.com/blog/archives/cscope_sort_option_on_windows/" target="_top">http://easwy.com/blog/archives/cscope_sort_option_on_windows/</a></p>
</div>
<p style="margin-top: 0; margin-bottom: 15px; color: #888888; font-size: 80%; font-style: italic">文章的脚注信息由WordPress的<a href="http://easwy.com/blog/wordpress/wp-posturl/" style="color: #8888FF; text-decoration: underline;">wp-posturl插件</a>自动生成</p>
<div class="fixed"></div><div id="related_posts"><h3  class="related_post_title">相关文章</h3><ul class="related_post">
<li><a href='http://easwy.com/blog/archives/advanced-vim-skills-cscope/' rel='bookmark' title='vi/vim使用进阶: 程序员的利器 &#8211; cscope'>vi/vim使用进阶: 程序员的利器 &#8211; cscope</a></li>
<li><a href='http://easwy.com/blog/archives/vim-cscope-ctags/' rel='bookmark' title='vi/Vim + Cscope/Ctags'>vi/Vim + Cscope/Ctags</a></li>
<li><a href='http://easwy.com/blog/archives/install-cscope-to-home/' rel='bookmark' title='如何将cscope安装到指定目录'>如何将cscope安装到指定目录</a></li>
</div><div class="fixed"></div>]]></content:encoded>
			<wfw:commentRss>http://easwy.com/blog/archives/cscope_sort_option_on_windows/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>vi技巧: 宏的使用技巧</title>
		<link>http://easwy.com/blog/archives/vi-tip-of-using-recording/</link>
		<comments>http://easwy.com/blog/archives/vi-tip-of-using-recording/#comments</comments>
		<pubDate>Thu, 28 Jan 2010 11:38:16 +0000</pubDate>
		<dc:creator>Easwy</dc:creator>
				<category><![CDATA[开源软件]]></category>
		<category><![CDATA[Vim]]></category>

		<guid isPermaLink="false">http://easwy.com/blog/?p=1011</guid>
		<description><![CDATA[网友Karl问：
    再请教一下：我想在.vimrc中设置一个宏，请vi启动的时候就有这个宏，应该怎么办？ 
其实在vim中所谓的宏就是把一串命令放到了指定的寄存器里。所以要实现Karl的需求，可以这样做：先录制好宏后，然后在vimrc里把这个宏中的命令放到指定寄存器里，这样vim启动后就可以直接使用这个宏了。
具体的做法如下...<div class="fixed"></div><div id="related_posts"><h3  class="related_post_title">相关文章</h3><ul class="related_post">
<li><a href='http://easwy.com/blog/archives/vim-mail-list-discussion-group/' rel='bookmark' title='vim邮件列表和论坛资源'>vim邮件列表和论坛资源</a></li>
<li><a href='http://easwy.com/blog/archives/compile-vim73-on-ubuntu/' rel='bookmark' title='在Ubuntu上编译vim 7.3'>在Ubuntu上编译vim 7.3</a></li>
<li><a href='http://easwy.com/blog/archives/exuberant-ctags-chinese-manual/' rel='bookmark' title='Exuberant Ctags中文手册'>Exuberant Ctags中文手册</a></li>
</div><div class="fixed"></div>]]></description>
			<content:encoded><![CDATA[<p>
    本文所用命令的帮助入口：
  </p>
<pre class="programlisting">
:help q
:help @
:help :let-@ </pre>
<p>
    <a class="ulink" href="http://easwy.com/blog/archives/where-is-vimrc/#comment-1885" target="_top">网友Karl问</a>：
  </p>
<div class="blockquote">
<blockquote class="blockquote">
再请教一下：我想在.vimrc中设置一个宏，请vi启动的时候就有这个宏，应该怎么办？
  </p></blockquote>
</div>
<p>
    其实在vim中所谓的宏就是把一串命令放到了指定的寄存器里。所以要实现Karl的需求，可以这样做：先录制好宏后，然后在vimrc里把这个宏中的命令放到指定寄存器里，这样vim启动后就可以直接使用这个宏了。
  </p>
<p>
    具体的做法如下：
  </p>
<p>
    <span class="bold"><strong>第一步：</strong></span>首先录制宏，<a class="ulink" href="http://easwy.com/blog/" target="_top">Easwy</a>以插入三行文字做为一个简单的例子。这三行文字是：
  </p>
<pre class="programlisting">
================================
I love vim. Happy vimming!
================================ </pre>
<p>
    按<span class="command"><strong>qu</strong></span>开始录制，录制完成后再按一个<span class="command"><strong>q</strong></span>命令结束，这样就把宏录制到寄存器<span class="emphasis"><em>u</em></span>中了。
  </p>
<p>    现在我们可以查看一下<span class="emphasis"><em>u</em></span>寄存器的内容，用命令<span class="command"><strong>“up</strong></span>，把u寄存器的内容粘贴出来：
  </p>
<pre class="programlisting">
32i=^[oI love vim. Happy vimming!^M^[32i=^[ </pre>
<p>
    注意，上面的<span class="bold"><strong>^[</strong></span>实际上是<span class="bold"><strong>&lt;ESC&gt;</strong></span>键的键码，同样，<span class="bold"><strong>^M</strong></span>是换行键<span class="bold"><strong>&lt;CR&gt;</strong></span>的键码，在vim中它们以特殊的颜色被显示出来，如果你把光标在它们上面移过，你会发现它们虽被显示成两个字符，但实际上只是一个。
  </p>
<p>
    <span class="bold"><strong>第二步：</strong></span>现在我们用下面的命令在<a class="ulink" href="http://easwy.com/blog/archives/advanced-vim-skills-introduce-vimrc/" target="_top">.vimrc</a>中输入一行：
  </p>
<pre class="programlisting">
&lt;ESC&gt;olet @m = "&lt;ESC&gt;"upa"&lt;ESC&gt; </pre>
<p>
    这行命令实际上在.vimrc加入了这行话：
  </p>
<div class="blockquote">
<blockquote class="blockquote">
let @m = "32i=^[oI love vim. Happy vimming!^M^[32i=^["
  </p></blockquote>
</div>
<p>
    <span class="bold"><strong>第三步：</strong></span>现在你重启vi，然后直接输出下面的命令：
  </p>
<pre class="programlisting">
@m </pre>
<p>
    怎么样，宏是不是生效了？！
  </p>
<p>
  要想了解更多细节，请阅读文章开始处给出的帮助手册。
</p>
<p>
  更多关于vi/vim的内容，请阅读<a class="ulink" href="http://easwy.com/blog/" target="_top">易水博客</a>上的其它文章。
</p>
<div class="posturl">
<p><span class="bold"><strong>原创文章，请阅读页脚的<a href="#license">许可方式</a>，转载请注明：</strong></span>转载自<a class="link" href="http://easwy.com/blog/" target="_top">易水博客</a> [ <a class="link" href="http://easwy.com/blog/" target="_top">http://easwy.com/blog/</a> ]</p>
<p><span class="bold"><strong>本文链接地址:</strong></span> <a class="link" href="http://easwy.com/blog/archives/vi-tip-of-using-recording/" target="_top">http://easwy.com/blog/archives/vi-tip-of-using-recording/</a></p>
</div>
<p style="margin-top: 0; margin-bottom: 15px; color: #888888; font-size: 80%; font-style: italic">文章的脚注信息由WordPress的<a href="http://easwy.com/blog/wordpress/wp-posturl/" style="color: #8888FF; text-decoration: underline;">wp-posturl插件</a>自动生成</p>
<div class="fixed"></div><div id="related_posts"><h3  class="related_post_title">相关文章</h3><ul class="related_post">
<li><a href='http://easwy.com/blog/archives/vim-mail-list-discussion-group/' rel='bookmark' title='vim邮件列表和论坛资源'>vim邮件列表和论坛资源</a></li>
<li><a href='http://easwy.com/blog/archives/compile-vim73-on-ubuntu/' rel='bookmark' title='在Ubuntu上编译vim 7.3'>在Ubuntu上编译vim 7.3</a></li>
<li><a href='http://easwy.com/blog/archives/exuberant-ctags-chinese-manual/' rel='bookmark' title='Exuberant Ctags中文手册'>Exuberant Ctags中文手册</a></li>
</div><div class="fixed"></div>]]></content:encoded>
			<wfw:commentRss>http://easwy.com/blog/archives/vi-tip-of-using-recording/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Linux下常用程序的代理服务器(proxy)配置</title>
		<link>http://easwy.com/blog/archives/proxy-setting-on-linux-console/</link>
		<comments>http://easwy.com/blog/archives/proxy-setting-on-linux-console/#comments</comments>
		<pubDate>Wed, 27 Jan 2010 04:26:17 +0000</pubDate>
		<dc:creator>Easwy</dc:creator>
				<category><![CDATA[开源软件]]></category>
		<category><![CDATA[linux]]></category>

		<guid isPermaLink="false">http://easwy.com/blog/?p=1001</guid>
		<description><![CDATA[Linux下有很多程序都只有命令行接口，对于这类程序，它们通过代理服务器(proxy)访问网络的方式也不尽相同。在本文中Easwy总结了一些常用Linux程序配置代理服务器的方法。 <div class="fixed"></div><div id="related_posts"><h3  class="related_post_title">相关文章</h3><ul class="related_post">
<li><a href='http://easwy.com/blog/archives/use_http_proxy_for_git/' rel='bookmark' title='Linux使用笔记: 使用代理服务器访问git版本库'>Linux使用笔记: 使用代理服务器访问git版本库</a></li>
<li><a href='http://easwy.com/blog/archives/use-rxvt-in-cygwin/' rel='bookmark' title='使用rxvt做为cygwin终端'>使用rxvt做为cygwin终端</a></li>
<li><a href='http://easwy.com/blog/archives/linux-remote-desktop-via-cygwin-x-server/' rel='bookmark' title='使用cygwin X server实现Linux远程桌面 (for windows)'>使用cygwin X server实现Linux远程桌面 (for windows)</a></li>
</div><div class="fixed"></div>]]></description>
			<content:encoded><![CDATA[<p>
    Linux下有很多程序都只有命令行接口，对于这类程序，它们通过代理服务器(proxy)访问网络的方式也不尽相同。在本文中<a class="ulink" href="http://easwy.com/blog/" target="_top">Easwy</a>总结了一些常用Linux程序配置代理服务器的方法。
  </p>
<p><span class="bold"><strong>[ 通用代理服务器配置 ]</strong></span></p>
<p>
    对于大多数Linux控制台程序，例如<a class="ulink" href="http://easwy.com/blog/archives/tag/debian/" target="_top">Debian</a>或Ubuntu中的<span class="command"><strong>apt-get</strong></span>和<span class="command"><strong>aptitude</strong></span>命令、<a class="ulink" href="http://easwy.com/blog/archives/use_http_proxy_for_git/" target="_top">git命令</a>、wget命令，这些程序都使用<span class="emphasis"><em>http_proxy</em></span>和<span class="emphasis"><em>ftp_proxy</em></span>环境变量来获取代理服务的配置。
  </p>
<p>
    方法是在你的~/.bashrc里加上类似下面的话：
  </p>
<pre class="programlisting">
export http_proxy=http://username:password@proxyserver:port/
export ftp_proxy=http://username:password@proxyserver:port/ </pre>
<p>
    如果你的代理服务器需要用户名和密码才能访问，需要填写上面的username和passwd部分，否则的话，省略这两部分。
  </p>
<p>
    例如，假设你的代理服务器为<span class="emphasis"><em>192.168.1.1</em></span>，端口是<span class="emphasis"><em>8080</em></span>，用户名为<span class="emphasis"><em>easwy</em></span>，密码是<span class="emphasis"><em>123456</em></span>，那么应该这样设置这两个环境变量：
  </p>
<pre class="programlisting">
export http_proxy=http://easwy:123456@192.168.1.1:8080
export ftp_proxy=http://easwy:123456@192.168.1.1:8080 </pre>
<p>
    这样配置之后，退出再登录一次，或者直接使用下面的命令source一下.bashrc：
  </p>
<pre class="programlisting">source ~/.bashrc</pre>
<p>
    现在，上述程序就可以通过代理服务器访问网络了。
  </p>
<p><span class="bold"><strong>[ subversion的代理服务器配置 ]</strong></span></p>
<p>
    要配置subversion的代理服务器，需要修改<span class="emphasis"><em>$HOME/.subversion/servers</em></span>文件，在此文件的<span class="emphasis"><em>[global]</em></span>段加上：
  </p>
<pre class="programlisting">
http-proxy-host = 192.168.1.1
http-proxy-port = 8080
http-proxy-username = <a href="http://easwy.com/">easwy</a>
http-proxy-password = 123456 </pre>
<p>    现在<span class="command"><strong>svn</strong></span>就可以使用代理服务器访问版本库了。
  </p>
<p><span class="bold"><strong>[ yum的代理服务器配置 ]</strong></span></p>
<p>
    如果想让CentOS中的<span class="command"><strong>yum</strong></span>可以通过代理服务器更新程序，则需要修改文件<span class="emphasis"><em>/etc/yum.conf</em></span>，在此文件中加上：
  </p>
<p>
proxy=http://easwy:123456@192.168.1.1:8080</p>
<p>
    现在使用<span class="command"><strong>yum</strong></span>就可以更新你的软件了。
  </p>
<div class="posturl">
<p><span class="bold"><strong>原创文章，请阅读页脚的<a href="#license">许可方式</a>，转载请注明：</strong></span>转载自<a class="link" href="http://easwy.com/blog/" target="_top">易水博客</a> [ <a class="link" href="http://easwy.com/blog/" target="_top">http://easwy.com/blog/</a> ]</p>
<p><span class="bold"><strong>本文链接地址:</strong></span> <a class="link" href="http://easwy.com/blog/archives/proxy-setting-on-linux-console/" target="_top">http://easwy.com/blog/archives/proxy-setting-on-linux-console/</a></p>
</div>
<p style="margin-top: 0; margin-bottom: 15px; color: #888888; font-size: 80%; font-style: italic">文章的脚注信息由WordPress的<a href="http://easwy.com/blog/wordpress/wp-posturl/" style="color: #8888FF; text-decoration: underline;">wp-posturl插件</a>自动生成</p>
<div class="fixed"></div><div id="related_posts"><h3  class="related_post_title">相关文章</h3><ul class="related_post">
<li><a href='http://easwy.com/blog/archives/use_http_proxy_for_git/' rel='bookmark' title='Linux使用笔记: 使用代理服务器访问git版本库'>Linux使用笔记: 使用代理服务器访问git版本库</a></li>
<li><a href='http://easwy.com/blog/archives/use-rxvt-in-cygwin/' rel='bookmark' title='使用rxvt做为cygwin终端'>使用rxvt做为cygwin终端</a></li>
<li><a href='http://easwy.com/blog/archives/linux-remote-desktop-via-cygwin-x-server/' rel='bookmark' title='使用cygwin X server实现Linux远程桌面 (for windows)'>使用cygwin X server实现Linux远程桌面 (for windows)</a></li>
</div><div class="fixed"></div>]]></content:encoded>
			<wfw:commentRss>http://easwy.com/blog/archives/proxy-setting-on-linux-console/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>使用Synergy共享你的鼠标和键盘</title>
		<link>http://easwy.com/blog/archives/share-your-keyboard-and-mouse-by-synergy/</link>
		<comments>http://easwy.com/blog/archives/share-your-keyboard-and-mouse-by-synergy/#comments</comments>
		<pubDate>Mon, 18 Jan 2010 02:20:14 +0000</pubDate>
		<dc:creator>Easwy</dc:creator>
				<category><![CDATA[开源软件]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[windows]]></category>

		<guid isPermaLink="false">http://easwy.com/blog/?p=1000</guid>
		<description><![CDATA[ 前几天同事介绍了一个很好的软件Synergy，使用这个软件，可以在多台计算机间共享一个鼠标/键盘，每台计算机都有自己的屏幕，可以安装相同或不同的操作系统。
Easwy马上试用了一下这个软件，立刻就喜欢上了。...<div class="fixed"></div><div id="related_posts"><h3  class="related_post_title">相关文章</h3><ul class="related_post">
<li><a href='http://easwy.com/blog/archives/thinkpad_trackpoint_on_linux/' rel='bookmark' title='在Linux中使用thinkpad的小红点+中键'>在Linux中使用thinkpad的小红点+中键</a></li>
<li><a href='http://easwy.com/blog/archives/subversion-client-too-old-error/' rel='bookmark' title='Linux使用笔记: 解决Subversion提交时提示svn客户端版本太旧的问题'>Linux使用笔记: 解决Subversion提交时提示svn客户端版本太旧的问题</a></li>
<li><a href='http://easwy.com/blog/archives/subversion-configuration-in-debian-etch/' rel='bookmark' title='在debian etch中配置subversion版本管理'>在debian etch中配置subversion版本管理</a></li>
</div><div class="fixed"></div>]]></description>
			<content:encoded><![CDATA[<p>
    公司为每个软件开发人员配置了两部计算机，一部台式机安装Linux操作系统，一部笔记本安装Windows XP。开发编程主要在Linux下，处理文档和邮件则在Windows下。
  </p>
<p>
    工作经常需要在两台电脑间切换，一般情况下，<a class="ulink" href="http://easwy.com/blog/" target="_top">Easwy</a>都是把椅子移来移去来切换，或者是使用远程桌面来从一台计算机上访问另外一台计算机，由Windows访问Linux远程桌面可以使用<a class="ulink" href="http://easwy.com/blog/archives/linux-remote-desktop-via-cygwin-x-server/" target="_top">cygwin X server</a>，由Linux访问Windows远程桌面可以用<a class="ulink" href="http://www.rdesktop.org/" target="_top">rdesktop</a>。但这两种方式都不太方便，移动椅子就不说了，用远程桌面只能使用一个屏幕来做显示，不能充分利用两个屏幕。
  </p>
<p>
    有时需要在两台电脑间交换数据，文件共享一般使用Samba，在Windows上访问Linux的Samba服务器，或者<a class="ulink" href="http://easwy.com/blog/archives/mount-a-windows-shared-folder-on-linux-with-samba/" target="_top">从Linux上通过Samba访问Windows的共享目录</a>。而少量数据的共享，例如剪切板中数据的共享则比较麻烦。
  </p>
<p>
    前几天同事介绍了一个很好的软件<a class="ulink" href="http://synergy2.sourceforge.net/" target="_top">Synergy</a>，使用这个软件，可以在多台计算机间共享一个鼠标/键盘，每台计算机都可以有自己的屏幕，可以安装相同或不同的操作系统。
  </p>
<p>
    Easwy马上试用了一下这个软件，立刻就喜欢上了。安装完后，<a class="ulink" href="http://easwy.com/blog/" target="_top">Easwy</a>把Linux台式机设置为Synergy Server，Windows XP笔记本设置为Synergy Client(因为我大多数时间在Linux下工作)。设置好后，笔记本好像变成台式机的扩展屏幕了，鼠标移出台式机的窗口右边界后，就会移入笔记本的屏幕中，而此时台式机的键盘输入就直接输入到笔记本中了。同时，两台计算机间可以共享剪切板中的数据了。在Windows上拷贝一块数据到剪切板中，鼠标移回Linux，一按中键，就粘贴在vim中了，反之亦然，非常方便。
  </p>
<p>
    Synergy的安装配置都很简单，首先到<a class="ulink" href="http://sourceforge.net/project/showfiles.php?group_id=59275&amp;release_id=406637" target="_top">http://sourceforge.net/project/showfiles.php?group_id=59275&amp;release_id=406637</a>下载synergy，根据你操作系统的类型下载Linux或Windows的版本，下载后直接安装。
  </p>
<p>
    安装后需要在每台主机上运行synergy，并做相应的配置。Window上的synergy提供了图形化配置界面，Easwy配置成”Use another computer&#8217;s shared keyboard and mouse(client)”，并填入共享键盘/鼠标计算机的主机名。
  </p>
<p>
    Linux下需要写一个简单的配置文件，<a class="ulink" href="http://easwy.com/blog/" target="_top">Easwy</a>的配置文件如下：
  </p>
<pre class="programlisting">
section: screens
    szx-w-easwyy.easwy.com:
    szx-n-easwyy:
end
section: links
    szx-w-easwyy.easwy.com:
        right = szx-n-easwyy
    szx-n-easwyy:
        left = szx-w-easwyy.easwy.com
end </pre>
<p>
    把这个文件存为<span class="emphasis"><em>/etc/synergy.conf</em></span>，然后在命令行下执行：
  </p>
<pre class="programlisting">
synergys -f --config /etc/synergy.conf </pre>
<p>    这样就在前台启动了synergy服务器，之所以在前台启动是为了方便查看调试输出信息。接下来就可以测试一下效果。如果都没问题，按<span class="command"><strong>CTRL-C</strong></span>终止前台的synergy，然后把上面命令中的<span class="emphasis"><em>-f</em></span>参数去掉，在后台启动synergy。你可以把启动synergy加到你的启动脚本里，例如<span class="emphasis"><em>/etc/rc.local</em></span>。
  </p>
<p>
    简单介绍一下上面的配置文件：
  </p>
<div class="itemizedlist">
<ul class="itemizedlist" type="disc">
<li class="listitem">
    <span class="emphasis"><em>screens</em></span>一节列出你打算共享同一个键盘/鼠标的主机名，需要注意的是这里的主机名必须和你计算机上<span class="command"><strong>hostname</strong></span>命令的输出一致，不然synergy就会提示找不到对应的主机。
    </li>
<li class="listitem">
      <span class="emphasis"><em>links</em></span>一节则列出各主机间的位置关系，上面的配置指明了Linux台式机的右边是笔记本，而笔记本的左边是台式机。这样，鼠标移出台式机屏幕的右边界就会移入笔记本屏幕，而移出笔记本屏幕的左边界后就会移回台式机屏幕了。
    </li>
</ul>
</div>
<p>
    如果你需要特殊的配置，或者遇到了什么问题，请参见Synergy的主页。
  </p>
<p>
    <span class="bold"><strong>2010/01/19更新</strong></span>
  </p>
<p>    网友Stephenjy留言说，Synergy从2006年以来就没有更新过了，有人在Google Code上建立了新的<a class="ulink" href="http://code.google.com/p/synergy-plus/" target="_top">Synergy+</a>项目来继续维护。所以，如果你想试用，请直接下载Synergy+，网址是<a class="ulink" href="http://code.google.com/p/synergy-plus/" target="_top">http://code.google.com/p/synergy-plus/</a>。Easwy看了一下Synergy+的说明，基本是对Synergy的Bug修正，配置方法和Synergy完全一致。使用Easwy上面给出的配置，可以正常运行Synergy+。
  </p>
<p>
    <span class="bold"><strong>2010/01/25更新</strong></span>
  </p>
<p>
在CentOS 5.3上，synergy+ 1.3.4工作有问题。如果以CentOS 5.3做为server，每当把鼠标移入客户端，然后准备输入时，server端就会没有响应。只能从客户端ssh到CentOS服务器来kill掉到Synergy+ Server，CentOS上的键盘/鼠标才能恢复使用。我已经报告了此问题：<a href="http://code.google.com/p/synergy-plus/issues/detail?id=342"> Issue 342: synergy+ server is not responding</a>，但暂时还未解决。
</p>
<p>
    更多内容，请阅读<a class="ulink" href="http://easwy.com/blog/" target="_top">Easwy的博客</a>上的其它文章。
  </p>
<p><span class="bold"><strong>[ 参考文档 ]</strong></span></p>
<div class="itemizedlist">
<ul class="itemizedlist" type="disc">
<li class="listitem">
      <a class="ulink" href="http://synergy2.sourceforge.net/" target="_top">Synergy</a>
    </li>
</ul>
</div>
<div class="posturl">
<p><span class="bold"><strong>原创文章，请阅读页脚的<a href="#license">许可方式</a>，转载请注明：</strong></span>转载自<a class="link" href="http://easwy.com/blog/" target="_top">易水博客</a> [ <a class="link" href="http://easwy.com/blog/" target="_top">http://easwy.com/blog/</a> ]</p>
<p><span class="bold"><strong>本文链接地址:</strong></span> <a class="link" href="http://easwy.com/blog/archives/share-your-keyboard-and-mouse-by-synergy/" target="_top">http://easwy.com/blog/archives/share-your-keyboard-and-mouse-by-synergy/</a></p>
</div>
<p style="margin-top: 0; margin-bottom: 15px; color: #888888; font-size: 80%; font-style: italic">文章的脚注信息由WordPress的<a href="http://easwy.com/blog/wordpress/wp-posturl/" style="color: #8888FF; text-decoration: underline;">wp-posturl插件</a>自动生成</p>
<div class="fixed"></div><div id="related_posts"><h3  class="related_post_title">相关文章</h3><ul class="related_post">
<li><a href='http://easwy.com/blog/archives/thinkpad_trackpoint_on_linux/' rel='bookmark' title='在Linux中使用thinkpad的小红点+中键'>在Linux中使用thinkpad的小红点+中键</a></li>
<li><a href='http://easwy.com/blog/archives/subversion-client-too-old-error/' rel='bookmark' title='Linux使用笔记: 解决Subversion提交时提示svn客户端版本太旧的问题'>Linux使用笔记: 解决Subversion提交时提示svn客户端版本太旧的问题</a></li>
<li><a href='http://easwy.com/blog/archives/subversion-configuration-in-debian-etch/' rel='bookmark' title='在debian etch中配置subversion版本管理'>在debian etch中配置subversion版本管理</a></li>
</div><div class="fixed"></div>]]></content:encoded>
			<wfw:commentRss>http://easwy.com/blog/archives/share-your-keyboard-and-mouse-by-synergy/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Linux使用笔记: 使用代理服务器访问git版本库</title>
		<link>http://easwy.com/blog/archives/use_http_proxy_for_git/</link>
		<comments>http://easwy.com/blog/archives/use_http_proxy_for_git/#comments</comments>
		<pubDate>Fri, 08 Jan 2010 06:40:42 +0000</pubDate>
		<dc:creator>Easwy</dc:creator>
				<category><![CDATA[开源软件]]></category>
		<category><![CDATA[git]]></category>
		<category><![CDATA[linux]]></category>

		<guid isPermaLink="false">http://easwy.com/blog/?p=986</guid>
		<description><![CDATA[本文介绍了如何穿越http代理服务器访问git版本库。<div class="fixed"></div><div id="related_posts"><h3  class="related_post_title">相关文章</h3><ul class="related_post">
<li><a href='http://easwy.com/blog/archives/mount-a-windows-shared-folder-on-linux-with-samba/' rel='bookmark' title='Linux使用笔记: 使用Samba访问windows的共享目录'>Linux使用笔记: 使用Samba访问windows的共享目录</a></li>
<li><a href='http://easwy.com/blog/archives/linux-remote-desktop-by-vnc/' rel='bookmark' title='用VNC实现远程桌面共享(支持Windows, Linux, &#8230;)'>用VNC实现远程桌面共享(支持Windows, Linux, &#8230;)</a></li>
<li><a href='http://easwy.com/blog/archives/proxy-setting-on-linux-console/' rel='bookmark' title='Linux下常用程序的代理服务器(proxy)配置'>Linux下常用程序的代理服务器(proxy)配置</a></li>
</div><div class="fixed"></div>]]></description>
			<content:encoded><![CDATA[<p>
    今天想用git下载<a class="ulink" href="http://eclim.org/" target="_top">eclim</a>的源代码，因为公司的网络使用了代理服务器，无法直接访问git协议所监听端口。幸好github支持http协议的访问。于是，使用下面的命令设置了http proxy:
  </p>
<pre class="programlisting">
export http_proxy=http://my_proxy_server:port </pre>
<p>
    这样设置后，使用git可以访问版本服务器了，但在下载的时候却出现这样的错误：
  </p>
<pre class="programlisting">
$ git clone http://github.com/ervandew/eclim.git

Initialized empty Git repository in /home/easwy/90download/eclim/git/eclim/.git/

got 559057ba6b5133554e9603d400398c0700752c49
walk 559057ba6b5133554e9603d400398c0700752c49
got c177f69b4c5a18c7ee5aab65cdb88fcd410169df
got 1bd4276c2aa8832c8950f3be030e6eddde5a8b56
walk 1bd4276c2aa8832c8950f3be030e6eddde5a8b56
Getting alternates list for http://github.com/ervandew/eclim.git
Getting pack list for http://github.com/ervandew/eclim.git
Getting index for pack 523055f70fe6414d844af3180da0ade0adc95f87
Getting index for pack d338b3e2c4e213d4da51ddc86d898a11242ab9ec
Getting pack 523055f70fe6414d844af3180da0ade0adc95f87
 which contains aaae75262ebffdfa97c584f6b69967b0f5cc8cc8
 error: Unable to get pack file http://github.com/ervandew/eclim.git/objects/pack/pack-523055f70fe6414d844af3180da0ade0adc95f87.pack
 transfer closed with 30775470 bytes remaining to read
 error: Unable to find aaae75262ebffdfa97c584f6b69967b0f5cc8cc8 under http://github.com/ervandew/eclim.git
 Cannot obtain needed blob aaae75262ebffdfa97c584f6b69967b0f5cc8cc8
 while processing commit 1bd4276c2aa8832c8950f3be030e6eddde5a8b56. 

$ /usr/bin/git version
 git version 1.5.2.1 </pre>
<p>
    在网上搜了一下，也有其它人遇到这个问题，好像是git的bug，目前还不知道解决办法。即使换用git版本1.6.6还是存在此问题。难怪网上有人建议尽量不要使用http协议访问git版本库，除非你位于防火墙后面，可我恰好就是这种情况，郁闷ing!
  </p>
<p><span class="bold"><strong>2010/1/13更新</strong></span></p>
<p>
    网友ufly提到可以使用corkscrew来访问git版本库，<a class="ulink" href="http://easwy.com/blog/" target="_top">Easwy</a>按照文章<a class="ulink" href="https://gforge.ti.com/gf/project/omapandroid/wiki/?pagename=Git+Firewall" target="_top">Git Firewall</a>里讲的试了一下，还是不成功。
  </p>
<p>
    这可能是公司所用的代理服务器的限制，比如，当我尝试通过corkscrew进行ssh访问时，代理服务器会返回下面的信息：
  </p>
<pre class="programlisting">
$ ssh easwy@remote-server
Proxy could not open connnection to remote-server:  ( The specified Secure Sockets Layer (SSL) port is not allowed. ISA Server is not configured to allow SSL requests from this port. Most Web browsers use port 443 for SSL requests.  )
ssh_exchange_identification: Connection closed by remote host </pre>
<p>
    也就是说，公司的http proxy限制了通过SSL访问的端口只能是443端口，如果不是443端口则拒绝连接。
  </p>
<p>
    幸好github.com也开通了443端口的访问，文章<a class="ulink" href="http://blog.codeslower.com/2008/8/Using-PuTTY-and-SSL-to-securely-access-GitHub-repositories-via-SSH" target="_top"> Access GitHub repositories from work (take that, firewall!).</a>及其后的评论介绍了如何在windows及Linux下穿越防火墙访问github.com。等有时间试一下。
  </p>
<p>
    更多内容，请阅读<a class="ulink" href="http://easwy.com/blog/" target="_top">Easwy的博客</a>上的其它文章。
  </p>
<div class="posturl">
<p><span class="bold"><strong>原创文章，请阅读页脚的<a href="#license">许可方式</a>，转载请注明：</strong></span>转载自<a class="link" href="http://easwy.com/blog/" target="_top">易水博客</a> [ <a class="link" href="http://easwy.com/blog/" target="_top">http://easwy.com/blog/</a> ]</p>
<p><span class="bold"><strong>本文链接地址:</strong></span> <a class="link" href="http://easwy.com/blog/archives/use_http_proxy_for_git/" target="_top">http://easwy.com/blog/archives/use_http_proxy_for_git/</a></p>
</div>
<p style="margin-top: 0; margin-bottom: 15px; color: #888888; font-size: 80%; font-style: italic">文章的脚注信息由WordPress的<a href="http://easwy.com/blog/wordpress/wp-posturl/" style="color: #8888FF; text-decoration: underline;">wp-posturl插件</a>自动生成</p>
<div class="fixed"></div><div id="related_posts"><h3  class="related_post_title">相关文章</h3><ul class="related_post">
<li><a href='http://easwy.com/blog/archives/mount-a-windows-shared-folder-on-linux-with-samba/' rel='bookmark' title='Linux使用笔记: 使用Samba访问windows的共享目录'>Linux使用笔记: 使用Samba访问windows的共享目录</a></li>
<li><a href='http://easwy.com/blog/archives/linux-remote-desktop-by-vnc/' rel='bookmark' title='用VNC实现远程桌面共享(支持Windows, Linux, &#8230;)'>用VNC实现远程桌面共享(支持Windows, Linux, &#8230;)</a></li>
<li><a href='http://easwy.com/blog/archives/proxy-setting-on-linux-console/' rel='bookmark' title='Linux下常用程序的代理服务器(proxy)配置'>Linux下常用程序的代理服务器(proxy)配置</a></li>
</div><div class="fixed"></div>]]></content:encoded>
			<wfw:commentRss>http://easwy.com/blog/archives/use_http_proxy_for_git/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>解决Thinkpad T400在Debian Linux下不能休眠/待机的问题</title>
		<link>http://easwy.com/blog/archives/thinkpad-t400-suspend-hibernate-problem-on-linux/</link>
		<comments>http://easwy.com/blog/archives/thinkpad-t400-suspend-hibernate-problem-on-linux/#comments</comments>
		<pubDate>Tue, 05 Jan 2010 07:54:54 +0000</pubDate>
		<dc:creator>Easwy</dc:creator>
				<category><![CDATA[开源软件]]></category>
		<category><![CDATA[debian]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[thinkpad]]></category>

		<guid isPermaLink="false">http://easwy.com/blog/?p=989</guid>
		<description><![CDATA[ 在Thinkpad T400上安装了Debian Lenny后，发现电源管理似乎有点问题，系统不能正常的进入休眠/待机状态。当笔记本长时间处于Idle状态时，并不能进入待机或休眠状态，Gnome电源管理程序出现下面的提示：

Sleep Problem
Your computer failed to suspend/hibernate.
Check the help file for common problems.  

在Google上搜索了一下，其它Thinkpad T400的用户可以在Linux下正常待机或者休眠(Suspend/Hibernate)，看来应该是自己笔记本配置问题。 <div class="fixed"></div><div id="related_posts"><h3  class="related_post_title">相关文章</h3><ul class="related_post">
<li><a href='http://easwy.com/blog/archives/thinkpad_t400_wireless_driver_for_debian_lenny/' rel='bookmark' title='在debian lenny上安装thinkpad t400无线驱动'>在debian lenny上安装thinkpad t400无线驱动</a></li>
<li><a href='http://easwy.com/blog/archives/thinkpad_t400_audio_in_debian_lenny/' rel='bookmark' title='在Debian Lenny中配置Thinkpad T400的声卡'>在Debian Lenny中配置Thinkpad T400的声卡</a></li>
<li><a href='http://easwy.com/blog/archives/thinkpad_trackpoint_on_linux/' rel='bookmark' title='在Linux中使用thinkpad的小红点+中键'>在Linux中使用thinkpad的小红点+中键</a></li>
</div><div class="fixed"></div>]]></description>
			<content:encoded><![CDATA[<p>
    在<a class="link" href="http://easwy.com/blog/archives/debian-lenny-installation-on-thinkpad-t400/">Thinkpad T400上安装了Debian Lenny</a>后，发现电源管理似乎有点问题，系统不能正常的进入休眠/待机状态。当笔记本长时间处于Idle状态时，并不能进入待机或休眠状态，Gnome电源管理程序出现下面的提示：
  </p>
<pre class="programlisting">
Sleep Problem
Your computer failed to suspend/hibernate.
Check the help file for common problems.  </pre>
<p>
    在Google上搜索了一下，其它Thinkpad T400的用户可以在Linux下正常待机或者休眠(Suspend/Hibernate)，看来应该是自己笔记本配置问题。
  </p>
<p>    Linux上的电源管理由<a class="link" href="http://pm-utils.freedesktop.org/wiki/">pm-utils</a>实现，这个工具箱里包含了几个脚本:<span class="command"><strong>pm-hibernate</strong></span>、<span class="command"><strong>pm-suspend</strong></span>和<span class="command"><strong>pm-suspend-hybrid</strong></span>。这些脚本一般由窗口管理器Gnome或KDE，通过hald守护进程来调用。当然也可以直接调用这些脚本。<a class="link" href="http://easwy.com/blog/">Easwy</a>首先使用root用户执行<span class="command"><strong>pm-hibernate</strong></span>：
  </p>
<pre class="programlisting">
sudo pm-hibernate </pre>
<p>    执行完这个命令后，笔记本就将内存镜像保存到磁盘上，然后进入休眠模式。既然root用户能切换到休眠模式，那应该是Gnome的登录用户easwy不具备相应的权限。根据参考文档一中的说明，把用户<a class="link" href="http://easwy.com/blog/">easwy</a>加入<span class="emphasis"><em>powerdev</em></span>组中，现在在Gnome Power Manager中选择<span class="emphasis"><em>hibernate</em></span>就可以使计算机中进入休眠状态，不会出现上面的提示。
  </p>
<p>
    但新的问题又出现了，T400进入待机或休眠模式后无法正常恢复回来。现象是在恢复时，图形界面显示不完整，这时鼠标键盘都没有反应，过一段时间T400就重新加电重启了。
  </p>
<p>
    在网上搜了一下，好像这是由于xf86-video-intel驱动与芯片的兼容性问题(见参考文档二)造成的，使用下面的脚本可以解决这个问题：
  </p>
<pre class="programlisting">

#!/bin/sh
# Workaround for concurrency bug in xserver-xorg-video-intel 2:2.4.1-1ubuntu10.
# Save this as /etc/pm/sleep.d/00CPU 

. "/usr/lib/pm-utils/functions"

case "$1" in
	hibernate|suspend)
		for i in /sys/devices/system/cpu/cpu*/online ; do
			echo 0 &gt;$i
		done
		;;
	thaw|resume)
		sleep 10	# run with one core for 10 secs
		for i in /sys/devices/system/cpu/cpu*/online ; do
			echo 1 &gt;$i
		done
		;;
	*)
		;;
esac </pre>
<p>    <a class="link" href="http://easwy.com/blog/">Easwy</a>把上述脚本保存到<span class="emphasis"><em>/etc/pm/sleep.d/00CPU</em></span>，现在，Thinkpad T400可以正常待机/休眠/恢复了。
  </p>
<p>
    更多关于<a class="link" href="http://easwy.com/blog/archives/tag/thinkpad/">Linux上Thinkpad T400</a>的内容，请阅读<a class="link" href="http://easwy.com/blog/">Easwy的博客</a>上的其它文章。
  </p>
<p><span class="bold"><strong>[ 参考文档 ]</strong></span></p>
<div class="itemizedlist">
<ul type="disc">
<li><a class="link" href="http://old.nabble.com/Help-with-suspend-hibernate-in-Gnome-Power-Manager-td15181122.html">Help with suspend/hibernate in Gnome Power Manager</a></li>
<li><a class="link" href="http://wiki.archlinux.org/index.php/Lenovo_ThinkPad_T400#SUSPEND-RESUME">SUSPEND-RESUME</a></li>
</ul>
</div>
<div class="posturl">
<p><span class="bold"><strong>原创文章，请阅读页脚的<a href="#license">许可方式</a>，转载请注明：</strong></span>转载自<a class="link" href="http://easwy.com/blog/" target="_top">易水博客</a> [ <a class="link" href="http://easwy.com/blog/" target="_top">http://easwy.com/blog/</a> ]</p>
<p><span class="bold"><strong>本文链接地址:</strong></span> <a class="link" href="http://easwy.com/blog/archives/thinkpad-t400-suspend-hibernate-problem-on-linux/" target="_top">http://easwy.com/blog/archives/thinkpad-t400-suspend-hibernate-problem-on-linux/</a></p>
</div>
<p style="margin-top: 0; margin-bottom: 15px; color: #888888; font-size: 80%; font-style: italic">文章的脚注信息由WordPress的<a href="http://easwy.com/blog/wordpress/wp-posturl/" style="color: #8888FF; text-decoration: underline;">wp-posturl插件</a>自动生成</p>
<div class="fixed"></div><div id="related_posts"><h3  class="related_post_title">相关文章</h3><ul class="related_post">
<li><a href='http://easwy.com/blog/archives/thinkpad_t400_wireless_driver_for_debian_lenny/' rel='bookmark' title='在debian lenny上安装thinkpad t400无线驱动'>在debian lenny上安装thinkpad t400无线驱动</a></li>
<li><a href='http://easwy.com/blog/archives/thinkpad_t400_audio_in_debian_lenny/' rel='bookmark' title='在Debian Lenny中配置Thinkpad T400的声卡'>在Debian Lenny中配置Thinkpad T400的声卡</a></li>
<li><a href='http://easwy.com/blog/archives/thinkpad_trackpoint_on_linux/' rel='bookmark' title='在Linux中使用thinkpad的小红点+中键'>在Linux中使用thinkpad的小红点+中键</a></li>
</div><div class="fixed"></div>]]></content:encoded>
			<wfw:commentRss>http://easwy.com/blog/archives/thinkpad-t400-suspend-hibernate-problem-on-linux/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
	</channel>
</rss>

