<?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>IGI&#039;s Blog &#187; debian</title>
	<atom:link href="http://www.igigo.net/archives/tag/debian/feed" rel="self" type="application/rss+xml" />
	<link>http://www.igigo.net</link>
	<description></description>
	<lastBuildDate>Fri, 09 Dec 2011 04:19:40 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.4</generator>
	
<!-- Start Of Script Generated By WP-PostViews Plus -->
<script type='text/javascript' src='http://www.igigo.net/wp-includes/js/jquery/jquery.js?ver=1.4.2'></script>
<script type="text/javascript">
/* <![CDATA[ */
/* ]]> */
</script>
<!-- End Of Script Generated By WP-PostViews Plus -->
	<item>
		<title>Debian在线升级dell服务器BIOS</title>
		<link>http://www.igigo.net/archives/192</link>
		<comments>http://www.igigo.net/archives/192#comments</comments>
		<pubDate>Fri, 09 Dec 2011 04:15:38 +0000</pubDate>
		<dc:creator>igi</dc:creator>
				<category><![CDATA[小砸碎]]></category>
		<category><![CDATA[debian]]></category>
		<category><![CDATA[dell]]></category>

		<guid isPermaLink="false">http://www.igigo.net/?p=192</guid>
		<description><![CDATA[Debian在线升级dell服务器BIOS]]></description>
			<content:encoded><![CDATA[<p>  1. 安装libsmbios软件包:<br />
    * 工具主页及文档: <a href="http://linux.dell.com/libsmbios/main/index.html">http://linux.dell.com/libsmbios/main/index.html</a></p>
<pre class="brush: bash; title: ;">
aptitude update
aptitude install libsmbios-bin
</pre>
<p>  2. 查看当前BIOS版本及编号: 需要记住 System ID 及 BIOS Version 的值</p>
<pre class="brush: bash; title: ;">
hostname:/home/igi# getSystemId
Libsmbios:    2.0.3
System ID:    0x01B3
Service Tag:  XXXXXXX
Express Service Code: XXXXXXXXX
Product Name: PowerEdge 1950
BIOS Version: 2.2.6
Vendor:       Dell Inc.
Is Dell:      1
</pre>
<p>  3. 下载对应BIOS的最新版本: <a href="http://linux.dell.com/repo/firmware/bios-hdrs/">http://linux.dell.com/repo/firmware/bios-hdrs/</a><br />
    * url格式: system_bios_ven_0x1028_dev_SYSTEM_ID_version_BIOS_VERSION<br />
以 System ID为 0x01B3， BIOS Version为 2.2.6 为例<br />
则需要找到: http://linux.dell.com/repo/firmware/bios-hdrs/ 下<br />
对应的 system_bios_ven_0x1028_dev_0x01b3_version_x.x.x (x.x.x需要大于当前版本，如没有特别需求，使用最新版本即可)<br />
对应的url为: http://linux.dell.com/repo/firmware/bios-hdrs/system_bios_ven_0x1028_dev_0x01b3_version_x.x.x/bios.hdr</p>
<pre class="brush: bash; title: ;">
wget http://linux.dell.com/repo/firmware/bios-hdrs/system_bios_ven_0x1028_dev_0x01b3_version_x.x.x/bios.hdr
</pre>
<p>  4. 加载升级所需内核模块dell_rbu</p>
<pre class="brush: bash; title: ;">
modprobe dell_rbu
#确认模块已加载
lsmod | grep dell_rbu
dell_rbu                6800  0
firmware_class          7584  2 dell_rbu,bnx2
</pre>
<p>  注意： 默认的debian内核已经有此模块，如果是其他内核，需要编译内核时做调整，推荐编译成模块</p>
<pre class="brush: bash; title: ;">
Firmware Drivers ---&gt;
&lt;M&gt; BIOS update support for DELL systems via sysfs
</pre>
<p>  5. 升级BIOS</p>
<pre class="brush: bash; title: ;">
dellBiosUpdate -u -f bios.hdr
</pre>
<p>输出示例</p>
<pre class="brush: bash; title: ;">
dellBiosUpdate -u -f bios.hdr

WARNING: packet updates are not fully tested yet for packet modes v0/v2.
         We recommend that only monlithic updates be used at this point.
         You should only use packet mode on v0/v2 systems if you know what you are
         doing (for example, testing.)

Forcing MONOLITHIC mode...

Supported RBU type for this system: (MONOLITHIC, PACKET)
Using RBU v2 driver. Initializing Driver.
Setting RBU type in v2 driver to: MONOLITHIC (FORCED)
Prep driver for data load.
Writing RBU data (4096bytes/dot): .................................................
Notify driver data is finished.
Activate CMOS bit to notify BIOS that update is ready on next boot.
Update staged sucessfully. BIOS update will occur on next reboot.
</pre>
<p>  6. 重启系统<br />
  7. 确认BIOS版本号</p>
<pre class="brush: bash; title: ;">
hostname:/home/igi# getSystemId
Libsmbios:    2.0.3
System ID:    0x01B3
Service Tag:  XXXXXXX
Express Service Code: XXXXXXXXXX
Product Name: PowerEdge 1950
BIOS Version: 2.7.0
Vendor:       Dell Inc.
Is Dell:      1
</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.igigo.net/archives/192/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>apt-get remove 与 apt-get autoremove、aptitude remove的不同</title>
		<link>http://www.igigo.net/archives/88</link>
		<comments>http://www.igigo.net/archives/88#comments</comments>
		<pubDate>Tue, 22 Jun 2010 08:10:13 +0000</pubDate>
		<dc:creator>igi</dc:creator>
				<category><![CDATA[系统设置]]></category>
		<category><![CDATA[apt-get]]></category>
		<category><![CDATA[aptitude]]></category>
		<category><![CDATA[autoremove]]></category>
		<category><![CDATA[debian]]></category>

		<guid isPermaLink="false">http://www.igigo.net/?p=88</guid>
		<description><![CDATA[apt-get remove 与 apt-get autoremove、aptitude remove的不同 apt-get remove的行为我们很好理解，就是删除某个包的同时，删除依赖于它的包 例如： A 依赖于 B, B 依赖于 C apt-get remove 删除B的同时，将删除A(很好理解，A依赖于B，B被删了，A也就无法正常运行了) 先说明下apt-get autoremove与aptitude remove是一样的效果的, 我们先了解下这两者的瓜葛 apt-get一开始并没有记录auto-install的信息，在apt(0.6.44.2exp1)此版本时(06年)，apt-get增加了类似于aptitude的auto-install记录(/var/lib/apt/extended_states)。此后，aptitude在版本0.4.5.1(07年)转向使用apt-get的auto-install记录，而抛弃了自己原先的记录方式，再随后apt-get在版本0.7.7(07年)增加了autoremove的选项。 依赖关系是一个复杂而交错的链条，我们把举几个例子来看看它们的行为 以下图中， 绿色圆是为了满足依赖关系而apt-get或aptitude自动安装上的包 蓝色圆是管理员使用apt-get install 或 aptitude install 指定安装的包，简称为手动安装的包 例子1: 1. C 依赖于或推荐B软件包(apt-get和aptitude在安装软件时除了安装必要的依赖包，默认也会安装Recommends关系的包) 2. B 依赖于或推荐A, A被其他手动安装的包依赖 apt-get remove C 将删除C, 同时提示你用apt-get autoremove去清除B apt-get autoremove C 将删除B, C aptitude remove C 将删除B, [...]]]></description>
			<content:encoded><![CDATA[<p>apt-get remove 与 apt-get autoremove、aptitude remove的不同</p>
<p>apt-get remove的行为我们很好理解，就是删除某个包的同时，删除依赖于它的包<br />
例如： A 依赖于 B, B 依赖于 C<br />
apt-get remove 删除B的同时，将删除A(很好理解，A依赖于B，B被删了，A也就无法正常运行了)</p>
<p>先说明下apt-get autoremove与aptitude remove是一样的效果的,  我们先了解下这两者的瓜葛</p>
<p>apt-get一开始并没有记录auto-install的信息，在apt(0.6.44.2exp1)此版本时(06年)，apt-get增加了类似于aptitude的auto-install记录(/var/lib/apt/extended_states)。此后，aptitude在版本0.4.5.1(07年)转向使用apt-get的auto-install记录，而抛弃了自己原先的记录方式，再随后apt-get在版本0.7.7(07年)增加了autoremove的选项。</p>
<p>依赖关系是一个复杂而交错的链条，我们把举几个例子来看看它们的行为</p>
<pre class="brush: bash; title: ;">
以下图中， 绿色圆是为了满足依赖关系而apt-get或aptitude自动安装上的包
蓝色圆是管理员使用apt-get install 或 aptitude install
指定安装的包，简称为手动安装的包
</pre>
<p>例子1:<br />
1. C 依赖于或推荐B软件包(apt-get和aptitude在安装软件时除了安装必要的依赖包，默认也会安装Recommends关系的包)<br />
2. B 依赖于或推荐A, A被其他手动安装的包依赖<br />
<a href="http://www.igigo.net/wp-content/uploads/2010/06/abc1.jpg"><img class="aligncenter size-full wp-image-91" title="abc" src="http://www.igigo.net/wp-content/uploads/2010/06/abc1.jpg" alt="" width="348" height="503" /></a></p>
<pre class="brush: bash; title: ;">
apt-get remove C         将删除C, 同时提示你用apt-get autoremove去清除B
apt-get autoremove C     将删除B, C
aptitude remove C        将删除B, C
</pre>
<p>我的理解: 删除C, 那么B这个包既是自动安装的,且没有其他手动安装的包依赖于它,<br />
则可以判定B也是没必要的</p>
<p>例子2:<br />
1. 在例子1的基础上, D 依赖于或者推荐B, 且D没有被其他手动安装的包依赖<br />
这样的情况一般出现在用apt-get remove 某个手动安装的包之后.</p>
<p style="text-align: center;"><a href="http://www.igigo.net/wp-content/uploads/2010/06/abcd.jpg"><img class="size-full wp-image-90 aligncenter" title="abcd" src="http://www.igigo.net/wp-content/uploads/2010/06/abcd.jpg" alt="" width="413" height="546" /></a></p>
<pr
<pre class="brush: bash; title: ;">
apt-get remove C         将删除C, 同时提示你用apt-get autoremove去清除B,D
apt-get autoremove C     将删除B, C, D
aptitude remove C        将删除B, C, D
</pre>
<p>我的理解: 删除C, 那么B,D 这两个包既是自动安装的,且没有其他手动安装的包依赖于它们,<br />
则可以判定B,D也是没必要的</p>
<p>例子3:<br />
1. 在例子2的基础上, 有个手动安装的包E推荐D(既E Recommends D,手动安装E时,也会把D装上)</p>
<p><a href="http://www.igigo.net/wp-content/uploads/2010/06/abcd4.jpg"><img class="aligncenter size-full wp-image-92" title="abcd4" src="http://www.igigo.net/wp-content/uploads/2010/06/abcd4.jpg" alt="" width="387" height="577" /></a></p>
<pre class="brush: bash; title: ;">
apt-get remove C         将删除C, 同时提示你用apt-get autoremove去清除B,D
apt-get autoremove C     将删除B, C, D
aptitude remove C        将删除B, C, D
</pre>
<p>我的理解: 删除C, 那么B,D 这两个包既是自动安装的,且没有其他手动安装的包依赖于它们,<br />
则可以判定B,D也是没必要的<br />
虽然D被E Recommend, 但为啥是这么设计的, 我也没猜出开发人员的想法</p>
<p>例子4:<br />
1. 在例子3的基础上, D变成依赖于B, E变成依赖于D</p>
<p><a href="http://www.igigo.net/wp-content/uploads/2010/06/abcd1.jpg"><img class="aligncenter size-full wp-image-93" title="abcd1" src="http://www.igigo.net/wp-content/uploads/2010/06/abcd1.jpg" alt="" width="400" height="644" /></a></p>
<pre class="brush: bash; title: ;">
apt-get remove C         将删除C
apt-get autoremove C     将删除C
aptitude remove C        将删除C
</pre>
<p>我的理解: 只删除C, 因为B被D依赖, D被E依赖, 间接来说,E不能没有B,D而正常运行,所以B,D被保留</p>
<p>例子5:<br />
1. 在例子4的基础上, D变成推荐B, E依然依赖于D</p>
<p><a href="http://www.igigo.net/wp-content/uploads/2010/06/abcd2.jpg"><img class="aligncenter size-full wp-image-94" title="abcd2" src="http://www.igigo.net/wp-content/uploads/2010/06/abcd2.jpg" alt="" width="423" height="680" /></a></p>
<pre class="brush: bash; title: ;">
apt-get remove C         将删除C, 同时提示你用apt-get autoremove去清除B
apt-get autoremove C     将删除B, C
aptitude remove C        将删除B, C
</pre>
<p>我的理解: 删除C, 而B没有被其他手动安装的包直接依赖或者间接依赖(我指那些一层层depend on的关系), D被E依赖<br />
所以B不是必要的,可以删除, 而D不能删除</p>
]]></content:encoded>
			<wfw:commentRss>http://www.igigo.net/archives/88/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
	</channel>
</rss>

