<?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>zhtlancer&#039;s blog &#187; Linux</title>
	<atom:link href="http://zhtlancer.com/category/linux-opensource-projects/feed/" rel="self" type="application/rss+xml" />
	<link>http://zhtlancer.com</link>
	<description>alpha...</description>
	<lastBuildDate>Mon, 16 Jan 2012 17:10:47 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>PCManFM中用SMplayer打开文件名带中文、空格文件的问题</title>
		<link>http://zhtlancer.com/2012/01/smplayer_with_cjk_space_filename_in_pcmanfm/</link>
		<comments>http://zhtlancer.com/2012/01/smplayer_with_cjk_space_filename_in_pcmanfm/#comments</comments>
		<pubDate>Mon, 16 Jan 2012 17:10:47 +0000</pubDate>
		<dc:creator>zhtlancer</dc:creator>
				<category><![CDATA[Arch Linux]]></category>
		<category><![CDATA[折腾]]></category>
		<category><![CDATA[Awesome]]></category>
		<category><![CDATA[PCManFM]]></category>
		<category><![CDATA[SMplayer]]></category>

		<guid isPermaLink="false">http://zhtlancer.com/?p=47671</guid>
		<description><![CDATA[最近在PCManFM中用SMplayer打开媒体文件时，经常遇到不能正常播放的现象，开始以为mplayer和smplayer的配合问题，后来在一个存在问题的文件上查了下mplayer的log，发现mplayer没有找到打开的媒体文件，而且文件名被转换为URI形式，中文被转换成%格式化的形式。查了一些资料后，发现Arch Wiki上有提到一个Mplayer打开文件名带空格的问题的解决方案，就用类似方法对SMplayer做了下修改，将/usr/share/applications/smplayer.desktop(注:最好先检查一下~/.local/share/applications/中有没有对应文件，如果有的话应该是改这个文件)中的&#8221;Exec=smplayer %U&#8221;改为&#8221;Exec=smplayer %F&#8221;，问题解决。 Reference https://wiki.archlinux.org/index.php/Mplayer#Mplayer_fails_to_open_files_with_spaces © zhtlancer for zhtlancer&#039;s blog, 2012. &#124; Permalink &#124; 暂无评论 &#124; Add to del.icio.us Post tags: Awesome, PCManFM, SMplayer]]></description>
			<content:encoded><![CDATA[<p>最近在PCManFM中用SMplayer打开媒体文件时，经常遇到不能正常播放的现象，开始以为mplayer和smplayer的配合问题，后来在一个存在问题的文件上查了下mplayer的log，发现mplayer没有找到打开的媒体文件，而且文件名被转换为URI形式，中文被转换成%格式化的形式。查了一些资料后，发现Arch Wiki上有提到一个Mplayer打开文件名带空格的问题的解决方案，就用类似方法对SMplayer做了下修改，将/usr/share/applications/smplayer.desktop(注:最好先检查一下~/.local/share/applications/中有没有对应文件，如果有的话应该是改这个文件)中的&#8221;Exec=smplayer %U&#8221;改为&#8221;Exec=smplayer %F&#8221;，问题解决。</p>
<h3>Reference</h3>
<p><a href="https://wiki.archlinux.org/index.php/Mplayer#Mplayer_fails_to_open_files_with_spaces" onclick="pageTracker._trackPageview('/outgoing/wiki.archlinux.org/index.php/Mplayer_Mplayer_fails_to_open_files_with_spaces?referer=');">https://wiki.archlinux.org/index.php/Mplayer#Mplayer_fails_to_open_files_with_spaces</a></p>
<hr />
<p><small>© zhtlancer for <a href="http://zhtlancer.com">zhtlancer&#039;s blog</a>, 2012. |
<a href="http://zhtlancer.com/2012/01/smplayer_with_cjk_space_filename_in_pcmanfm/">Permalink</a> |
<a href="http://zhtlancer.com/2012/01/smplayer_with_cjk_space_filename_in_pcmanfm/#comments">暂无评论</a> |
Add to
<a href="http://del.icio.us/post?url=http://zhtlancer.com/2012/01/smplayer_with_cjk_space_filename_in_pcmanfm/&title=PCManFM中用SMplayer打开文件名带中文、空格文件的问题" onclick="pageTracker._trackPageview('/outgoing/del.icio.us/post?url=http_//zhtlancer.com/2012/01/smplayer_with_cjk_space_filename_in_pcmanfm/_title=PCManFM_SMplayer&amp;referer=');">del.icio.us</a>
<br/>
Post tags: <a href="http://zhtlancer.com/tag/awesome/" rel="tag">Awesome</a>, <a href="http://zhtlancer.com/tag/pcmanfm/" rel="tag">PCManFM</a>, <a href="http://zhtlancer.com/tag/smplayer/" rel="tag">SMplayer</a><br/>
</small></p>]]></content:encoded>
			<wfw:commentRss>http://zhtlancer.com/2012/01/smplayer_with_cjk_space_filename_in_pcmanfm/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Awesome多字体设置</title>
		<link>http://zhtlancer.com/2012/01/awesome_with_multiple_fonts/</link>
		<comments>http://zhtlancer.com/2012/01/awesome_with_multiple_fonts/#comments</comments>
		<pubDate>Mon, 09 Jan 2012 17:00:00 +0000</pubDate>
		<dc:creator>zhtlancer</dc:creator>
				<category><![CDATA[Arch Linux]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[折腾]]></category>
		<category><![CDATA[Awesome]]></category>
		<category><![CDATA[字体]]></category>

		<guid isPermaLink="false">http://zhtlancer.com/?p=47665</guid>
		<description><![CDATA[这个问题从开始用Awesome以来一直困扰着我，wibox上的所有中文都诡异得奇丑无比，但都一直没时间收拾这个。今天终于痛下决心折腾了一下，事实证明还是自己太二了…… 首先，如果在Awesome配置中设定具体的字体名称的话，应该是无法设置多个字体的，也就没法设置独立的西文+中文或其它CJK字体作为fallback（欢迎大家关于这点提出异议，那本文后面的话就可以直接忽略之了…）。这样如果指定了一个英文字体名称的话，也不知道Awesome用了什么样的fallback策略，wibox上显示的中文貌似居然都不是同一种字体的…… 其实要在Awesome中独立设置西文和中文字体很简单，只要回归本质即可——利用fontconfig的配置机制。在~/.fonts.conf(针对自己的用户)或/etc/fonts/local.conf(针对系统全局，不推荐)文件中，对sans、serif、monospace等字体族的字体进行设置，以字体先后顺序的形式调整好优先级。需要注意一般将要设置的英文字体放在中文字体前面才能生效。然后在Awesome配置中，将字体改为要用的字体族的名字即可，比如&#8221;serif 8&#8243;，这样wibox中的字体就是按照serif字体族中的优先级渲染了。 另外，对于fontconfig配置，推荐一个不错的自动配置生成网站：http://wenq.org/cloud/fcdesigner.html，可以很直观地对几个常用字体优先级调整效果进行预览，然后生成样例fontconfig内容，可以直接粘来使用，非常方便。这个工具是文泉驿项目提供的，再次感谢文泉驿为我们提供了这么好的开源字体和工具！ Reference https://wiki.archlinux.org/index.php/Fonts_(%E7%AE%80%E4%BD%93%E4%B8%AD%E6%96%87) http://wenq.org/cloud/fcdesigner.html © zhtlancer for zhtlancer&#039;s blog, 2012. &#124; Permalink &#124; 暂无评论 &#124; Add to del.icio.us Post tags: Arch Linux, Awesome, 字体]]></description>
			<content:encoded><![CDATA[<p>这个问题从开始用Awesome以来一直困扰着我，wibox上的所有中文都诡异得奇丑无比，但都一直没时间收拾这个。今天终于痛下决心折腾了一下，事实证明还是自己太二了……</p>
<p>首先，如果在Awesome配置中设定具体的字体名称的话，应该是无法设置多个字体的，也就没法设置独立的西文+中文或其它CJK字体作为fallback（欢迎大家关于这点提出异议，那本文后面的话就可以直接忽略之了…）。这样如果指定了一个英文字体名称的话，也不知道Awesome用了什么样的fallback策略，wibox上显示的中文貌似居然都不是同一种字体的……</p>
<p>其实要在Awesome中独立设置西文和中文字体很简单，只要回归本质即可——利用fontconfig的配置机制。在~/.fonts.conf(针对自己的用户)或/etc/fonts/local.conf(针对系统全局，不推荐)文件中，对sans、serif、monospace等字体族的字体进行设置，以字体先后顺序的形式调整好优先级。需要注意一般将要设置的英文字体放在中文字体前面才能生效。然后在Awesome配置中，将字体改为要用的字体族的名字即可，比如&#8221;serif 8&#8243;，这样wibox中的字体就是按照serif字体族中的优先级渲染了。</p>
<p>另外，对于fontconfig配置，推荐一个不错的自动配置生成网站：<a href="http://wenq.org/cloud/fcdesigner.html" onclick="pageTracker._trackPageview('/outgoing/wenq.org/cloud/fcdesigner.html?referer=');">http://wenq.org/cloud/fcdesigner.html</a>，可以很直观地对几个常用字体优先级调整效果进行预览，然后生成样例fontconfig内容，可以直接粘来使用，非常方便。这个工具是<a href="http://wenq.org/" target="_blank" onclick="pageTracker._trackPageview('/outgoing/wenq.org/?referer=');">文泉驿</a>项目提供的，再次感谢文泉驿为我们提供了这么好的开源字体和工具！</p>
<h5>Reference</h5>
<p><a href="https://wiki.archlinux.org/index.php/Fonts_(%E7%AE%80%E4%BD%93%E4%B8%AD%E6%96%87)" onclick="pageTracker._trackPageview('/outgoing/wiki.archlinux.org/index.php/Fonts_E7_AE_80_E4_BD_93_E4_B8_AD_E6_96_87?referer=');">https://wiki.archlinux.org/index.php/Fonts_(%E7%AE%80%E4%BD%93%E4%B8%AD%E6%96%87)</a></p>
<p><a href="http://wenq.org/cloud/fcdesigner.html" onclick="pageTracker._trackPageview('/outgoing/wenq.org/cloud/fcdesigner.html?referer=');">http://wenq.org/cloud/fcdesigner.html</a></p>
<hr />
<p><small>© zhtlancer for <a href="http://zhtlancer.com">zhtlancer&#039;s blog</a>, 2012. |
<a href="http://zhtlancer.com/2012/01/awesome_with_multiple_fonts/">Permalink</a> |
<a href="http://zhtlancer.com/2012/01/awesome_with_multiple_fonts/#comments">暂无评论</a> |
Add to
<a href="http://del.icio.us/post?url=http://zhtlancer.com/2012/01/awesome_with_multiple_fonts/&title=Awesome多字体设置" onclick="pageTracker._trackPageview('/outgoing/del.icio.us/post?url=http_//zhtlancer.com/2012/01/awesome_with_multiple_fonts/_title=Awesome&amp;referer=');">del.icio.us</a>
<br/>
Post tags: <a href="http://zhtlancer.com/tag/arch-linux/" rel="tag">Arch Linux</a>, <a href="http://zhtlancer.com/tag/awesome/" rel="tag">Awesome</a>, <a href="http://zhtlancer.com/tag/%e5%ad%97%e4%bd%93/" rel="tag">字体</a><br/>
</small></p>]]></content:encoded>
			<wfw:commentRss>http://zhtlancer.com/2012/01/awesome_with_multiple_fonts/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>QEMU在ISA方式下运行段错误的解决方法</title>
		<link>http://zhtlancer.com/2010/12/fix_segfault_in_isapc_of_qemu/</link>
		<comments>http://zhtlancer.com/2010/12/fix_segfault_in_isapc_of_qemu/#comments</comments>
		<pubDate>Fri, 03 Dec 2010 07:53:16 +0000</pubDate>
		<dc:creator>zhtlancer</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[QEMU]]></category>
		<category><![CDATA[Segfault]]></category>

		<guid isPermaLink="false">http://zhtlancer.com/?p=47644</guid>
		<description><![CDATA[Fix the bug in QEMU's ISA mode which will cause segfault during running]]></description>
			<content:encoded><![CDATA[<p>最近在用QEMU做关于x86平台最小化相关的项目，需要用到QEMU的&#8221;无PCI总线模式&#8221;，即&#8221;ISA总线模式&#8221;，相关的执行命令为</p>
<blockquote><p>qemu -M isapc &#8230;</p></blockquote>
<p>但是用上述命令启动qemu后，立即报Segmentation fault，即段错误，然后终止。调查一番后，发现原来是QEMU 0.13.0的一个bug，是由于ISA模式下，i440fx_state指针未初始化导致的。</p>
<p>解决方法很简单，可以自己编辑hw/pc_piix.c文件，在大概105行的位置，&#8221;pci_bus = NULL;&#8221;和&#8221;isa_bus_new(NULL);&#8221;两句之间加入&#8221;i440fx_state = NULL;&#8221;，然后重新编译即可。另外提供patch如下</p>
<pre class="c">diff --git a/hw/pc_piix.c b/hw/pc_piix.c
index 812ddfd..34c65d5 100644
--- a/hw/pc_piix.c
+++ b/hw/pc_piix.c
@@ -103,6 +103,7 @@ static void pc_init1(ram_addr_t ram_size,
         pci_bus = i440fx_init(&amp;i440fx_state, &amp;piix3_devfn, isa_irq, ram_size);
     } else {
         pci_bus = NULL;
+        i440fx_state = NULL;
         isa_bus_new(NULL);
     }
     isa_bus_irqs(isa_irq);</pre>
<h4>参考文献</h4>
<p><a href="http://www.mail-archive.com/qemu-devel@nongnu.org/msg39372.html" target="_blank" onclick="pageTracker._trackPageview('/outgoing/www.mail-archive.com/qemu-devel_nongnu.org/msg39372.html?referer=');">http://www.mail-archive.com/qemu-devel@nongnu.org/msg39372.html</a></p>
<hr />
<p><small>© zhtlancer for <a href="http://zhtlancer.com">zhtlancer&#039;s blog</a>, 2010. |
<a href="http://zhtlancer.com/2010/12/fix_segfault_in_isapc_of_qemu/">Permalink</a> |
<a href="http://zhtlancer.com/2010/12/fix_segfault_in_isapc_of_qemu/#comments">暂无评论</a> |
Add to
<a href="http://del.icio.us/post?url=http://zhtlancer.com/2010/12/fix_segfault_in_isapc_of_qemu/&title=QEMU在ISA方式下运行段错误的解决方法" onclick="pageTracker._trackPageview('/outgoing/del.icio.us/post?url=http_//zhtlancer.com/2010/12/fix_segfault_in_isapc_of_qemu/_title=QEMU_ISA&amp;referer=');">del.icio.us</a>
<br/>
Post tags: <a href="http://zhtlancer.com/tag/linux-opensource-projects/" rel="tag">Linux</a>, <a href="http://zhtlancer.com/tag/qemu/" rel="tag">QEMU</a>, <a href="http://zhtlancer.com/tag/segfault/" rel="tag">Segfault</a><br/>
</small></p>]]></content:encoded>
			<wfw:commentRss>http://zhtlancer.com/2010/12/fix_segfault_in_isapc_of_qemu/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Dell Mini 10显卡(GMA500)在Ubuntu下驱动安装</title>
		<link>http://zhtlancer.com/2010/09/video_driver_for_dell_mini10_on_ubuntu/</link>
		<comments>http://zhtlancer.com/2010/09/video_driver_for_dell_mini10_on_ubuntu/#comments</comments>
		<pubDate>Fri, 24 Sep 2010 13:05:40 +0000</pubDate>
		<dc:creator>zhtlancer</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[折腾]]></category>
		<category><![CDATA[Dell]]></category>
		<category><![CDATA[Drivers]]></category>
		<category><![CDATA[Ubuntu]]></category>

		<guid isPermaLink="false">http://zhtlancer.com/?p=47641</guid>
		<description><![CDATA[Ubuntu 10.04的官方源中没有Dell Mini 10的GMA500显卡的驱动，导致系统没法识别出其最佳显示分辨率。这样我们需要手动为它安装合适的驱动。 先在网上调查一番，发现GMA500有独立的开源驱动——poulsbo，并且在ppa上已经有提供针对ubuntu 10.04的poulsbo相关包，那就好说啦～ 首先修改软件源，在/etc/apt/sources.list中添加以下两个源： deb http://ppa.launchpad.net/gma500/ppa/ubuntu lucid main deb-src http://ppa.launchpad.net/gma500/ppa/ubuntu lucid main 然后添加新源的GPG公钥，在终端执行以下命令： sudo apt-key adv &#8211;recv-keys &#8211;keyserver keyserver.ubuntu.com 34BA7AE9 完成后依次执行以下命令安装poulsbo驱动即可： sudo apt-get update sudo apt-get install  xserver-xorg-video-psb psb-firmware sudo apt-get install poulsbo-config (此步会提示要卸载compiz，可能poulsbo还不能支持compiz，没啥需要就卸了compiz吧) sudo apt-get install poulsbo-driver-3d 如果以上步骤都没有报错的话，poulsbo驱动应该已经安装好了，重启一下，就可以享受正常的宽屏分辨率了～ © zhtlancer for zhtlancer&#039;s blog, 2010. &#124; Permalink &#124; 暂无评论 &#124; Add to [...]]]></description>
			<content:encoded><![CDATA[<p>Ubuntu 10.04的官方源中没有Dell Mini 10的GMA500显卡的驱动，导致系统没法识别出其最佳显示分辨率。这样我们需要手动为它安装合适的驱动。</p>
<p>先在网上调查一番，发现GMA500有独立的开源驱动——poulsbo，并且在ppa上已经有提供针对ubuntu 10.04的poulsbo相关包，那就好说啦～</p>
<p>首先修改软件源，在/etc/apt/sources.list中添加以下两个源：</p>
<blockquote><p>deb http://ppa.launchpad.net/gma500/ppa/ubuntu lucid main</p>
<p>deb-src http://ppa.launchpad.net/gma500/ppa/ubuntu lucid main</p></blockquote>
<p>然后添加新源的GPG公钥，在终端执行以下命令：</p>
<blockquote><p>sudo apt-key adv &#8211;recv-keys &#8211;keyserver keyserver.ubuntu.com 34BA7AE9</p></blockquote>
<p>完成后依次执行以下命令安装poulsbo驱动即可：</p>
<blockquote><p>sudo apt-get update</p>
<p>sudo apt-get install  xserver-xorg-video-psb psb-firmware</p>
<p>sudo apt-get install poulsbo-config (此步会提示要卸载compiz，可能poulsbo还不能支持compiz，没啥需要就卸了compiz吧)</p>
<p>sudo apt-get install poulsbo-driver-3d</p></blockquote>
<p>如果以上步骤都没有报错的话，poulsbo驱动应该已经安装好了，重启一下，就可以享受正常的宽屏分辨率了～</p>
<hr />
<p><small>© zhtlancer for <a href="http://zhtlancer.com">zhtlancer&#039;s blog</a>, 2010. |
<a href="http://zhtlancer.com/2010/09/video_driver_for_dell_mini10_on_ubuntu/">Permalink</a> |
<a href="http://zhtlancer.com/2010/09/video_driver_for_dell_mini10_on_ubuntu/#comments">暂无评论</a> |
Add to
<a href="http://del.icio.us/post?url=http://zhtlancer.com/2010/09/video_driver_for_dell_mini10_on_ubuntu/&title=Dell Mini 10显卡(GMA500)在Ubuntu下驱动安装" onclick="pageTracker._trackPageview('/outgoing/del.icio.us/post?url=http_//zhtlancer.com/2010/09/video_driver_for_dell_mini10_on_ubuntu/_title=Dell_Mini_10_GMA500_Ubuntu&amp;referer=');">del.icio.us</a>
<br/>
Post tags: <a href="http://zhtlancer.com/tag/dell/" rel="tag">Dell</a>, <a href="http://zhtlancer.com/tag/drivers/" rel="tag">Drivers</a>, <a href="http://zhtlancer.com/tag/linux-opensource-projects/" rel="tag">Linux</a>, <a href="http://zhtlancer.com/tag/ubuntu/" rel="tag">Ubuntu</a><br/>
</small></p>]]></content:encoded>
			<wfw:commentRss>http://zhtlancer.com/2010/09/video_driver_for_dell_mini10_on_ubuntu/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>硬盘安装ArchLinux（2010.05版本实测)</title>
		<link>http://zhtlancer.com/2010/06/steps_to_install_archlinux_from_iso_on_hd/</link>
		<comments>http://zhtlancer.com/2010/06/steps_to_install_archlinux_from_iso_on_hd/#comments</comments>
		<pubDate>Sun, 06 Jun 2010 02:57:02 +0000</pubDate>
		<dc:creator>zhtlancer</dc:creator>
				<category><![CDATA[Arch Linux]]></category>
		<category><![CDATA[Linux]]></category>

		<guid isPermaLink="false">http://zhtlancer.com/2010/06/%e7%a1%ac%e7%9b%98%e5%ae%89%e8%a3%85archlinux%ef%bc%882010-5%e7%89%88%e6%9c%ac%e5%ae%9e%e6%b5%8b/</guid>
		<description><![CDATA[今天重装Arch时发现最新的2010.05安装镜像只提供了光盘ISO版本，而没有原来的USB镜像版本了，所以只能放弃USB安装的方案。但是为了一次重装系统刻张盘实在浪费，所以就研究了下如何利用这个ISO镜像来实现硬盘安装。 查看了一下ArchWiki，刚好有一篇文章介绍利用ISO镜像安装Arch的方法，主要是利用grub将ISO镜像映射到内存中以供安装使用。不过这篇文章是在2009.08的安装镜像基础上的，在2010.05镜像上有些地方需要做些改动。下面是我的详细的安装过程。 首先要有一个可用的grub。我这里用的grub4dos，需要注意的一点是，我最先用grub4dos 0.4.3没成功，换到0.4.4版本顺利安装。然后将arch的安装镜像放在grub可读的分区内，如(hd1,0)/archlinux-2010.05-core-i686.iso。在启动进入grub时，按“c”进入grub的命令行模式。依次执行以下命令： grub&#62; map &#8211;mem &#8211;heads=0 &#8211;sectors-per-track=0 (hd0,1)/archlinux-2010.05-core-i686.iso (0xff) grub&#62; map &#8211;hook grub&#62; chainloader (0xff) grub&#62; boot 如果以上命令执行过程均没有问题，执行boot后应该就进入ISO镜像的启动流程了，按照正常方式选择arch的live方式，进入安装环境。 安装环境启动过程中，会提示没有找到安装光盘，然后提供了一个shell让用户解决这个问题，其原因在于arch的安装环境是通过光盘的label去找安装光盘的，也就是/dev/disk/by-label/ARCH_201005。所以我们还是需要手动将硬盘上的ISO文件链接到这个位置。当然首先要挂载ISO镜像所在的硬盘分区。这里需要特别注意一点，在Arch安装环境中，不要把任何分区挂载到/mnt目录下，Arch安装环境会将/mnt挂载为安装目标。可以执行下面的命令完成ISO镜像的链接工作： #mkdir /tmp_mnt #mount –r –t vfat /dev/sdb1 /tmp_mnt #modprobe loop #losetup /dev/loop6 /tmp_mnt/archlinux-2010.05-core-i686.iso #ln –s /dev/loop6 /dev/disk/by-label/ARCH_201005 #exit 如果没有问题的话，exit后arch会继续安装流程。后面的安装就与正常的光盘安装无异了。 以前用debian的时候，debian的ISO镜像中会提供用于硬盘安装的内核和ramdisk镜像，可以用grub手动加载，安装环境启动后中debian会自动检测ISO镜像位置，挂载ISO镜像继续安装。看了一下arch的ISO镜像内容，感觉arch应该也可以用这种方式进行安装，有兴趣的tx可以尝试一下~ © zhtlancer for zhtlancer&#039;s blog, 2010. &#124; Permalink &#124; 23 条评论 &#124; Add to [...]]]></description>
			<content:encoded><![CDATA[<p>今天重装Arch时发现最新的<a href="http://www.archlinux.org/download/" target="_blank" onclick="pageTracker._trackPageview('/outgoing/www.archlinux.org/download/?referer=');">2010.05安装镜像</a>只提供了光盘ISO版本，而没有原来的USB镜像版本了，所以只能放弃USB安装的方案。但是为了一次重装系统刻张盘实在浪费，所以就研究了下如何利用这个ISO镜像来实现硬盘安装。</p>
<p>查看了一下ArchWiki，刚好有<a href="http://wiki.archlinux.org/index.php/%E7%A1%AC%E7%9B%98%E5%AE%89%E8%A3%85_Arch_%28%E7%AE%80%E4%BD%93%E4%B8%AD%E6%96%87%29#.E7.A1.AC.E7.9B.98.E5.AE.89.E8.A3.85ArchLinux.EF.BC.88.E6.94.AF.E6.8C.812009.08.E7.9A.84ISO.EF.BC.89" target="_blank" onclick="pageTracker._trackPageview('/outgoing/wiki.archlinux.org/index.php/_E7_A1_AC_E7_9B_98_E5_AE_89_E8_A3_85_Arch_28_E7_AE_80_E4_BD_93_E4_B8_AD_E6_96_87_29_.E7.A1.AC.E7.9B.98.E5.AE.89.E8.A3.85ArchLinux.EF.BC.88.E6.94.AF.E6.8C.812009.08.E7.9A.84ISO.EF.BC.89?referer=');">一篇文章</a>介绍利用ISO镜像安装Arch的方法，主要是利用grub将ISO镜像映射到内存中以供安装使用。不过这篇文章是在2009.08的安装镜像基础上的，在2010.05镜像上有些地方需要做些改动。下面是我的详细的安装过程。</p>
<p>首先要有一个可用的grub。我这里用的<a href="https://gna.org/projects/grub4dos/" target="_blank" onclick="pageTracker._trackPageview('/outgoing/gna.org/projects/grub4dos/?referer=');">grub4dos</a>，需要注意的一点是，我最先用grub4dos 0.4.3没成功，换到0.4.4版本顺利安装。然后将arch的安装镜像放在grub可读的分区内，如(hd1,0)/archlinux-2010.05-core-i686.iso。在启动进入grub时，按“c”进入grub的命令行模式。依次执行以下命令：</p>
<blockquote><p>grub&gt; map &#8211;mem &#8211;heads=0 &#8211;sectors-per-track=0 (hd0,1)/archlinux-2010.05-core-i686.iso (0xff)<br />
grub&gt; map &#8211;hook<br />
grub&gt; chainloader (0xff)<br />
grub&gt; boot</p></blockquote>
<p><span style="background-color: #f4f5f7;">如果以上命令执行过程均没有问题，执行boot后应该就进入ISO镜像的启动流程了，按照正常方式选择arch的live方式，进入安装环境。</span></p>
<p><span style="background-color: #f4f5f7;">安装环境启动过程中，会提示没有找到安装光盘，然后提供了一个shell让用户解决这个问题，其原因在于arch的安装环境是通过光盘的label去找安装光盘的，也就是/dev/disk/by-label/ARCH_201005。所以我们还是需要手动将硬盘上的ISO文件链接到这个位置。当然首先要挂载ISO镜像所在的硬盘分区。<span style="color: #ff0000;"><strong>这里需要特别注意一点</strong></span>，在Arch安装环境中，不要把任何分区挂载到/mnt目录下，Arch安装环境会将/mnt挂载为安装目标。可以执行下面的命令完成ISO镜像的链接工作：</span></p>
<blockquote><p><span style="background-color: #f4f5f7;">#mkdir /tmp_mnt</span></p>
<p>#mount –r –t vfat /dev/sdb1 /tmp_mnt</p>
<p>#modprobe loop</p>
<p>#losetup /dev/loop6 /tmp_mnt/archlinux-2010.05-core-i686.iso</p>
<p>#ln –s /dev/loop6 /dev/disk/by-label/ARCH_201005</p>
<p>#exit</p></blockquote>
<p><span style="background-color: #f4f5f7;">如果没有问题的话，exit后arch会继续安装流程。后面的安装就与正常的光盘安装无异了。</span></p>
<p>以前用debian的时候，debian的ISO镜像中会提供用于硬盘安装的内核和ramdisk镜像，可以用grub手动加载，安装环境启动后中debian会自动检测ISO镜像位置，挂载ISO镜像继续安装。看了一下arch的ISO镜像内容，感觉arch应该也可以用这种方式进行安装，有兴趣的tx可以尝试一下~</p>
<hr />
<p><small>© zhtlancer for <a href="http://zhtlancer.com">zhtlancer&#039;s blog</a>, 2010. |
<a href="http://zhtlancer.com/2010/06/steps_to_install_archlinux_from_iso_on_hd/">Permalink</a> |
<a href="http://zhtlancer.com/2010/06/steps_to_install_archlinux_from_iso_on_hd/#comments">23 条评论</a> |
Add to
<a href="http://del.icio.us/post?url=http://zhtlancer.com/2010/06/steps_to_install_archlinux_from_iso_on_hd/&title=硬盘安装ArchLinux（2010.05版本实测)" onclick="pageTracker._trackPageview('/outgoing/del.icio.us/post?url=http_//zhtlancer.com/2010/06/steps_to_install_archlinux_from_iso_on_hd/_title=_ArchLinux_2010.05&amp;referer=');">del.icio.us</a>
<br/>
Post tags: <a href="http://zhtlancer.com/tag/arch-linux/" rel="tag">Arch Linux</a>, <a href="http://zhtlancer.com/tag/linux-opensource-projects/" rel="tag">Linux</a><br/>
</small></p>]]></content:encoded>
			<wfw:commentRss>http://zhtlancer.com/2010/06/steps_to_install_archlinux_from_iso_on_hd/feed/</wfw:commentRss>
		<slash:comments>23</slash:comments>
		</item>
		<item>
		<title>一个强大的Google服务提醒工具</title>
		<link>http://zhtlancer.com/2009/11/googsystray-google-gmail-voice-wave-reader-calendar-reminder/</link>
		<comments>http://zhtlancer.com/2009/11/googsystray-google-gmail-voice-wave-reader-calendar-reminder/#comments</comments>
		<pubDate>Fri, 27 Nov 2009 02:55:09 +0000</pubDate>
		<dc:creator>zhtlancer</dc:creator>
				<category><![CDATA[Google]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Calendar]]></category>
		<category><![CDATA[Gmail]]></category>
		<category><![CDATA[Reader]]></category>
		<category><![CDATA[Voice]]></category>
		<category><![CDATA[Wave]]></category>

		<guid isPermaLink="false">http://zhtlancer.yo2.cn/?p=46997</guid>
		<description><![CDATA[今天发现一个新的Google服务提醒工具——googsystray. 和以往的提醒工具单一提供gmail的新邮件提醒不同, 这个工具可以同时提供gmail, wave, voice, reader, calendar等多个服务的新消息提醒. 其主要用 python编写,支持windows/linux.其中 linux版当然需要有 python支持,而且还要有pygtk. 这是发现checkgmail以来发现的第一个有所超越的桌面提醒工具. 先试用一段时间,如果确实好用的话checkgmail就可以退休了. 下面是官方网站给出的若干截图： googsystray的项目主页：http://googsystray.sourceforge.net/ © zhtlancer for zhtlancer&#039;s blog, 2009. &#124; Permalink &#124; 暂无评论 &#124; Add to del.icio.us Post tags: Calendar, Gmail, Google, Linux, Reader, Voice, Wave]]></description>
			<content:encoded><![CDATA[<p>今天发现一个新的Google服务提醒工具——googsystray. 和以往的提醒工具单一提供gmail的新邮件提醒不同, 这个工具可以同时提供gmail, wave, voice, reader, calendar等多个服务的新消息提醒. 其主要用 python编写,支持windows/linux.其中 linux版当然需要有 python支持,而且还要有pygtk. 这是发现checkgmail以来发现的第一个有所超越的桌面提醒工具. 先试用一段时间,如果确实好用的话checkgmail就可以退休了.</p>
<p>下面是官方网站给出的若干截图：</p>

<p>googsystray的项目主页：http://googsystray.sourceforge.net/</p>
<hr />
<p><small>© zhtlancer for <a href="http://zhtlancer.com">zhtlancer&#039;s blog</a>, 2009. |
<a href="http://zhtlancer.com/2009/11/googsystray-google-gmail-voice-wave-reader-calendar-reminder/">Permalink</a> |
<a href="http://zhtlancer.com/2009/11/googsystray-google-gmail-voice-wave-reader-calendar-reminder/#comments">暂无评论</a> |
Add to
<a href="http://del.icio.us/post?url=http://zhtlancer.com/2009/11/googsystray-google-gmail-voice-wave-reader-calendar-reminder/&title=一个强大的Google服务提醒工具" onclick="pageTracker._trackPageview('/outgoing/del.icio.us/post?url=http_//zhtlancer.com/2009/11/googsystray-google-gmail-voice-wave-reader-calendar-reminder/_title=_Google&amp;referer=');">del.icio.us</a>
<br/>
Post tags: <a href="http://zhtlancer.com/tag/calendar/" rel="tag">Calendar</a>, <a href="http://zhtlancer.com/tag/gmail/" rel="tag">Gmail</a>, <a href="http://zhtlancer.com/tag/google/" rel="tag">Google</a>, <a href="http://zhtlancer.com/tag/linux-opensource-projects/" rel="tag">Linux</a>, <a href="http://zhtlancer.com/tag/reader/" rel="tag">Reader</a>, <a href="http://zhtlancer.com/tag/voice/" rel="tag">Voice</a>, <a href="http://zhtlancer.com/tag/wave/" rel="tag">Wave</a><br/>
</small></p>]]></content:encoded>
			<wfw:commentRss>http://zhtlancer.com/2009/11/googsystray-google-gmail-voice-wave-reader-calendar-reminder/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>开学, Android, Dalvik &amp; BlackBerry</title>
		<link>http://zhtlancer.com/2009/09/android-dalvik-blackberry/</link>
		<comments>http://zhtlancer.com/2009/09/android-dalvik-blackberry/#comments</comments>
		<pubDate>Thu, 24 Sep 2009 14:25:12 +0000</pubDate>
		<dc:creator>zhtlancer</dc:creator>
				<category><![CDATA[Android]]></category>
		<category><![CDATA[GTalk]]></category>
		<category><![CDATA[JAVA]]></category>
		<category><![CDATA[黑莓(BlackBerry)]]></category>

		<guid isPermaLink="false">http://zhtlancer.yo2.cn/?p=45256</guid>
		<description><![CDATA[又开学了&#8230; 这学期虽说课少了很多，但事却多了不少&#8230; 提交各种关乎以后前途的表格、考试、面试&#8230; Dalvik依旧固执地suspend在那里，让我恨不得直接在每次JAVA程序运行结束后手动把它kill掉&#8230; E680的Android计划直接一个月没碰&#8230; 唯一欣慰的就是终于借备用机的机会入了一个BB，虽说是最低端的8700(7xxx:被无情地忽视了T.T&#8230;)，不过还是被BB的全键盘和系统折服了，经过这半个多月的试用，目前主要感觉到BB的几个优势：一个类似于Android的系统框架，以JVM为核心，并提供系统核心功能API；提供完善的Development Environment和开发手册，这在现在的几大系统里似乎已经是惯例了，但一瞥见桌边放的E680，不经还是内牛满面，居然被MOTO这个自私而NC的家伙蒙骗了这么久&#8230; 得益于BB强大的开发环境，这个月还干了一件不务正业的事&#8230; 在BB上一直没找到一个很好的gtalk客户端，不是太贵就是太大，或者操作没有充分针对BB的全键盘进行优化，唯一一个感觉很满意的gmail+gtalk在7天试用期满后，被shapeservice客服无情地告知他们已经不提供这个“古董”了，要我去买IM+，40刀&#8230;抢钱啊&#8230;最后，毅然决定还是自己动手丰衣足食，利用JDE搞一个自己的GTALK。目前已经从一个开源项目JXA开始着手做了，当前状态是可以在BB上提供简单的收发信息，但是很简陋。计划这两天趁没事赶紧先搞一个可用的开发版本公布出去先，一方面好找人帮忙测试，还可以拉大牛一直开发 XD 不废话了，赶紧再写点去&#8230; © zhtlancer for zhtlancer&#039;s blog, 2009. &#124; Permalink &#124; 3 条评论 &#124; Add to del.icio.us Post tags: Android, GTalk, JAVA, 黑莓(BlackBerry)]]></description>
			<content:encoded><![CDATA[<p>又开学了&#8230;<br />
这学期虽说课少了很多，但事却多了不少&#8230;<br />
提交各种关乎以后前途的表格、考试、面试&#8230;<br />
Dalvik依旧固执地suspend在那里，让我恨不得直接在每次JAVA程序运行结束后手动把它kill掉&#8230;<br />
E680的Android计划直接一个月没碰&#8230;<br />
唯一欣慰的就是终于借备用机的机会入了一个BB，虽说是最低端的8700(7xxx:被无情地忽视了T.T&#8230;)，不过还是被BB的全键盘和系统折服了，经过这半个多月的试用，目前主要感觉到BB的几个优势：一个类似于Android的系统框架，以JVM为核心，并提供系统核心功能API；提供完善的Development Environment和开发手册，这在现在的几大系统里似乎已经是惯例了，但一瞥见桌边放的E680，不经还是内牛满面，居然被MOTO这个自私而NC的家伙蒙骗了这么久&#8230;<br />
得益于BB强大的开发环境，这个月还干了一件不务正业的事&#8230;<br />
在BB上一直没找到一个很好的gtalk客户端，不是太贵就是太大，或者操作没有充分针对BB的全键盘进行优化，唯一一个感觉很满意的gmail+gtalk在7天试用期满后，被shapeservice客服无情地告知他们已经不提供这个“古董”了，要我去买IM+，40刀&#8230;抢钱啊&#8230;最后，毅然决定还是自己动手丰衣足食，利用JDE搞一个自己的GTALK。目前已经从一个开源项目<a href="http://sourceforge.net/projects/jxa/" onclick="pageTracker._trackPageview('/outgoing/sourceforge.net/projects/jxa/?referer=');">JXA</a>开始着手做了，当前状态是可以在BB上提供简单的收发信息，但是很简陋。计划这两天趁没事赶紧先搞一个可用的开发版本公布出去先，一方面好找人帮忙测试，还可以拉大牛一直开发 XD<br />
不废话了，赶紧再写点去&#8230;</p>
<hr />
<p><small>© zhtlancer for <a href="http://zhtlancer.com">zhtlancer&#039;s blog</a>, 2009. |
<a href="http://zhtlancer.com/2009/09/android-dalvik-blackberry/">Permalink</a> |
<a href="http://zhtlancer.com/2009/09/android-dalvik-blackberry/#comments">3 条评论</a> |
Add to
<a href="http://del.icio.us/post?url=http://zhtlancer.com/2009/09/android-dalvik-blackberry/&title=开学, Android, Dalvik &amp; BlackBerry" onclick="pageTracker._trackPageview('/outgoing/del.icio.us/post?url=http_//zhtlancer.com/2009/09/android-dalvik-blackberry/_title=_Android_Dalvik_amp_BlackBerry&amp;referer=');">del.icio.us</a>
<br/>
Post tags: <a href="http://zhtlancer.com/tag/android/" rel="tag">Android</a>, <a href="http://zhtlancer.com/tag/gtalk/" rel="tag">GTalk</a>, <a href="http://zhtlancer.com/tag/java/" rel="tag">JAVA</a>, <a href="http://zhtlancer.com/tag/%e9%bb%91%e8%8e%93blackberry/" rel="tag">黑莓(BlackBerry)</a><br/>
</small></p>]]></content:encoded>
			<wfw:commentRss>http://zhtlancer.com/2009/09/android-dalvik-blackberry/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>近期任务计划</title>
		<link>http://zhtlancer.com/2009/08/recent-tasks/</link>
		<comments>http://zhtlancer.com/2009/08/recent-tasks/#comments</comments>
		<pubDate>Sun, 30 Aug 2009 17:11:37 +0000</pubDate>
		<dc:creator>zhtlancer</dc:creator>
				<category><![CDATA[Android]]></category>
		<category><![CDATA[E680]]></category>
		<category><![CDATA[Linux]]></category>

		<guid isPermaLink="false">http://zhtlancer.yo2.cn/?p=44935</guid>
		<description><![CDATA[前段时间因为实验室工作任务较重，加上一个课程项目要做，没有时间更新。然后又回家一周多，又光顾玩了…… 近期将继续android移植方面的工作，另外打算顺便试试将android移植到我的E680i上，不过这样就得先搞个备用机。 今天初步搭建了一个交叉环境，下了openezx项目和一位前辈的a1200的android移植过程以及相应补丁等。试着编了一下内核，通过usb_boot方式启动，pass了。但是挂载NFS作为ROOTFS出了问题，就找了个闲置的SD卡，先把rootfs放在上面，启动成功。不过最后还是没法进入android桌面，在启动过程挂掉了@@……目前推測主要原因是内存太小，主进程被内核的LOW MEMORY KILLER干掉了 后面工作先要进入android桌面，看看硬件驱动是否完善；下一步，由于这个采用的android版本太老，考虑将更新版本的跑起来，不过不知E680i能否坚持住…… 如果能顺利进入android桌面，我会单独把过程写下来。附前辈的android on e680视频 [http://player.youku.com/player.php/sid/XMTE2MDUxMTky/v.swf#swf] © zhtlancer for zhtlancer&#039;s blog, 2009. &#124; Permalink &#124; 3 条评论 &#124; Add to del.icio.us Post tags: Android, E680, Linux]]></description>
			<content:encoded><![CDATA[<p>前段时间因为实验室工作任务较重，加上一个课程项目要做，没有时间更新。然后又回家一周多，又光顾玩了……<br />
近期将继续android移植方面的工作，另外打算顺便试试将android移植到我的E680i上，不过这样就得先搞个备用机。<br />
今天初步搭建了一个交叉环境，下了openezx项目和一位前辈的a1200的android移植过程以及相应补丁等。试着编了一下内核，通过usb_boot方式启动，pass了。但是挂载NFS作为ROOTFS出了问题，就找了个闲置的SD卡，先把rootfs放在上面，启动成功。不过最后还是没法进入android桌面，在启动过程挂掉了@@……目前推測主要原因是内存太小，主进程被内核的LOW MEMORY KILLER干掉了<br />
后面工作先要进入android桌面，看看硬件驱动是否完善；下一步，由于这个采用的android版本太老，考虑将更新版本的跑起来，不过不知E680i能否坚持住……<br />
如果能顺利进入android桌面，我会单独把过程写下来。附前辈的android on e680视频<br />
[http://player.youku.com/player.php/sid/XMTE2MDUxMTky/v.swf#swf]</p>
<hr />
<p><small>© zhtlancer for <a href="http://zhtlancer.com">zhtlancer&#039;s blog</a>, 2009. |
<a href="http://zhtlancer.com/2009/08/recent-tasks/">Permalink</a> |
<a href="http://zhtlancer.com/2009/08/recent-tasks/#comments">3 条评论</a> |
Add to
<a href="http://del.icio.us/post?url=http://zhtlancer.com/2009/08/recent-tasks/&title=近期任务计划" onclick="pageTracker._trackPageview('/outgoing/del.icio.us/post?url=http_//zhtlancer.com/2009/08/recent-tasks/_title=&amp;referer=');">del.icio.us</a>
<br/>
Post tags: <a href="http://zhtlancer.com/tag/android/" rel="tag">Android</a>, <a href="http://zhtlancer.com/tag/e680/" rel="tag">E680</a>, <a href="http://zhtlancer.com/tag/linux-opensource-projects/" rel="tag">Linux</a><br/>
</small></p>]]></content:encoded>
			<wfw:commentRss>http://zhtlancer.com/2009/08/recent-tasks/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Arch Linux的makepkg工具</title>
		<link>http://zhtlancer.com/2009/07/arch-linux-makepkg-building-too/</link>
		<comments>http://zhtlancer.com/2009/07/arch-linux-makepkg-building-too/#comments</comments>
		<pubDate>Tue, 14 Jul 2009 03:05:01 +0000</pubDate>
		<dc:creator>zhtlancer</dc:creator>
				<category><![CDATA[Arch Linux]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[编译]]></category>

		<guid isPermaLink="false">http://zhtlancer.yo2.cn/?p=43292</guid>
		<description><![CDATA[使用Arch Linux近半年，实在是越来越喜欢这个轻量级的发行版，尤其是它的软件包制作以及管理机制让人感觉很是方便。基础的pacman的功能就不说了，大体和debian系的apt-get类似，功能也很强大，主要用于安装二进制包。今天主要说说Arch灵活而强大的软件包制作机制——makepkg。 makepkg是一种基于脚本的软件包制作工具，其脚本格式除了固定的区域划分格式以外，主要脚本部分以shell脚本方式执行，所以说对大多数人来说上手很方便。 makepkg基于脚本的自动化工作方式 使用makepkg制作软件包时，最核心的文件就是PKGBUILD，就是上面说的软件包制作脚本。只要我们得到一个正确的脚本，只要在脚本所在目录执行makepkg命令，它就能自动从网上或本地获取制作软件包所需的资源（如源代码或现成的二进制包），自动检查软件包依赖关系是否满足，然后进行编译/加工，得到可以直接用pacman进行安装的pkg格式软件包。需要注意的是Arch Linux的所有二进制软件包就是基于makepkg制作的。 makepkg的安装＆配置 要开始使用makepkg，先执行下列命令进行安装[code=bash]pacman -Sy base-devel [/code]然后根据你的机子配置，修改“/etc/makepkg.conf”设置，使得编译出来的软件包更加适合你的硬件配置。其中主要的配置项包括GCC的FLAG设置，可以根据你的CPU来选择一个架构相关的优化选项（如-march=core2)；包建立环境设置；软件包默认安装位置设置&#8230;不过如果你不熟悉完全可以不管它，默认设置已经可以有很不错的效果了。 makepkg的使用 然后就可以利用makepkg建立自己的软件包了。这里以AUR( ArchLinux User-community Repository,后面会介绍)上的linux-fetion客户端(一个开源的跨平台飞信客户端)为例说明makepkg的使用过程。 首先到这里下载linux-fetion的PKGBUILD脚本 在PKGBUILD脚本所在目录执行makepkg，你就能看到makepkg开始自动下载linux-fetion的源码，并开始编译，编译完成后还会自动打成PKG包 执行完毕后，如果没有出错，当前目录下应该出现了一个.pkg.tar.gz为后缀的文件，这个文件就是刚刚创建的软件包了，执行pacman -U ***.pkg.tar.gz即可安装 从上面的步骤可以看出makepkg制作软件包的过程非常简单。更重要的是，以软件包的形式进行软件安装，在很大程度上方便了后期对软件进行更新和卸载。另外，结合后面介绍的工具，你可以轻松安装＆管理大量丰富的软件。 ABS 前面提到Arch Linux中的所有软件包都是利用makepkg工具制作成pkg安装包，那么哪里能找到这些软件包的PKGBUILD脚本呢？这就要提到ABS(the Arch Build System)。ᗜABS是一个类似于BSD的ports(ports-like)的源代码级软件管理系统。利用ABS，我们可以方便地获取Arch官方提供的软件包的PKGBUILD，并根据我们自己的需要进行软件包的定制或修改，然后再利用makepkg打包为pkg软件包。所以ABS使得我们自行定制预安装软件包的过程变得更加方便，尤其在内核等核心组件方面。 安装和配置ABS 要使用ABS，先使用pacman进行安装。以root权限执行[code=bash]pacman -Syu[/code] 安装完毕后，我们先修改一下/etc/abs.conf，其中主要设置&#8221;REPOS=(core extra !community !testing)&#8221;这一项，即分别选择是否同步core,extra,community,testing软件仓库。这里根据自己需要修改的软件包所属分支，自行设置。!testing表示不同步testing软件仓库。 同步ABS的PKGBUILD脚本 上面的配置完成后，先以root权限执行[code=bash]abs[/code]执行完毕后，我们可以看到“/var/abs”目录下出现了我们所需要的PKGBUILD脚本以及一些必须的配置文件。按照官方推荐做法，我们先建立“/var/abs/local”目录，并赋予非root用户对于该目录的完全访问权限（以便于以非root用户建立软件包，以非root身份运行makepkg是一个有助于安全的好习惯）。然后我们需要定制哪个软件包时，就可以在这个local目录下进行。 举例说明吧，我需要修改transmission以打开IPV6支持，就可以这么做 先在/var/abs/local下建立一个transmission目录并进入该目录[code=bash]mkdir /var/abs/local/transmission &#38; cd /var/abs/local/transmission[/code] 将ABS提供的transmission脚本复制过来[code=bash]cp -r /var/abs/extra/transmission-gtk/* .[/code] 打开PKGBUILD脚本，先查看其源代码下载地址，从该地址手动下载源码，在本地解包，并针对IPV6进行相应修改 修改PKGBUILD脚本，使得它直接使用上一步修改过的源码进行编译，而不是从网上重新下载源码 执行makepkg，编译＆制作软件包 直接使用pacman将我们定制好的transmission更新到系统中 可以看到利用ABS配合makepkg可以非常方便的进行软件包定制。 AUR 虽然Arch Linux提供了一个很好用的软件包管理系统，但是我们使用的一些软件Arch 的官方软件仓库并没有提供，难道我们必须一个一个自己写PKGBUILD脚本吗？当然这也是一个方法，尤其对于那些牛人们来说，但是有了AUR，对于大多数人来说就有了更方便的方法。 [...]]]></description>
			<content:encoded><![CDATA[<p>使用Arch Linux近半年，实在是越来越喜欢这个轻量级的发行版，尤其是它的软件包制作以及管理机制让人感觉很是方便。基础的pacman的功能就不说了，大体和debian系的apt-get类似，功能也很强大，主要用于安装二进制包。今天主要说说Arch灵活而强大的软件包制作机制——makepkg。<br />
makepkg是一种基于脚本的软件包制作工具，其脚本格式除了固定的区域划分格式以外，主要脚本部分以shell脚本方式执行，所以说对大多数人来说上手很方便。</p>
<h3>makepkg基于脚本的自动化工作方式</h3>
<p>使用makepkg制作软件包时，最核心的文件就是PKGBUILD，就是上面说的软件包制作脚本。只要我们得到一个正确的脚本，只要在脚本所在目录执行makepkg命令，它就能自动从网上或本地获取制作软件包所需的资源（如源代码或现成的二进制包），自动检查软件包依赖关系是否满足，然后进行编译/加工，得到可以直接用pacman进行安装的pkg格式软件包。需要注意的是Arch Linux的所有二进制软件包就是基于makepkg制作的。</p>
<h3>makepkg的安装＆配置</h3>
<p>要开始使用makepkg，先执行下列命令进行安装[code=bash]pacman -Sy base-devel<br />
[/code]然后根据你的机子配置，修改“/etc/makepkg.conf”设置，使得编译出来的软件包更加适合你的硬件配置。其中主要的配置项包括GCC的FLAG设置，可以根据你的CPU来选择一个架构相关的优化选项（如-march=core2)；包建立环境设置；软件包默认安装位置设置&#8230;不过如果你不熟悉完全可以不管它，默认设置已经可以有很不错的效果了。</p>
<h3>makepkg的使用</h3>
<p>然后就可以利用makepkg建立自己的软件包了。这里以<a href="http://aur.archlinux.org/" onclick="pageTracker._trackPageview('/outgoing/aur.archlinux.org/?referer=');">AUR</a>( <a title="ArchLinux User-community Repository (AUR)" href="/index.php/ArchLinux_User-community_Repository_(AUR)">ArchLinux User-community Repository</a>,后面会介绍)上的linux-fetion客户端(一个开源的跨平台飞信客户端)为例说明makepkg的使用过程。</p>
<ol>
<li>首先到<a href="http://aur.archlinux.org/packages/linux_fetion/linux_fetion/PKGBUILD" onclick="pageTracker._trackPageview('/outgoing/aur.archlinux.org/packages/linux_fetion/linux_fetion/PKGBUILD?referer=');">这里</a>下载linux-fetion的PKGBUILD脚本</li>
<li>在PKGBUILD脚本所在目录执行makepkg，你就能看到makepkg开始自动下载linux-fetion的源码，并开始编译，编译完成后还会自动打成PKG包</li>
<li>执行完毕后，如果没有出错，当前目录下应该出现了一个.pkg.tar.gz为后缀的文件，这个文件就是刚刚创建的软件包了，执行pacman -U ***.pkg.tar.gz即可安装</li>
</ol>
<p>从上面的步骤可以看出makepkg制作软件包的过程非常简单。更重要的是，以软件包的形式进行软件安装，在很大程度上方便了后期对软件进行更新和卸载。另外，结合后面介绍的工具，你可以轻松安装＆管理大量丰富的软件。</p>
<h2>ABS</h2>
<p>前面提到Arch Linux中的所有软件包都是利用makepkg工具制作成pkg安装包，那么哪里能找到这些软件包的PKGBUILD脚本呢？这就要提到ABS(the Arch Build System)。ᗜABS是一个类似于BSD的ports(ports-like)的源代码级软件管理系统。利用ABS，我们可以方便地获取Arch官方提供的软件包的PKGBUILD，并根据我们自己的需要进行软件包的定制或修改，然后再利用makepkg打包为pkg软件包。所以ABS使得我们自行定制预安装软件包的过程变得更加方便，尤其在内核等核心组件方面。</p>
<h3>安装和配置ABS</h3>
<p>要使用ABS，先使用pacman进行安装。以root权限执行[code=bash]pacman -Syu[/code]</p>
<p>安装完毕后，我们先修改一下/etc/abs.conf，其中主要设置&#8221;REPOS=(core extra !community !testing)&#8221;这一项，即分别选择是否同步core,extra,community,testing软件仓库。这里根据自己需要修改的软件包所属分支，自行设置。!testing表示不同步testing软件仓库。</p>
<h3>同步ABS的PKGBUILD脚本</h3>
<p>上面的配置完成后，先以root权限执行[code=bash]abs[/code]执行完毕后，我们可以看到“/var/abs”目录下出现了我们所需要的PKGBUILD脚本以及一些必须的配置文件。按照官方推荐做法，我们先建立“/var/abs/local”目录，并赋予非root用户对于该目录的完全访问权限（以便于以非root用户建立软件包，以非root身份运行makepkg是一个有助于安全的好习惯）。然后我们需要定制哪个软件包时，就可以在这个local目录下进行。</p>
<p>举例说明吧，我需要修改transmission以打开IPV6支持，就可以这么做</p>
<ol>
<li>先在/var/abs/local下建立一个transmission目录并进入该目录[code=bash]mkdir /var/abs/local/transmission &amp; cd /var/abs/local/transmission[/code]</li>
<li>将ABS提供的transmission脚本复制过来[code=bash]cp -r /var/abs/extra/transmission-gtk/* .[/code]</li>
<li>打开PKGBUILD脚本，先查看其源代码下载地址，从该地址手动下载源码，在本地解包，并针对IPV6进行相应修改</li>
<li>修改PKGBUILD脚本，使得它直接使用上一步修改过的源码进行编译，而不是从网上重新下载源码</li>
<li>执行makepkg，编译＆制作软件包</li>
<li>直接使用pacman将我们定制好的transmission更新到系统中</li>
</ol>
<p>可以看到利用ABS配合makepkg可以非常方便的进行软件包定制。</p>
<h2>AUR</h2>
<p>虽然Arch Linux提供了一个很好用的软件包管理系统，但是我们使用的一些软件Arch 的官方软件仓库并没有提供，难道我们必须一个一个自己写PKGBUILD脚本吗？当然这也是一个方法，尤其对于那些牛人们来说，但是有了AUR，对于大多数人来说就有了更方便的方法。</p>
<p>AUR（the Arch User-Community Repository）是一个由用户社区自行维护的庞大的软件仓库，常用的软件基本都可以在这里找到相应的PKGBUILD脚本，方便地建立软件包，进行安装。其最大的特点就是开发性，你可以将自己写的某个软件包的PKGBUILD脚本上传，与他人共享，而他人对此脚本有什么意见，都可以直接向你提出，或提醒你脚本已过期等等。比如我上面举例提到的linux-fetion，就是利用AUR提供的PKGBUILD脚本。</p>
<address>AUR的站点是<a href="http://aur.archlinux.org/" onclick="pageTracker._trackPageview('/outgoing/aur.archlinux.org/?referer=');">http://aur.archlinux.org/</a>,你现在就可以根据自己需要去下载需要的PKGBUILD脚本，构建需要的软件包了。不过你也可以忍耐一下，看完下面对yaourt工具的介绍，你就可以用yaourt这一强大工具让这一过程更加自动化。</address>
<h3>Yaourt</h3>
<p>yaourt(<strong>Y</strong>et <strong>A</strong>n<strong>O</strong>ther <strong>U</strong>ser <strong>R</strong>epository <strong>T</strong>ool)是一位大牛写的Arch软件包管理工具，提供了对pacman的封装，但最主要的功能就是使得从AUR构建软件包更加方便。</p>
<p>首先从<a href="http://aur.archlinux.org/packages/yaourt/yaourt/PKGBUILD" onclick="pageTracker._trackPageview('/outgoing/aur.archlinux.org/packages/yaourt/yaourt/PKGBUILD?referer=');">这里</a>下载yaourt的PKGBUILD脚本，按照一般的makepkg方法安装该软件包。</p>
<p>安装完成后，试试执行[code=bash]yaourt fetion[code]我们可以看到yaourt自动从AUR上搜索fetion关键字，找到相应Repo信息。我们可以按序号选择一个，yaourt就会自动下载PKGBUILD脚本，并提示你做需要的修改之后，即可自动构建、安装软件包。安装完成还会自动对软件包进行投票。总之，功能非常强大，你可以自己去探索探索。</p>
<h3>参考来源</h3>
<p><a href="http://wiki.archlinux.org/" onclick="pageTracker._trackPageview('/outgoing/wiki.archlinux.org/?referer=');">Arch Wiki</a>:</p>
<p><a href="http://wiki.archlinux.org/index.php/Makepkg" onclick="pageTracker._trackPageview('/outgoing/wiki.archlinux.org/index.php/Makepkg?referer=');">http://wiki.archlinux.org/index.php/Makepkg</a></p>
<p><a href="http://wiki.archlinux.org/index.php/ABS" onclick="pageTracker._trackPageview('/outgoing/wiki.archlinux.org/index.php/ABS?referer=');">http://wiki.archlinux.org/index.php/ABS</a></p>
<p><a href="http://wiki.archlinux.org/index.php/AUR" onclick="pageTracker._trackPageview('/outgoing/wiki.archlinux.org/index.php/AUR?referer=');">http://wiki.archlinux.org/index.php/AUR</a></p>
<p><a href="http://aur.archlinux.org/" onclick="pageTracker._trackPageview('/outgoing/aur.archlinux.org/?referer=');">AUR</a></p>
<hr />
<p><small>© zhtlancer for <a href="http://zhtlancer.com">zhtlancer&#039;s blog</a>, 2009. |
<a href="http://zhtlancer.com/2009/07/arch-linux-makepkg-building-too/">Permalink</a> |
<a href="http://zhtlancer.com/2009/07/arch-linux-makepkg-building-too/#comments">暂无评论</a> |
Add to
<a href="http://del.icio.us/post?url=http://zhtlancer.com/2009/07/arch-linux-makepkg-building-too/&title=Arch Linux的makepkg工具" onclick="pageTracker._trackPageview('/outgoing/del.icio.us/post?url=http_//zhtlancer.com/2009/07/arch-linux-makepkg-building-too/_title=Arch_Linux_makepkg&amp;referer=');">del.icio.us</a>
<br/>
Post tags: <a href="http://zhtlancer.com/tag/arch-linux/" rel="tag">Arch Linux</a>, <a href="http://zhtlancer.com/tag/linux-opensource-projects/" rel="tag">Linux</a>, <a href="http://zhtlancer.com/tag/%e7%bc%96%e8%af%91/" rel="tag">编译</a><br/>
</small></p>]]></content:encoded>
			<wfw:commentRss>http://zhtlancer.com/2009/07/arch-linux-makepkg-building-too/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>开启Chromium for Linux的flash插件支持</title>
		<link>http://zhtlancer.com/2009/07/chromium-for-linux-with-flash-plugin/</link>
		<comments>http://zhtlancer.com/2009/07/chromium-for-linux-with-flash-plugin/#comments</comments>
		<pubDate>Sat, 11 Jul 2009 12:27:43 +0000</pubDate>
		<dc:creator>zhtlancer</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[chromium]]></category>
		<category><![CDATA[flash]]></category>

		<guid isPermaLink="false">http://zhtlancer.yo2.cn/?p=43247</guid>
		<description><![CDATA[Chromium for Linux最近的开发进度相当快，很多方面都日趋完善，比如GTK原生主题支持，输入法支持，设置选项的完善等等。而前两天，更是进一步提供了对插件的支持，最主要的当然是flash了。 但是我按网上提供的说明，在/usr/lib/chromium-browser/plugins目录下建立flash插件的符号链接并没有起作用。后来我试着在chromium的安装目录下建立plugins目录，并建立符号链接，终于搞定了！ 所以对于按网上说明没有成功开启的情况，不妨试试这个方法。 先找到chromium的安装目录(此目录中应包含locales,resources,themes等目录) 如果此目录中没有plugins目录，则手动建立(注意权限)[code=bash]mkdir plugins[/code]，然后进入plugins文件夹[code]cd plugins[/code] 建立flash插件的符号链接，可以firefox等浏览器那里链过来，比如从firefox那里链的话，执行[code=bash]ln -s /usr/lib/mozilla/plugins/libflashplayer.so libflashplayer.so[/code] 重启chromium，先在地址栏输入about:plugins查看flash插件工作状态，正常的话就可以去看flash啦 效果如下图： 不过毕竟还在开发过程中，现在的flash支持问题很多，已知在某些情况下只有声音没有图像，并且我在试用中出现chrome进程僵死，只能手动kill chrome进程，另外可能会导致chromium的CPU占用率陡升（这其实是linux下flash的通病了-_-&#124;&#124;&#124;）。 Any way，近来chromium for linux的进步是大家有目共暏的，相信将chromium作为主浏览器的日子不会太远了～ © zhtlancer for zhtlancer&#039;s blog, 2009. &#124; Permalink &#124; 暂无评论 &#124; Add to del.icio.us Post tags: chromium, flash, Linux]]></description>
			<content:encoded><![CDATA[<p>Chromium for Linux最近的开发进度相当快，很多方面都日趋完善，比如GTK原生主题支持，输入法支持，设置选项的完善等等。而前两天，更是进一步提供了对插件的支持，最主要的当然是flash了。</p>
<p>但是我按网上提供的说明，在/usr/lib/chromium-browser/plugins目录下建立flash插件的符号链接并没有起作用。后来我试着在chromium的安装目录下建立plugins目录，并建立符号链接，终于搞定了！</p>
<p>所以对于按网上说明没有成功开启的情况，不妨试试这个方法。</p>
<ol>
<li>先找到chromium的安装目录(此目录中应包含locales,resources,themes等目录)</li>
<li>如果此目录中没有plugins目录，则手动建立(注意权限)[code=bash]mkdir plugins[/code]，然后进入plugins文件夹[code]cd plugins[/code]</li>
<li>建立flash插件的符号链接，可以firefox等浏览器那里链过来，比如从firefox那里链的话，执行[code=bash]ln -s /usr/lib/mozilla/plugins/libflashplayer.so libflashplayer.so[/code]</li>
<li>重启chromium，先在地址栏输入about:plugins查看flash插件工作状态，正常的话就可以去看flash啦</li>
</ol>
<p>效果如下图：</p>
<p style="text-align: center;">
<p>不过毕竟还在开发过程中，现在的flash支持问题很多，已知在某些情况下只有声音没有图像，并且我在试用中出现chrome进程僵死，只能手动kill chrome进程，另外可能会导致chromium的CPU占用率陡升（这其实是linux下flash的通病了-_-|||）。</p>
<p>Any way，近来chromium for linux的进步是大家有目共暏的，相信将chromium作为主浏览器的日子不会太远了～</p>
<hr />
<p><small>© zhtlancer for <a href="http://zhtlancer.com">zhtlancer&#039;s blog</a>, 2009. |
<a href="http://zhtlancer.com/2009/07/chromium-for-linux-with-flash-plugin/">Permalink</a> |
<a href="http://zhtlancer.com/2009/07/chromium-for-linux-with-flash-plugin/#comments">暂无评论</a> |
Add to
<a href="http://del.icio.us/post?url=http://zhtlancer.com/2009/07/chromium-for-linux-with-flash-plugin/&title=开启Chromium for Linux的flash插件支持" onclick="pageTracker._trackPageview('/outgoing/del.icio.us/post?url=http_//zhtlancer.com/2009/07/chromium-for-linux-with-flash-plugin/_title=_Chromium_for_Linux_flash&amp;referer=');">del.icio.us</a>
<br/>
Post tags: <a href="http://zhtlancer.com/tag/chromium/" rel="tag">chromium</a>, <a href="http://zhtlancer.com/tag/flash/" rel="tag">flash</a>, <a href="http://zhtlancer.com/tag/linux-opensource-projects/" rel="tag">Linux</a><br/>
</small></p>]]></content:encoded>
			<wfw:commentRss>http://zhtlancer.com/2009/07/chromium-for-linux-with-flash-plugin/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

