﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>C++博客-路的尽头-文章分类-linux</title><link>http://www.cppblog.com/tangxinfa/category/16782.html</link><description>开发者之旅</description><language>zh-cn</language><lastBuildDate>Sat, 26 May 2012 00:41:15 GMT</lastBuildDate><pubDate>Sat, 26 May 2012 00:41:15 GMT</pubDate><ttl>60</ttl><item><title>Archlinux使用记录</title><link>http://www.cppblog.com/tangxinfa/articles/archlinux_tips.html</link><dc:creator>唐新发</dc:creator><author>唐新发</author><pubDate>Thu, 17 Nov 2011 12:16:00 GMT</pubDate><guid>http://www.cppblog.com/tangxinfa/articles/archlinux_tips.html</guid><wfw:comment>http://www.cppblog.com/tangxinfa/comments/160367.html</wfw:comment><comments>http://www.cppblog.com/tangxinfa/articles/archlinux_tips.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/tangxinfa/comments/commentRss/160367.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/tangxinfa/services/trackbacks/160367.html</trackback:ping><description><![CDATA[
		<font face="Arial" size="2">1，yaourt -Syua出错：<a href="https://bbs.archlinux.org/viewtopic.php?id=67729"><strong></strong></a><a href="https://bbs.archlinux.org/viewtopic.php?id=67729"><strong>Pacman is currently in use, please wait</strong></a><br />   执行rm /var/lib/pacman/db.lck即可。<br />2，执行yaourt -Syua出错：<br /></font>
		<div style="background-color:#eeeeee;font-size:13px;BORDER:1px solid #CCCCCC;PADDING-RIGHT: 5px;PADDING-BOTTOM: 4px;PADDING-left: 4px;PADDING-TOP: 4px;WIDTH: 98%;word-break:break-all">
				<!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br>http://www.CodeHighlighter.com/<br><br>-->
				<font face="Arial" size="2">
						<span style="color: #000000; ">:: The following packages should be upgraded first :<br />    pacman<br />:: Do you want to cancel the current operation<br />:: and upgrade these packages now</span>
						<span style="color: #000000; ">?</span>
						<span style="color: #000000; "> [Y</span>
						<span style="color: #000000; ">/</span>
						<span style="color: #000000; ">n] y<br /><br />resolving dependencies<img src="http://www.cppblog.com/images/dot.gif" /><br />looking </span>
						<span style="color: #0000FF; ">for</span>
						<span style="color: #000000; "> inter</span>
						<span style="color: #000000; ">-</span>
						<span style="color: #000000; ">conflicts<img src="http://www.cppblog.com/images/dot.gif" /><br />error: failed to prepare transaction (could not satisfy dependencies)<br />:: package</span>
						<span style="color: #000000; ">-</span>
						<span style="color: #000000; ">query: requires pacman</span>
						<span style="color: #000000; ">&lt;</span>
						<span style="color: #000000; ">3.6</span>
				</font>
		</div>
		<font face="Arial" size="2">原因在于pacman4.0与yaourt冲突：<br /></font>
		<div style="background-color:#eeeeee;font-size:13px;BORDER:1px solid #CCCCCC;PADDING-RIGHT: 5px;PADDING-BOTTOM: 4px;PADDING-left: 4px;PADDING-TOP: 4px;WIDTH: 98%;word-break:break-all">
				<!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br>http://www.CodeHighlighter.com/<br><br>-->
				<font face="Arial" size="2">
						<span style="color: #000000; ">sudo pacman </span>
						<span style="color: #000000; ">--</span>
						<span style="color: #000000; ">remove yaourt<br />sudo pacman</span>
						<span style="color: #000000; ">-</span>
						<span style="color: #000000; ">key </span>
						<span style="color: #000000; ">--</span>
						<span style="color: #000000; ">init<br />sudo pacman </span>
						<span style="color: #000000; ">-</span>
						<span style="color: #000000; ">S yaourt</span>
				</font>
		</div>
		<font face="Arial" size="2">再试就ＯＫ了。<br />3，无线上网设置<br />3.1，安装<br />sudo pppoe-setup按正常流程安装，通常dns项填server即可，表示自动从服务器获取dns信息。<br />3.2，解决频繁掉线的问题<br />编辑/etc/ppp/options将lcp-echo-interval及lcp-echo-failure改大一些，如都改为30。<br />/etc/ppp/pppoe.conf中的LCP_INTERVAL、LCP_FAILURE也要像上面这样设置。<br />3.3，启动<br />sudo pppoe-start<br />3.4，故障解决<br />如果还无法上网，则查看一下路由<br />sudo route<br />如果看到最前面是0.0.0.0  .....  eth0则表示系统默认路由不对。<br />查看tail /var/log/errors.log<br />可以看到类似这样的日志pppd[3046]: not replacing existing default route via 192.168.1.1，<br /></font>
		<font face="Arial" size="2">创建脚本<code>/etc/ppp/ip-pre-up，内容如下：<br />#!/bin/sh<br />/sbin/route del default<br />设置脚本为可执行chmod a+x </code><code>/etc/ppp/ip-pre-up。<br />重启<br /></code><code>sudo pppoe-stop<br /></code></font>
		<font face="Arial" size="2">
				<code>sudo pppoe-start<br />现在应该可以上网了。<br />3.5，开机自动拨号上网<br />编辑/etc/rc.conf在DAEMONS中加入@adsl<br />4，解决firefox上网慢<br />经观察状态栏长时间looking up....<br />4.1，在firefox中禁用ipv6即可<br /></code>地址栏输入about:config, 然后network.dns.disableIPV6:true
