<?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>SpaLinux.com &#187; admin</title>
	<atom:link href="http://spalinux.com/author/admin/feed" rel="self" type="application/rss+xml" />
	<link>http://spalinux.com</link>
	<description>Resources for Relaxing Linux System Administrators</description>
	<lastBuildDate>Mon, 26 Jul 2010 09:51:19 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>วิธีการคอมไพล์ไฟล์ src.rpm ด้วยผู้ใช้งานธรรมดา</title>
		<link>http://spalinux.com/2008/09/compile_src_rpm_by_normal_user</link>
		<comments>http://spalinux.com/2008/09/compile_src_rpm_by_normal_user#comments</comments>
		<pubDate>Tue, 16 Sep 2008 18:28:27 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[Utility]]></category>
		<category><![CDATA[compile rpm]]></category>

		<guid isPermaLink="false">http://spalinux.com/?p=166</guid>
		<description><![CDATA[การติดตั้งโปรแกรมบนลินุกซ์วิธีการหนึ่งที่นิยมกันคือใช้ไฟล์ประเภท rpm ซึ่งไฟล์ที่ติดตั้งนั้นจะถูกคอมไพล์เป็น binary โดยทีมงานที่พัฒนา Linux Distribution ซึ่งเป็นไฟล์จะติดตั้งได้สะดวกพร้อมใช้งาน ด้วยคำสั่ง rpm หรือ yum ไฟล์ binary เหล่านี้ชื่อไฟล์จะมีการเพิ่มเติมประเภทของเครื่องที่โปรแกรมนี้สามารถติดตั้งใช้งานได้เช่น i386, i586, i686, x86_64 เป็นต้น แต่ในบางครั้งเราจำเป็นต้องมีการคอมไพล์โปรแกรมใหม่ เพื่อปรับปรุงเรื่องเวอร์ชั่น ตัดหรือเพิ่มคุณสมบัติของโปรแกรมบางอย่างซึ่งไฟล์เหล่านี้อาจจะไม่มีในรูปแบบ binary วิธีการหนึ่งที่ทำได้คือดาวน์โหลดไฟล์ที่เป็น source code ในรูปแบบ src.rpm มา ซึ่งจะเป็นไฟล์ที่ประกอบด้วย source code ของโปรแกรมทั้งหมด พร้อมทั้งวิธีการคอมไพล์ เมื่อได้มาแล้วต้องคอมไพล์เอง ซึ่งแต่ก่อนคนที่จะคอมไพล์ได้ต้องเป็น root และคอมไพล์ในไดเร็คทอรี /usr/src/redhat/ ตัวอย่างลิ้งค์ที่สามารถดาวน์โหลดไฟล์ src.rpm ทั้งหมดของ Fedora 9 http://mirrors.kernel.org/fedora/releases/9/Fedora/source/SRPMS/ เตรียมโปรแกรมและไดเร็คทอรีสำหรับการคอมไพล์ แต่เนื่องด้วยเหตุผลทางด้านความปลอดภัย แนะนำให้คอมไพล์ไฟล์ src.rpm โดยใช้ผู้ใช้งานธรรมดา ไม่จำเป็นต้องใช้ root แต่ก่อนที่จะทำได้นั้นต้องมีการต้องติดตั้งโปรแกรมเพิ่มเติมที่ชื่อว่า rpmdevtools [...]]]></description>
			<content:encoded><![CDATA[<p>การติดตั้งโปรแกรมบนลินุกซ์วิธีการหนึ่งที่นิยมกันคือใช้ไฟล์ประเภท rpm ซึ่งไฟล์ที่ติดตั้งนั้นจะถูกคอมไพล์เป็น binary โดยทีมงานที่พัฒนา Linux Distribution ซึ่งเป็นไฟล์จะติดตั้งได้สะดวกพร้อมใช้งาน ด้วยคำสั่ง rpm หรือ yum</p>
<p>ไฟล์ binary เหล่านี้ชื่อไฟล์จะมีการเพิ่มเติมประเภทของเครื่องที่โปรแกรมนี้สามารถติดตั้งใช้งานได้เช่น i386, i586, i686, x86_64 เป็นต้น</p>
<p>แต่ในบางครั้งเราจำเป็นต้องมีการคอมไพล์โปรแกรมใหม่ เพื่อปรับปรุงเรื่องเวอร์ชั่น  ตัดหรือเพิ่มคุณสมบัติของโปรแกรมบางอย่างซึ่งไฟล์เหล่านี้อาจจะไม่มีในรูปแบบ binary</p>
<p><span id="more-166"></span></p>
<p>วิธีการหนึ่งที่ทำได้คือดาวน์โหลดไฟล์ที่เป็น source code ในรูปแบบ src.rpm มา ซึ่งจะเป็นไฟล์ที่ประกอบด้วย source code ของโปรแกรมทั้งหมด พร้อมทั้งวิธีการคอมไพล์ เมื่อได้มาแล้วต้องคอมไพล์เอง ซึ่งแต่ก่อนคนที่จะคอมไพล์ได้ต้องเป็น root และคอมไพล์ในไดเร็คทอรี /usr/src/redhat/</p>
<p>ตัวอย่างลิ้งค์ที่สามารถดาวน์โหลดไฟล์ src.rpm ทั้งหมดของ Fedora 9</p>
<p><a target="_blank" href="http://mirrors.kernel.org/fedora/releases/9/Fedora/source/SRPMS/">http://mirrors.kernel.org/fedora/releases/9/Fedora/source/SRPMS/</a></p>
<h4>เตรียมโปรแกรมและไดเร็คทอรีสำหรับการคอมไพล์</h4>
<p>แต่เนื่องด้วยเหตุผลทางด้านความปลอดภัย แนะนำให้คอมไพล์ไฟล์ src.rpm โดยใช้ผู้ใช้งานธรรมดา ไม่จำเป็นต้องใช้ root แต่ก่อนที่จะทำได้นั้นต้องมีการต้องติดตั้งโปรแกรมเพิ่มเติมที่ชื่อว่า rpmdevtools เพื่อให้สามารถคอมไพล์ ไฟล์ทั้งสองอยู่ในแผ่นติดตั้ง Fedora 9 อยู่แล้ว</p>
<pre>[root@server Packages]# <strong>rpm -ivh fakeroot-1.6.4-16.fc9.i386.rpm
</strong>Preparing...                ########################################### [100%]
   1:fakeroot               ########################################### [100%]

[root@server Packages]# <strong>rpm -ivh rpmdevtools-6.6-1.fc9.noarch.rpm
</strong>Preparing...                ########################################### [100%]
   1:rpmdevtools            ########################################### [100%]</pre>
<h4>สร้างไดเร็คทอรีสำหรับการคอมไพล์</h4>
<p>login เป็นผู้ใช้งานธรรมดา ที่ไม่ใช่ root แล้วรันคำสั่ง rpmdev-setuptree เพื่อสร้างไดเร็คทอรีสำหรับการคอมไพล์โปรแกรม ซึ่งหลังจากใช้คำสั่งนี้ จะมีไดเร็คทอรี rpmbuild ขึ้นมาในไดเร็คทอรี HOME ของผู้ใช้งานนั้น</p>
<p>ตัวอย่างการใช้คำสั่ง rpmdev-setuptree</p>
<pre>[user01@server ~]$ <strong>rpmdev-setuptree
</strong>[user01@server ~]$ <strong>ls -CF
</strong>rpmbuild/</pre>
<pre>[user01@server ~]$ <strong>find rpmbuild/
</strong>rpmbuild/
rpmbuild/BUILD
rpmbuild/SRPMS
rpmbuild/SOURCES
rpmbuild/SPECS
rpmbuild/RPMS</pre>
<p>ไดเร็คทอรีต่างๆ ที่ถูกสร้างขึ้นจะเหมือนกันใน /usr/src/redhat/ แต่ในที่นี้เราสามารถใช้ user01 ในการคอมไพล์ไฟล์ src.rpm ได้เลย โดยไฟล์ที่คอมไพล์เป็น binary เรียบร้อยแล้ว จะอยู่ใน rpmbuild/RPMS/</p>
]]></content:encoded>
			<wfw:commentRss>http://spalinux.com/2008/09/compile_src_rpm_by_normal_user/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>การแปลง Linux man page ให้เป็น HTML</title>
		<link>http://spalinux.com/2008/08/format_manual_page_to_html</link>
		<comments>http://spalinux.com/2008/08/format_manual_page_to_html#comments</comments>
		<pubDate>Sat, 23 Aug 2008 18:45:05 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Linux Shell]]></category>

		<guid isPermaLink="false">http://spalinux.com/?p=92</guid>
		<description><![CDATA[man page บางคำสั่งบน Linux/UNIX นั้น นอกจากจะอธิบายวิธีการใช้งานโปรแกรมแล้ว จะพูดถึงพื้นฐานของคำสั่งนั้นด้วยด้วย บางคำสั่งมีขนาดยาวมากๆ หลายหน้าจอ ซึ่งอาจไม่สะดวกอ่าน หรือทำให้เมื่อยล้าต่อการศึกษาทำความเข้าใจ โดยเฉพาะส่วนตัวผมเองนั้น ไม่ชอบการอ่านบนหน้าจอนานๆ วิธีการหนึ่งที่ผมใช้คือ ผมจะแปลงไฟล์ manual page ให้เป็นไฟล์ HTML โดยใช้คำสั่ง man2html ก่อนเพื่อนำไปสั่งพิมพ์ ซึ่งข้อดีนอกจากการจัดรูปแบบตัวอักษรของไฟล์ HTML แล้ว ยังมีการสร้างลิ้งค์เชื่อมโยงในแต่ละหัวข้อให้ด้วย ซึ่งจะสะดวกในการอ้างอิง ไฟล์ man page บนลินุกซ์จะถูกเก็บไว้ใน /usr/share/man/ โดยจะถูกแบ่งย่อยเป็น directory ต่างๆ เช่น man1, man2, man3 ตามแต่ประเภทของคำสั่ง ตัวอย่างเช่นไฟล์ man page ของคำสั่ง ls คือ /usr/share/man/man1/ls.1.gz ซึ่งไฟล์จริงๆ จะเป็นไฟล์ชนิดที่เรียกว่า troff และจะถูก gzip ไว้ ตัวอย่างของไฟล์ man [...]]]></description>
			<content:encoded><![CDATA[<p>man page บางคำสั่งบน Linux/UNIX นั้น นอกจากจะอธิบายวิธีการใช้งานโปรแกรมแล้ว จะพูดถึงพื้นฐานของคำสั่งนั้นด้วยด้วย บางคำสั่งมีขนาดยาวมากๆ หลายหน้าจอ ซึ่งอาจไม่สะดวกอ่าน หรือทำให้เมื่อยล้าต่อการศึกษาทำความเข้าใจ โดยเฉพาะส่วนตัวผมเองนั้น ไม่ชอบการอ่านบนหน้าจอนานๆ</p>
<p>วิธีการหนึ่งที่ผมใช้คือ ผมจะแปลงไฟล์ manual page ให้เป็นไฟล์ HTML โดยใช้คำสั่ง man2html ก่อนเพื่อนำไปสั่งพิมพ์ ซึ่งข้อดีนอกจากการจัดรูปแบบตัวอักษรของไฟล์ HTML แล้ว ยังมีการสร้างลิ้งค์เชื่อมโยงในแต่ละหัวข้อให้ด้วย ซึ่งจะสะดวกในการอ้างอิง</p>
<p><span id="more-92"></span></p>
<p>ไฟล์ man page บนลินุกซ์จะถูกเก็บไว้ใน /usr/share/man/ โดยจะถูกแบ่งย่อยเป็น directory ต่างๆ เช่น man1, man2, man3 ตามแต่ประเภทของคำสั่ง ตัวอย่างเช่นไฟล์ man page ของคำสั่ง ls คือ /usr/share/man/man1/ls.1.gz ซึ่งไฟล์จริงๆ จะเป็นไฟล์ชนิดที่เรียกว่า troff และจะถูก gzip ไว้</p>
<p>ตัวอย่างของไฟล์ man page ของคำสั่ง ls</p>
<pre>[root@server ~]# <strong>cd /tmp
</strong>[root@server tmp]# <strong>cp /usr/share/man/man1/ls.1.gz </strong></pre>
<pre>[root@server tmp]# <strong>ls -l ls.1.gz
</strong>-rw-r--r-- 1 root root 3025 2008-08-24 01:32 ls.1.gz</pre>
<pre>[root@server tmp]# <strong>gzip -dv ls.1.gz
</strong>ls.1.gz:         60.0% -- replaced with ls.1</pre>
<pre>[root@server tmp]# <strong>file ls.1
</strong>ls.1: troff or preprocessor input text</pre>
<pre>[root@server tmp]# <strong>head ls.1
</strong>.\" DO NOT MODIFY THIS FILE!  It was generated by help2man 1.35.
.TH LS "1" "January 2008" "GNU coreutils 6.9.92.4-f088d-dirty" "User Commands"
.SH NAME
ls \- list directory contents
.SH SYNOPSIS
.B ls
[\fIOPTION\fR]... [\fIFILE\fR]...
.SH DESCRIPTION
.\" Add any additional description here
.PP
...</pre>
<p>เราจะใช้คำสั่ง man2html เพื่อแปลไฟล์ man page นี้เป็น HTML สำหรับการพิมพ์</p>
<p>ตัวอย่างการใช้คำสั่ง man2html</p>
<pre>[root@server tmp]# <strong>man2html ls.1  &gt; ls.html
</strong>[root@server tmp]# <strong>head ls.html
</strong>Content-type: text/html</pre>
<pre>&lt;HTML&gt;&lt;HEAD&gt;&lt;TITLE&gt;Manpage of LS&lt;/TITLE&gt;
&lt;/HEAD&gt;&lt;BODY&gt;
&lt;H1&gt;LS&lt;/H1&gt;
Section: User Commands (1)&lt;BR&gt;Updated: January 2008&lt;BR&gt;&lt;A HREF="#index"&gt;Index&lt;/A&gt;
&lt;A HREF="http://localhost/cgi-bin/man/man2html"&gt;Return to Main Contents&lt;/A&gt;&lt;HR&gt;</pre>
<pre>&lt;A NAME="lbAB"&gt;&amp;nbsp;&lt;/A&gt;
&lt;H2&gt;NAME&lt;/H2&gt;
...</pre>
<p>ซึ่งไฟล์ HTML ที่สร้างได้ จะมีการจัดรูปแบบตัวอักษร เช่นตัวหนา หรือทำลิ้งค์เชื่อมโยงในแต่ละหัวข้อได้ด้วย</p>
]]></content:encoded>
			<wfw:commentRss>http://spalinux.com/2008/08/format_manual_page_to_html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
