<?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>days of linnchord &#187; linux</title>
	<atom:link href="http://linnchord.net/archives/tag/linux/feed" rel="self" type="application/rss+xml" />
	<link>http://linnchord.net</link>
	<description>南台静坐 : : :</description>
	<lastBuildDate>Thu, 03 Nov 2011 02:22:39 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>ubuntu下安装最新nginx+uWSGI</title>
		<link>http://linnchord.net/archives/785.html</link>
		<comments>http://linnchord.net/archives/785.html#comments</comments>
		<pubDate>Tue, 09 Aug 2011 15:14:37 +0000</pubDate>
		<dc:creator>linnchord</dc:creator>
				<category><![CDATA[linux]]></category>
		<category><![CDATA[python]]></category>
		<category><![CDATA[nginx]]></category>

		<guid isPermaLink="false">http://linnchord.me/?p=785</guid>
		<description><![CDATA[先通过apt-get remove删除系统下原有nginx，再添加源安装 sudo apt-get install python-software-properties sudo add-apt-repository ppa:nginx/stable sudo add-apt-repository ppa:uwsgi/release sudo apt-get update sudo apt-get install uwsgi nginx 过程中遇到问题，最后install无法完成，报错 dpkg: warning: files list file for package `nginx-common' missing, assuming package has no files currently installed. dpkg: warning: files list file for package `nginx-full' missing, assuming package has no files currently installed. 在网上查了很久，没有完全的解决方案，最后通过如下方式解决 sudo [...]]]></description>
			<content:encoded><![CDATA[<p>先通过apt-get remove删除系统下原有nginx，再添加源安装</p>
<pre class="brush:bash">
sudo apt-get install python-software-properties
sudo add-apt-repository ppa:nginx/stable
sudo add-apt-repository ppa:uwsgi/release
sudo apt-get update
sudo apt-get install uwsgi nginx
</pre>
<p>过程中遇到问题，最后install无法完成，报错</p>
<pre class="brush:bash">
dpkg: warning: files list file for package `nginx-common' missing, assuming package has no files currently installed.
dpkg: warning: files list file for package `nginx-full' missing, assuming package has no files currently installed.
</pre>
<p>在网上查了很久，没有完全的解决方案，最后通过如下方式解决</p>
<pre class="brush:bash">
sudo find / | grep nginx
</pre>
<p>查找系统所有的nginx残留文件并手动删除，然后运行</p>
<pre class="brush:bash">
sudo apt-get clean
sudo apt-get update
sudo apt-get upgrade
sudo apt-get install nginx  --reinstall
</pre>
<p>ok，nginx成功更新。</p>
<p>更新：2011-09-17</p>
<p>没两天，uwsgi的默认安装部署发生了变化，改了个名字，需要如下安装</p>
<pre class="brush:bash">
sudo apt-get install uwsgi-python
</pre>
<p>安装后各路径</p>
<pre class="brush:bash">
sudo /etc/init.d/uwsgi-python restart
/var/log/uwsgi-python/uwsgi.log
/etc/uwsgi-python/apps-available/uwsgi.xml #默认配置文件
/etc/default/uwsgi-python #默认命令行启动参数设置
</pre>
<p>我的参数配置如下</p>
<pre class="brush:xml">
<uwsgi>
	<master></master>
	<vhost></vhost>
	<memory-report></memory-report>
	<no-site></no-site>
</uwsgi>
</pre>
<p>/etc/default/uwsgi-python</p>
<pre class="brush:bash">
DAEMON_OPTS=" \
  --master \
  --no-orphans \
  --processes 2 \
  --logdate \
  --chmod-socket=666 \
  --uid www-data \
  --gid www-data \
  --limit-as 256 \
  --harakiri 60 \
  --max-requests 1000 \
"
</pre>
<p>具体参数含义可参考 <a href="http://projects.unbit.it/uwsgi/wiki/Doc" target="_blank">http://projects.unbit.it/uwsgi/wiki/Doc</a></p>
]]></content:encoded>
			<wfw:commentRss>http://linnchord.net/archives/785.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>clean &amp; auto save default grub boot of ubuntu</title>
		<link>http://linnchord.net/archives/776.html</link>
		<comments>http://linnchord.net/archives/776.html#comments</comments>
		<pubDate>Mon, 21 Mar 2011 01:44:04 +0000</pubDate>
		<dc:creator>linnchord</dc:creator>
				<category><![CDATA[linux]]></category>
		<category><![CDATA[工具]]></category>
		<category><![CDATA[grub]]></category>

		<guid isPermaLink="false">http://linnchord.net/?p=776</guid>
		<description><![CDATA[ubuntu用了一段时间，更新了好几个版本，引导菜单拉的老长，需要清理一下。 删除多余的引导项很简单 cd /boot/grub sudo rm -i *-2.6.35-25-* 填入你想要删除的版本号即可，安全起见，会逐个让你确认。 刚开始用ubuntu的时候，可以自动选择上一次选择的启动项为默认启动，很方便的功能。后来这个功能不知道为什么默认没有了，现在想重新搞起来，google之，都是大批copy如何指定具体启动项的。干脆查看了一下/boot/grub/grub.cfg源文件，里面有如下函数。 function savedefault { if [ -z "${boot_once}" ]; then saved_entry="${chosen}" save_env saved_entry fi } 看上去只要在选择启动项后调用这个函数就ok，不过不太赶立马动手，又google了一下grub的参考，得到这个grub2的guide http://ubuntuforums.org/showthread.php?t=1195275，ok，里面有如何配置savedefault的说明。 修改/etc/default/grub GRUB_DEFAULT=saved #原为GRUB_DEFAULT=0 GRUB_SAVEDEFAULT=true #新增 然后运行 sudo update-grub 系统重新生成grub.cfg，更新后查看下该文件，多余的启动项取消了，每个启动项中添加了savedefault的调用。]]></description>
			<content:encoded><![CDATA[<p>ubuntu用了一段时间，更新了好几个版本，引导菜单拉的老长，需要清理一下。</p>
<p>删除多余的引导项很简单</p>
<pre class="brush:bash">
cd /boot/grub
sudo rm -i *-2.6.35-25-*
</pre>
<p>填入你想要删除的版本号即可，安全起见，会逐个让你确认。</p>
<p>刚开始用ubuntu的时候，可以自动选择上一次选择的启动项为默认启动，很方便的功能。后来这个功能不知道为什么默认没有了，现在想重新搞起来，google之，都是大批copy如何指定具体启动项的。干脆查看了一下/boot/grub/grub.cfg源文件，里面有如下函数。</p>
<pre class="brush:bash">
function savedefault {
  if [ -z "${boot_once}" ]; then
    saved_entry="${chosen}"
    save_env saved_entry
  fi
}
</pre>
<p>看上去只要在选择启动项后调用这个函数就ok，不过不太赶立马动手，又google了一下grub的参考，得到这个grub2的guide <a href="http://ubuntuforums.org/showthread.php?t=1195275" target="_blank">http://ubuntuforums.org/showthread.php?t=1195275</a>，ok，里面有如何配置savedefault的说明。</p>
<p>修改/etc/default/grub</p>
<pre class="brush:bash">
GRUB_DEFAULT=saved  #原为GRUB_DEFAULT=0
GRUB_SAVEDEFAULT=true  #新增
</pre>
<p>然后运行</p>
<pre class="brush:bash">
sudo update-grub
</pre>
<p>系统重新生成grub.cfg，更新后查看下该文件，多余的启动项取消了，每个启动项中添加了savedefault的调用。</p>
]]></content:encoded>
			<wfw:commentRss>http://linnchord.net/archives/776.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>linux(ubuntu)软件安装实践</title>
		<link>http://linnchord.net/archives/740.html</link>
		<comments>http://linnchord.net/archives/740.html#comments</comments>
		<pubDate>Tue, 15 Jun 2010 13:43:22 +0000</pubDate>
		<dc:creator>linnchord</dc:creator>
				<category><![CDATA[linux]]></category>
		<category><![CDATA[存照]]></category>
		<category><![CDATA[ubuntu]]></category>

		<guid isPermaLink="false">http://linnchord.net/?p=740</guid>
		<description><![CDATA[准备在ubuntu上搞搞java，整个环境还是不太习惯，以前零零碎碎看了些操作片段，总是感觉很模糊，几天不用就忘一干二净了。 这次准备系统的搞搞清楚，在每遇到问题时就问题涉及范围内的知识要点先拟一个提纲，然后查资料、整理、描述、记录，这样有利于系统的提升。 这部分是关于ubuntu下软件安装的相关要点，部分自撰，部分来自网络。 常见方式 自动安装 通过软件管理 器或apt-get自动安装软件，软件会按照默认设置编译部署配置。 优点：方便、快捷、易升级 缺点：一般来说文件会按照标准分散在各目录，不易维护，因此如果需要经常对软件配置或其他内容进行维护，则不宜采用此方式。 常用命令： apt-get install {soft} apt-get remove {soft} apt-get update apt-get autoremove 自动删除已经无效的包 下载包解压安装 下载发行商已经 编译好的压缩包进行安装，需自行解压，并进行相关配置。 优点：可自定义文件部署路径，方便配置维护。 缺点：部署、升级、删除需手工操作，需关注依赖。 常用命令： wget http://{package url} 获取包 curl -o http://{package url}  获取包 tar zxvf {package.gz} -C {target dir. etc /opt} 将包gzip解压到指定路径 手工编译安装 下载源代码包，手工编译安装。 优点：可对针对具体情况对软件编译参数进行设置。 缺点：需要了解软件编译参数，需要编译环境，手工操作容易出错，依赖问题。 常用命令： sudo ./configure {&#8211;options} make make [...]]]></description>
			<content:encoded><![CDATA[<p>准备在ubuntu上搞搞java，整个环境还是不太习惯，以前零零碎碎看了些操作片段，总是感觉很模糊，几天不用就忘一干二净了。</p>
<p>这次准备系统的搞搞清楚，在每遇到问题时就问题涉及范围内的知识要点先拟一个提纲，然后查资料、整理、描述、记录，这样有利于系统的提升。	</p>
<p>这部分是关于ubuntu下软件安装的相关要点，部分自撰，部分来自网络。 </p>
<h3>常见方式</h3>
<ul>
<li>
<h4>自动安装</h4>
<p>通过软件管理  器或apt-get自动安装软件，软件会按照默认设置编译部署配置。</p>
<p>优点：方便、快捷、易升级</p>
<p>缺点：一般来说文件会按照标准分散在各目录，不易维护，因此如果需要经常对软件配置或其他内容进行维护，则不宜采用此方式。</p>
<p>常用命令：</p>
<ul class="recommend">
<li>apt-get install {soft}</li>
<li>apt-get remove {soft}</li>
<li>apt-get update</li>
<li>apt-get autoremove 自动删除已经无效的包</li>
</ul>
</li>
<li>
<h4>下载包解压安装</h4>
<p>下载发行商已经  编译好的压缩包进行安装，需自行解压，并进行相关配置。</p>
<p>优点：可自定义文件部署路径，方便配置维护。</p>
<p>缺点：部署、升级、删除需手工操作，需关注依赖。</p>
<p>常用命令：</p>
<ul class="recommend">
<li>wget http://{package url}  获取包</li>
<li>curl -o http://{package url}  获取包</li>
<li>tar zxvf {package.gz} -C {target dir. etc /opt}  将包gzip解压到指定路径</li>
</ul>
</li>
<li>
<h4>手工编译安装</h4>
<p>下载源代码包，手工编译安装。</p>
<p>优点：可对针对具体情况对软件编译参数进行设置。</p>
<p>缺点：需要了解软件编译参数，需要编译环境，手工操作容易出错，依赖问题。</p>
<p>常用命令：</p>
<ul class="recommend">
<li>sudo ./configure {&#8211;options}</li>
<li>make</li>
<li>make install</li>
</ul>
</li>
<li>
<h4>常用工具</h4>
<p>aptitude：apt终端图形界面工具</p>
<p>dpkg：deb包管理工具</p>
<ul class="recommend">
<li>dpkg -i {pkg.deb} 安装包</li>
<li>dpkg -r {pkg}  删除包</li>
<li>dpkg -L {pkg} 列出与该包关联文件</li>
<li>dpkg -l | grep {keyword}  列出当前已安装指定关键字包 </li>
</ul>
<p><a target="_blank" href="http://linuxtoy.org/archives/dpkg_reference.html">dpkg指令参考</a>/<a target="_blank" href="http://linuxtoy.org/archives/apt_reference.html">apt指令参考</a></p>
</li>
</ul>
<h3>目录结构</h3>
<ul>
<li>
<h4>标准目录</h4>
<p>linux系统的标准目录规范，如果通过系统软件管理器自动安装软件，则通常遵循此规范要求。</p>
<ul class="recommend">
<li>/bin 系统执行文件，最常使用命令，这些文件可以被普通用户使用。</li>
<li>/sbin  系统执行文件，这些文件不打算被普通用户使用，普通用户使用要指定目录。</li>
<li>/root  系统管理员（也叫超级用户或根用户）的Home目录。</li>
<li>/dev 设备文件目录。</li>
<li>/boot 用于自举加载程序(LILO或GRUB)的文件。</li>
<li>/lost+found   在文件系统修复时恢复的文件</li>
<li>/lib   系统核心共享库目录，几乎所有的应用程序都会用到该目录下的共享库。</li>
<li>/opt 可选应用程序目录，很多第三方软件在安装时默认会找这个目录。</li>
<li>/tmp   用来存放不同程序执行时产生的临时文件，该目录会被系统自动清理干净。</li>
<li>/var 存放在正常操作中被修改的文件，包括各种日志、加锁、临时文件、数据文件等。</li>
<li>/var/log   系统日志目录，通常也将其他系统的日志置于此目录或子目录。</li>
<li>/etc 存放各种配置文件和子目录，例如网络配置文件、文件系统、用户配置信息等。</li>
<li>/home/{user}  用户目录</li>
<li>/usr 用户的应用程序和文件几乎都存放在该目录下。</li>
<li>/usr/share  独立与你计算机结构的数据，譬如，字典中的词。</li>
<li>/usr/(s)bin  类似根目录下对应的目录(/bin和/sbin)，但不用于基本的启动(譬如，在紧急维护中)。大多数命令在这个目录下。</li>
<li>/usr/local  本地安装的应用程序，这个目录下的内容在重安装或升级操作系统后应该存在。</li>
<li>/usr/local/bin  可能是用户安装的小的应用程序，和一些在/usr/local目录下大应用程序的符号连接。</li>
<li>/usr/src Linux开放的源代码目录。</li>
</ul>
</li>
<li>
<h4>常见规划</h4>
<ul>
<li>
<p>桌面用途</p>
<p>用户自有应用和文件置于/home/{user}中。</p>
<p>系统共享应用可置于/usr/local。</p>
<p>纯自用无共享主机也可全部置于/home/{user}中。</p>
<p>/home可独立划分磁盘分区方便管理升级维护。</p>
</li>
<li>
<p>服务器用途</p>
<p>无固定模式，根据实际需求，通常不会严格按照规范。</p>
<p>常见模式</p>
<p>根据文件更新频繁度、破碎、重要性、IO读写等关键指标，将文件分类存储于不同目录、分区或磁盘，方便维护管理，提高性能和安全性。</p>
</li>
</ul>
</li>
</ul>
<h3>环境设置</h3>
<ul class="recommend">
<li>/etc/enviroment  系统环境变量配置，系统启动时读取。</li>
<li>/etc/profile  用户全局环境变量配置，用户登录启用时读取。</li>
<li>/etc/bashrc 开启shell时为每个bash用户执行此环境配置。</li>
<li>~/.profile 具体用户环境变量配置。</li>
<li>~/.bashrc 具体用户开启shell时环境配置。</li>
<li>~/.bash_profile 交互式、login方式进入bash时运行，通常和.bashrc内容相同，因此通常会调用.bashrc。</li>
<li>~/.bash_logout 当每次退出系统(退出bash shell)时，执行该文件。</li>
</ul>
<h3>服务</h3>
<p>最后，某些软件我们希望把他设置为服务，或者简单的说希望  他开机启动，很简单。</p>
<p>将启动脚本部署到/etc/init.d/，然后安装一个软件rcconf。</p>
<p>sudo apt-get install rcconf</p>
<p>运行rcconf即可设置启动选项，很怀旧的dos风格gui界面。</p>
]]></content:encoded>
			<wfw:commentRss>http://linnchord.net/archives/740.html/feed</wfw:commentRss>
		<slash:comments>0</slash:co