<br />另外建议network.http.pipelining: true</font>
		<br />
<img src ="http://www.cppblog.com/tangxinfa/aggbug/160367.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/tangxinfa/" target="_blank">唐新发</a> 2011-11-17 20:16 <a href="http://www.cppblog.com/tangxinfa/articles/archlinux_tips.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>搭建jabber服务器</title><link>http://www.cppblog.com/tangxinfa/articles/jabber_tips.html</link><dc:creator>唐新发</dc:creator><author>唐新发</author><pubDate>Tue, 03 May 2011 16:32:00 GMT</pubDate><guid>http://www.cppblog.com/tangxinfa/articles/jabber_tips.html</guid><wfw:comment>http://www.cppblog.com/tangxinfa/comments/145549.html</wfw:comment><comments>http://www.cppblog.com/tangxinfa/articles/jabber_tips.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.cppblog.com/tangxinfa/comments/commentRss/145549.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/tangxinfa/services/trackbacks/145549.html</trackback:ping><description><![CDATA[
		<trustdb>
				<stream:stream to="localhost" xmlns="jabber:client" xmlns:stream="http://etherx.jabber.org/streams">
						<presence>
								<message to="jack@localhost">* 编译安装<br />$ wget http://download.jabberd.org/jabberd14/jabberd14-1.6.1.1.tar.gz<br />$ tar xzvf jabberd14-1.6.1.1.tar.gz<br />$ cd jabberd14-1.6.1.1<br />修改代码以通过编译:<br />diff -r jabberd14-1.6.1.1/jabberd/lib/xmlnode.cc tmp/jabberd14-1.6.1.1/jabberd/lib/xmlnode.cc<br />882,884c882,884<br />&lt;     const char *next_step = NULL;<br />&lt;     const char *start_predicate = NULL;<br />&lt;     const char *end_predicate = NULL;<br />---<br />&gt;     char *next_step = NULL;<br />&gt;     char *start_predicate = NULL;<br />&gt;     char *end_predicate = NULL;<br />1836c1836<br />&lt;         ((char*)strchr(lang, '-'))[0] = 0;<br />---<br />&gt;         strchr(lang, '-')[0] = 0;<br />diff -r jabberd14-1.6.1.1/jabberd/log.cc tmp/jabberd14-1.6.1.1/jabberd/log.cc<br />89c89<br />&lt;         pos = (char*)strchr(zone,'.');<br />---<br />&gt;     pos = strchr(zone,'.');<br />diff -r jabberd14-1.6.1.1/jabberd/mio_tls.cc tmp/jabberd14-1.6.1.1/jabberd/mio_tls.cc<br />615c615<br />&lt;         ret = gnutls_certificate_set_openpgp_key_file(current_credentials, pubfile, privfile, GNUTLS_OPENPGP_FMT_BASE64);<br />---<br />&gt;         ret = gnutls_certificate_set_openpgp_key_file(current_credentials, pubfile, privfile);<br />634c634<br />&lt;         ret = gnutls_certificate_set_openpgp_keyring_file(current_credentials, file, GNUTLS_OPENPGP_FMT_BASE64);<br />---<br />&gt;         ret = gnutls_certificate_set_openpgp_keyring_file(current_credentials, file);<br />640a641,657<br />&gt;     }<br />&gt; <br />&gt;     // load GnuPG trustdb<br />&gt;     if (j_strcmp(xmlnode_get_localname(cur), "trustdb") == 0) {<br />&gt;         char const *const file = xmlnode_get_data(cur);<br />&gt; <br />&gt;         if (file == NULL) {<br />&gt;         log_warn(NULL, "Initializing TLS subsystem: &lt;trustdb/&gt; element inside the TLS configuration, that does not contain a file-name.");<br />&gt;         continue;<br />&gt;         }<br />&gt; <br />&gt;         // load the GnuPG trustdb<br />&gt;         ret = gnutls_certificate_set_openpgp_trustdb(current_credentials, file);<br />&gt;         if (ret &lt; 0) {<br />&gt;         log_error(NULL, "Error loading GnuPG trustdb %s: %s", file, gnutls_strerror(ret));<br />&gt;         continue;<br />&gt;         }<br />$ ./configure &amp;&amp; make &amp;&amp; sudo make install  # 需要用新立得安装提示缺少的库<br /><br />* 配置<br />** 按照mysql.sql中的注释配置数据库：<br />$ mysql -uroot -p<br />mysql&gt; CREATE DATABASE jabber CHARACTER SET utf8;<br />mysql&gt; use jabber;<br />mysql&gt; grant all on jabber.* to jabber@localhost identified by 'secret'; <br />mysql&gt; \. mysql.sql<br /><br />* 运行<br />sudo jabberd -h localhost -B<br /><br />* 注册用户1<br />telnet localhost 5222<br />&lt;stream:stream<br />  to='localhost'<br />  xmlns='jabber:client'<br />  xmlns:stream='http://etherx.jabber.org/streams'&gt;<br /><br />&lt;iq id='reg1' type='set'&gt;<br />  &lt;query xmlns='jabber:iq:register'&gt;<br />    &lt;username&gt;jack&lt;/username&gt;<br />    &lt;password&gt;jack&lt;/password&gt;<br />    &lt;name&gt;jack&lt;/name&gt;<br />    &lt;email&gt;&lt;/email&gt;<br />  &lt;/query&gt;<br />&lt;/iq&gt;<br /><br />&lt;/stream:stream&gt;<br /><br />* 登录用户1<br />Empathy菜单-&gt;编辑-&gt;帐户-&gt;添加：<br />协议: Jabber<br />登录ID: jack@localhost<br />记住密码<br />密码: jack<br />登录<br /><br />* 注册用户2<br />telnet localhost 5222<br />&lt;stream:stream<br />  to='localhost'<br />  xmlns='jabber:client'<br />  xmlns:stream='http://etherx.jabber.org/streams'&gt;<br /><br />&lt;iq id='reg1' type='set'&gt;<br />  &lt;query xmlns='jabber:iq:register'&gt;<br />    &lt;username&gt;rose&lt;/username&gt;<br />    &lt;password&gt;rose&lt;/password&gt;<br />    &lt;name&gt;rose&lt;/name&gt;<br />    &lt;email&gt;&lt;/email&gt;<br />  &lt;/query&gt;<br />&lt;/iq&gt;<br /><br />&lt;/stream:stream&gt;<br /><br />* 用户1加用户2为联系人<br />Empathy菜单-&gt;聊天-&gt;添加联系人:<br />帐户：jack@localhost<br />标识符: rose@localhost<br />添加<br /><br />* 登录用户2，并发一个消息给用户1<br />telnet localhost 5222<br />&lt;stream:stream<br />  to='localhost'<br />  xmlns='jabber:client'<br />  xmlns:stream='http://etherx.jabber.org/streams'&gt;<br /><br />&lt;iq id='auth1' type='set'&gt;<br />  &lt;query xmlns='jabber:iq:auth'&gt;<br />    &lt;username&gt;rose&lt;/username&gt;<br />    &lt;password&gt;rose&lt;/password&gt;<br />    &lt;resource&gt;test&lt;/resource&gt;<br />  &lt;/query&gt;<br />&lt;/iq&gt;<br /><br />&lt;presence/&gt;<br /><br />&lt;message to='jack@localhost'&gt;<br />  &lt;body&gt;hello, jack&lt;/body&gt;<br />&lt;/message&gt;<br /><br />&lt;/stream:stream&gt;<br /></message>
						</presence>
				</stream:stream>
		</trustdb>
<img src ="http://www.cppblog.com/tangxinfa/aggbug/145549.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/tangxinfa/" target="_blank">唐新发</a> 2011-05-04 00:32 <a href="http://www.cppblog.com/tangxinfa/articles/jabber_tips.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>linux using tips</title><link>http://www.cppblog.com/tangxinfa/articles/linux_using_tips.html</link><dc:creator>唐新发</dc:creator><author>唐新发</author><pubDate>Fri, 03 Sep 2010 07:45:00 GMT</pubDate><guid>http://www.cppblog.com/tangxinfa/articles/linux_using_tips.html</guid><wfw:comment>http://www.cppblog.com/tangxinfa/comments/125797.html</wfw:comment><comments>http://www.cppblog.com/tangxinfa/articles/linux_using_tips.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/tangxinfa/comments/commentRss/125797.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/tangxinfa/services/trackbacks/125797.html</trackback:ping><description><![CDATA[1, top10k统计<br />grep -a AAAA *.log | awk '{if($12=1234) {print $4}}' | sort | uniq -c | sort -nr | head -10000 &gt; ./top10k<br /><br />2, shell下自动完成历史命令<br />Ctrl+r<br /><br />3, tcpdump抓包<br />tcpdump -i eth1 tcp port &lt;端口号&gt; and host &lt;ip地址&gt; -XX -tttt -nnnn -s 0<br /><br />4, 不影响程序运行的情况下产生core文件<br />gcore pid<br /><br />5，测两台机器间的网速<br />5.1，未精确验证）<br />机器1执行：<br />nc -k -l 7777 &gt; /dev/null<br />机器2执行：<br />time dd if=/dev/zero bs=1024 count=1024000 | nc 机器1 7777<br />5.2，精确<br />vnstat -i eth0 -tr<br /><br />6，windows下的zip中包含中文文件名或目录名时，解压后乱码<br />先按windows下的gbk编码解压：<br />LANG=zh_CN.GBK 7za x windows_file.zip<br />再转换文件名为linux下的utf-8编码：<br /><font style="color: #000000;" color="#999999">convmv -r -f cp936 -t utf8 --notest --nosmart *</font><br /><br />7，ubuntu下进入root shell：<br />sudo -s<br /><br />8，开启关闭某个端口上的网络通信<br />iptables -I &lt;INPUT|OUTPUT&gt; -i eth0 -p &lt;tcp|udp...&gt; --dport &lt;端口号&gt; -j &lt;ACCEPT|DROP&gt;<br /><br />9，命令输入多行文本<br />cat [&gt; file] &lt;&lt;EOF<br />EOF<br /><br />10，替换文件中的内容<br />sed -in-place -e 's/old/new/g' test.txt<br /><br />11，crontab命令执行失败<br />首先是crontab执行时的环境变量设置得比较少，确保命令不依赖环境变量；<br />其次如果命令里用到了百分号，需要转义：`date --date="3 days ago" "+\%Y\%m\%d"`<br /><img src ="http://www.cppblog.com/tangxinfa/aggbug/125797.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/tangxinfa/" target="_blank">唐新发</a> 2010-09-03 15:45 <a href="http://www.cppblog.com/tangxinfa/articles/linux_using_tips.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>ubuntu使用记录</title><link>http://www.cppblog.com/tangxinfa/articles/83226.html</link><dc:creator>唐新发</dc:creator><author>唐新发</author><pubDate>Sun, 17 May 2009 15:26:00 GMT</pubDate><guid>http://www.cppblog.com/tangxinfa/articles/83226.html</guid><wfw:comment>http://www.cppblog.com/tangxinfa/comments/83226.html</wfw:comment><comments>http://www.cppblog.com/tangxinfa/articles/83226.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/tangxinfa/comments/commentRss/83226.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/tangxinfa/services/trackbacks/83226.html</trackback:ping><description><![CDATA[Q, 怎么让它默认为经典的文本模式启动。<br />A, 修改/etc/default/grub<br />   GRUB_CMDLINE_LINUX_DEFAULT="quiet splash" 改为 GRUB_CMDLINE_LINUX_DEFAULT="text"<br />  
<strong>sudo update-grub</strong><br />    好了重启一下，看看效果，很怀旧吧。<br /><br />Q，虚拟机连网最佳方案<br />A，设置网卡1为Host-Only方式，这样模拟出了一个内部局域网，Host与Guests之间互通，适于做实验。<br />　  设置网卡2为NAT方式，方便访问互联网。<br /><br />Q，firefox打开网页很慢，状态栏上长时间显示Looking up ...<br />A，禁用firefox的ipv6。地址栏上输入about:config，过滤栏中输入ipv6，显示记录的Value值改为true。<br /><br />软件选择<br />_____类型__________软件___________理由__________________________________<br />chm查看程序　　xchm 　　支持页面的查找功能<br />    <br />Q，手工安装nvidia驱动时显示：Unable to load the kernel module 'nvidia.ko'<br />A，主要是启动时使用的内核与安装的头文件包不匹配（可能表面名称是一样的），启动时选个旧一点的内核。<br />　　禁用系统自带的显卡驱动：在文件/etc/modprobe.d/blacklist.conf 后添加两行：<br />　　blacklist nouveau<br />　　blacklist vga16fb<br />Ｑ，配置语音朗读<br />A ，参照<a title="文章" href="http://www.chrisspen.com/blog/how-to-install-mbrola-voices-for-use-with-festival-on-ubuntu.html">文章</a>安装mbrola，建议<span style="color: #007800;">VOICE</span>=us1<br />　　~/.festivalrc中加上：(set! voice_default 'voice_us1_mbrola)<br />　　如果adobe reader中的朗读选项被禁用，则尝试重装adobe reader，并安装附加的GNOME text-to-speech library。<br />Q，Ibus中文输入法不能用<br />A，系统菜单-&gt;System-&gt;Administration-&gt;Language Support-&gt;Keyboard input method system: ibus<br />　　emacs里Ctrl+space无法激活输入法:　~/.bashrc中添加LANG=zh_CN.UTF-8或LC_ALL=zh_CN.UTF-8<br />Q，添加开机启动项<br />A，运行gnome-session-properties<br />Q，更新系统时提示/boot空间不足<br />A，命令行uname -r确定内核版本，打开新立得软件包管理器搜索linux-image，将旧版本的内核选中删除，以腾出空间。<br /><img src ="http://www.cppblog.com/tangxinfa/aggbug/83226.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/tangxinfa/" target="_blank">唐新发</a> 2009-05-17 23:26 <a href="http://www.cppblog.com/tangxinfa/articles/83226.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>在linux下踢出用户</title><link>http://www.cppblog.com/tangxinfa/articles/44383.html</link><dc:creator>唐新发</dc:creator><author>唐新发</author><pubDate>Thu, 13 Mar 2008 08:53:00 GMT</pubDate><guid>http://www.cppblog.com/tangxinfa/articles/44383.html</guid><wfw:comment>http://www.cppblog.com/tangxinfa/comments/44383.html</wfw:comment><comments>http://www.cppblog.com/tangxinfa/articles/44383.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/tangxinfa/comments/commentRss/44383.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/tangxinfa/services/trackbacks/44383.html</trackback:ping><description><![CDATA[远程登录linux系统后，因为网络不稳定意外断开了连接，但重新登录上去后，发现之前的登录还在，运行的程序也还在跑却无法再控制，因此需要踢出上次登录的tty，在文章<a href="http://www.cyberciti.biz/tips/howto-linux-kill-and-logout-users.html">Howto: Linux kill and logout users</a>找到了方法：<br />先用“who ”命令查出对应的tty名称，再执行“skill -KILL tty名称”就成了。<br />不过不知道有没有办法重新以意外断开的tty登录，这样以前的程序还能够正常使用。<br /><img src ="http://www.cppblog.com/tangxinfa/aggbug/44383.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/tangxinfa/" target="_blank">唐新发</a> 2008-03-13 16:53 <a href="http://www.cppblog.com/tangxinfa/articles/44383.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>