2009年8月3日 星期一

Linux RPM 使用講解


================================================
Linux RPM 使用講解
by AYO 阿佑

================================================
前言:
原文出處:

作者: 我從山中來
http://tw.group.knowledge.yahoo.com/hacker-cracker/article/view?aid=1202

http://doc.linuxpk.com/153.html

歡迎參觀 AYO 阿佑 個人的電腦技術園地
http://tw.myblog.yahoo.com/kain-0913/

AYO阿佑 這次來講說,Linux 世界中,有一種工具叫做 RPM,
這個是 Linux 套件安裝、升級、更新 的方法之一,
先行說明一下幾個名詞解釋 :
RPM : 這是 Linux 安裝、升級、更新方法之一,
      泰半都是 Red Hat 公司出品的 Linux 居多,
      會這麼說是因為是因為 RPM 全名叫做,RedHat Package Managmer,
      所以 Red Hat 相關的 Linux,都 100% 支援此種方式,
      例如 : RedHat、RHEL、Fedora Core、CentOS
DPKG : 這又是另外一種 Linux 安裝、升級、更新方法之一,
       源出自 Debian Linux,
       而 Linux 中,N User 比較常聽過的 Ubuntu,也是支援這個方法喔!!
       當然還有 FreeBSD 也是支援此方式做的喔!
YUM : 這是 Linux 線上更新的方式之一,
      也是 Red Hat 所發展的線上更新方式,
      可以做成自動更新,保證所有的套件都是最穩定的新版本,
      以防入侵問題產生,
      所以 RedHat、Fedora Core、CentOS 都支援此方式更新
Up2date : 這是 Linux 線上更新的方式之一,
      也是 Red Hat 所發展的線上更新方式,
      可以做成自動更新,保證所有的套件都是最穩定的新版本,
      以防入侵問題產生,唯一不同的是,
      這只有 RHEL 獨有,因為 RHEL 叫做 RedHat Enterprise Linux,
      這個作業系統可以跟 RedHat 官方購買 ""技術諮詢"",
      技術諮詢就包含線上更新
apt-get : 源出自 Debian Linux,而 Linux 中,
      End User 比較常聽過的 Ubuntu,
      也是支援這個方法喔!!
      當然還有 FreeBSD 也是支援此方式做的喔!
tarball : *.tgz、*.tar.gz、*.gz、*.tbz、*.bz2 都是 Linux 壓縮檔案,
      而這些壓縮檔,也可以下載之後,
      自己來安裝,只是程序上,會比上述幾樣更複雜,
      而且也必須更新的時候,純手工更新

本次 AYO阿佑 僅討論 rpm 的部份,而 rpm 要怎麼使用呢??
下面的文件介紹的很詳細,不過呢? 老實說,泰半都少用到,
這邊 AYO阿佑 先介紹 ""實用的"",
其他的比較少用的,您可以用到的時候再查閱即可

安裝:
rpm -ivh *.rpm 這是 rpm 安裝的方式
-i : 指的是 install
-v : 是指 verbose,附加資訊,會在安裝的時候顯示的比較仔細
-h : 這個指的是安裝時顯示安裝進度 hash,
      再安裝時候會出現 #### 這種安裝進度

rpm -Uvh *.rpm 這是 rpm 更新的方式
-U : 指的是 Upgrade
-v : 是指 verbose,附加資訊,會在安裝的時候顯示的比較仔細
-h : 這個指的是安裝時顯示安裝進度 hash,
      再安裝時候會出現 #### 這種安裝進度

還有剩下這三樣比較常用
--replacepkgs 強制重新安裝已經安裝的套裝軟體
--force 忽略套裝軟體及檔的衝突
--nodeps 不檢查依賴性關係

移除:
rpm -e *.rpm 這是移除套件的辦法
-e : 是指 erase 囉!

查閱:
rpm 不論是 自己 或者是 當初安裝時本身就已經安裝了不少套件囉!!
那想要查閱套件已經裝了哪些怎麼做呢?

rpm -q 這樣就會列出完整的 rpm 列表來囉!
但是往往這個列表超級長,
想找到自己想看的套件簡直會眼花,
所以說大部分的做法是 :
範例 : rpm -q |grep kernel 
這個意思是說 查詢 rpm 全部列表,
但是只要顯示有關 kernel 的列表出來

基本上 rpm 的安裝、更新、查閱,重點也就上面這些而已!
不難對吧! 只需要先懂上面這幾項在做什麼,就可以囉!
至於下面的參考文獻,可以當作 Extension 來閱讀即可

================================================
參考文獻如下 :

一、安裝

命令格式:

rpm -i ( or --install) options file1.rpm ... fileN.rpm

參數:

file1.rpm ... fileN.rpm 將要安裝的RPM包的檔案名

詳細選項:

-h (or --hash) 安裝時輸出hash記號 (``#'')

--test 只對安裝進行測試,並不實際安裝。

--percent 以百分比的形式輸出安裝的進度。

--excludedocs 不安裝套裝軟體中的文檔檔

--includedocs 安裝文檔

--replacepkgs 強制重新安裝已經安裝的套裝軟體

--replacefiles 替換屬於其他套裝軟體的文件

--force 忽略套裝軟體及檔的衝突

--noscripts 不運行預安裝和後安裝腳本

--prefix 將套裝軟體安裝到由 指定的路徑下

--ignorearch 不校驗套裝軟體的結構

--ignoreos 不檢查套裝軟體運行的作業系統

--nodeps 不檢查依賴性關係

--ftpproxy 用 作為 FTP代理

--ftpport 指定FTP的埠號為

通用選項

-v 顯示附加資訊

-vv 顯示調試資訊

--root 讓RPM將指定的路徑做為"根目錄",
          這樣預安裝程式和後安裝程式都會安裝到這個目錄下

--rcfile 設置rpmrc檔為

--dbpath 設置RPM 資料庫存所在的路徑為

二、刪除

命令格式:

rpm -e ( or --erase) options pkg1 ... pkgN

參數

pkg1 ... pkgN :要刪除的套裝軟體

詳細選項

--test 只執行刪除的測試

--noscripts 不運行預安裝和後安裝腳本程式

--nodeps 不檢查依賴性

通用選項

-vv 顯示調試資訊

--root 讓RPM將指定的路徑做為"根目錄",
          這樣預安裝程式和後安裝程式都會安裝到這個目錄下

--rcfile 設置rpmrc檔為

--dbpath 設置RPM 資料庫存所在的路徑為

三、升級

命令格式

rpm -U ( or --upgrade) options file1.rpm ... fileN.rpm

參數

file1.rpm ... fileN.rpm 套裝軟體的名字

詳細選項

-h (or --hash) 安裝時輸出hash記號 (``#'')

--oldpackage 允許"升級"到一個老版本

--test 只進行升級測試

--excludedocs 不安裝套裝軟體中的文檔檔

--includedocs 安裝文檔

--replacepkgs 強制重新安裝已經安裝的套裝軟體

--replacefiles 替換屬於其他套裝軟體的文件

--force 忽略套裝軟體及檔的衝突

--percent 以百分比的形式輸出安裝的進度。

--noscripts 不運行預安裝和後安裝腳本

--prefix 將套裝軟體安裝到由 指定的路徑下

--ignorearch 不校驗套裝軟體的結構

--ignoreos 不檢查套裝軟體運行的作業系統

--nodeps 不檢查依賴性關係

--ftpproxy 用 作為 FTP代理

--ftpport 指定FTP的埠號為

通用選項

-v 顯示附加資訊

-vv 顯示調試資訊

--root 讓RPM將指定的路徑做為"根目錄",
          這樣預安裝程式和後安裝程式都會安裝到這個目錄下

--rcfile 設置rpmrc檔為

--dbpath 設置RPM 資料庫存所在的路徑為

四、查詢

命令格式:

rpm -q ( or --query) options

參數:

pkg1 ... pkgN :查詢已安裝的套裝軟體

詳細選項

-p (or ``-'') 查詢套裝軟體的文件

-f 查詢屬於哪個套裝軟體

-a 查詢所有安裝的套裝軟體

--whatprovides 查詢提供了 功能的套裝軟體

-g 查詢屬於 組的套裝軟體

--whatrequires 查詢所有需要 功能的套裝軟體

資訊選項

顯示套裝軟體的全部標識

-i 顯示套裝軟體的概要資訊

-l 顯示套裝軟體中的檔列表

-c 顯示配置檔列表

-d 顯示文檔檔列表

-s 顯示套裝軟體中檔列表並顯示每個檔的狀態

--scripts 顯示安裝、卸載、校驗腳本

--queryformat (or --qf) 以用戶指定的方式顯示查詢資訊

--dump 顯示每個檔的所有已校驗資訊

--provides 顯示套裝軟體提供的功能

--requires (or -R) 顯示套裝軟體所需的功能

通用選項

-v 顯示附加資訊

-vv 顯示調試資訊

--root 讓RPM將指定的路徑做為"根目錄",
          這樣預安裝程式和後安裝程式都會安裝到這個目錄下

--rcfile 設置rpmrc檔為

--dbpath 設置RPM 資料庫存所在的路徑為

五、校驗已安裝的套裝軟體

命令格式:

rpm -V ( or --verify, or -y) options

參數

pkg1 ... pkgN 將要校驗的套裝軟體名

套裝軟體選項

-p Verify against package file

-f 校驗所屬的套裝軟體

-a Verify 校驗所有的套裝軟體

-g 校驗所有屬於組 的套裝軟體

詳細選項

--noscripts 不運行校驗腳本

--nodeps 不校驗依賴性

--nofiles 不校驗檔屬性

通用選項

-v 顯示附加資訊

-vv 顯示調試資訊

--root 讓RPM將指定的路徑做為"根目錄",
          這樣預安裝程式和後安裝程式都會安裝到這個目錄下

--rcfile 設置rpmrc檔為

--dbpath 設置RPM 資料庫存所在的路徑為

六、校驗套裝軟體中的文件

語法:

rpm -K ( or --checksig) options file1.rpm ... fileN.rpm

參數:

file1.rpm ... fileN.rpm 套裝軟體的檔案名

Checksig--詳細選項

--nopgp 不校驗PGP簽名

通用選項

-v 顯示附加資訊

-vv 顯示調試資訊

--rcfile 設置rpmrc檔為

七、其他RPM選項

--rebuilddb 重建RPM資料庫

--initdb 創建一個新的RPM資料庫

--quiet 盡可能的減少輸出

--help 顯示幫助檔

--version 顯示RPM的當前版本

================================================
篇後語:
本篇文章,已經盡量減短,
但是由於 rpm 可以說的東西真的不少,
也不是短短的一篇文章可以講完,
所以寫著寫著 AYO阿佑 也不知不覺囉嗦的這麼多!!
不知道 讀者們是否看的懂呢?
有關於 rpm 新手,可以嘗試僅閱讀第一段,
然後嘗試看看,其實只需要懂第一段,
您對於 rpm 已經掌握近八成囉!
其他的 rpm 包裝、拆解 等等等,都是很進階的技術,
老實說,就算是專業工程師 也不太常用,
因此以一般駕馭 Linux Server 來說,
本文的第一段已經差不多足夠囉!

================================================
歡迎轉載,但請務必說明原出處

歡迎參觀 AYO 阿佑 個人的電腦技術園地
http://tw.myblog.yahoo.com/kain-0913/



2009年8月2日 星期日

Windows_多重啟動_多重開機_重要檔案講解


================================================
Windows_多重啟動_多重開機_重要檔案講解
by AYO 阿佑

================================================
前言:
原文出處:

作者: 我從山中來
http://tw.group.knowledge.yahoo.com/hacker-cracker/article/view?aid=1214

http://www.it.com.cn/f/edu/066/27/288702.htm

歡迎參觀 AYO 阿佑 個人的電腦技術園地
http://tw.myblog.yahoo.com/kain-0913/

Windows作業系統如果要做 多重開機 或者是 多重啟動的話,
意思是說同時擁有多個作業系統於硬碟裡面,想要開機的時候,
會有一個選單讓您選擇的話,就是這五個檔案最重要了,

它們分別是以下幾個:
BOOT.INI、BOOTFONT.BIN、BOOTSECT.DOS、
NTDETECT.COM、NTLDR

而這五個當中,唯一可以程式化,
意思是說 可以自行撰寫,或者是 看的懂的檔案,
就是 boot.ini 囉!!

AYO阿佑 在這邊寫一個範例給各位了解一下 boot.ini

這是單獨 Windows XP 開機的時候 boot.ini 的內容
[boot loader]
timeout=30
default=multi(0)disk(0)rdisk(0)partition(1)\WINDOWS
[operating systems]
multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Microsoft Windows XP Professional" /noexecute=optin /fastdetect

這是雙系統 Windows XP & Windows 2003 開機的時候 選單 boot.ini 的內容
[boot loader]
timeout=30
default=multi(0)disk(0)rdisk(0)partition(1)\WINDOWS
[operating systems]
multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Microsoft Windows XP Professional" /noexecute=optin /fastdetect
[boot loader]
timeout=30
default=multi(0)disk(0)rdisk(0)partition(2)\WINDOWS
[operating systems]
multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Microsoft Windows 2003 Server" /noexecute=optin /fastdetect

重點放在雙選單這邊,這邊意思是說,
partition 1 裡面放的是 WinXP,partition 2 裡面放的是 Win2003,
基本上來說 partition 1 預設的是 C:,partition 2 預設是 D:,
所謂的 C: D: 那都是 正常開機完成之後去做定義的,
所以還在開機階段的時候,所謂的 C: D: 那都是無意義的,
所以當然是用 multi(0)disk(0)rdisk(0)partition(1)\WINDOWS 來做指定

本篇教學文件,主要是教導,這五個檔案的運作與關係,
而這五個檔當中,
唯一能手動去撰寫更改的只有 boot.ini,
其他的四個
BOOTFONT.BIN、BOOTSECT.DOS、 NTDETECT.COM、NTLDR,
本文當中也有教導如何排除問題,與這些檔案是做什麼的

================================================
參考文獻如下 :

現在安裝多重啟動系統的朋友越來越多了,
但是很少有人能夠完全知道,
在多重啟動系統中的幾個重要檔的作用是什麼。
下面讓筆者簡單地予以介紹,
希望大家以後能關注這些檔,以備不時之需。

由於Windows 95/98/ME(以下簡稱Win9X)和
Windows NT/2000/XP/Server 2003(以下簡稱WinNT)
的引導方式完全不同,所以在多重啟動系統裏面,
微軟採用了一種很巧妙的方式來解決這個問題。
Win9X採用的直接讀取引導磁區的方式來啟動系統,
而WinNT是通過NTLDR和NTDETECT.COM來啟動系統的。
這也是為什麼Win9X害怕引導區電腦病毒的原因之一。
需要說明的是,在WinNT架構的啟動進程中,
有一個檔也是需要注意的,
這個檔就是經常被大家掛在嘴邊的BOOT.INI文件。
由於這個檔的重要性被過度強化,
給大家造成了這個檔是無所不能的一種錯誤的印象,
也就出現了一些“經典”的錯誤。
例如 "備份雙系統啟動檔只需要備份
C盤根目錄下得BOOT.INI檔就可以了"。
其實不然,在某些情況下,只備份這個檔是不能夠解決問題的。
詳細的解釋請看後面的說明。

最重要的五個文件
本文將分析在多重啟動系統中起重要作用的檔,
它們分別是以下幾個:
BOOT.INI、BOOTFONT.BIN、BOOTSECT.DOS、
NTDETECT.COM、NTLDR。
其中BOOT.INI是大家非常熟悉的一個配置檔。
從這個檔可以選擇啟動的作業系統是什麼?
而且還可以通過修改BOOT.INI檔控制啟動的方式,
如在作業系統說明符後面加上“/fastdetect”參數,
可以使用快速自檢模式。
同樣,還有“ /nodetect”等參數可供使用。
但是,不是說沒有這個檔就不能夠啟動你的作業系統,
丟失這個檔的後果就是只能從C盤啟動。
同時,由於這個檔是完完全全的一個文本類型的檔,
我們可以使用任何文本編輯工具編輯這個檔。
換句話說,BOOT.INI在多重啟動系統中不是最重要的一個檔,
也就說不上 "備份雙系統啟動檔只要備份
C盤根目錄下的BOOT.INI檔就可以了"。

熟悉多重啟動系統啟動模式的朋友們都知道,
作業系統的啟動流程從NTLDR開始。
NTLDR通過讀取BOOT.INI檔,確定作業系統啟動分區的位置。
對於只有一個作業系統的電腦,
NTLDR啟動NTDETECT.COM開始下一步的啟動流程,
而對於含有多重啟動作業系統的電腦,
NTLDR 將把BOOT.INI 的選擇功能表內容顯示
在螢幕上供使用者選擇。
可見,NTLDR是決定多重啟動系統的關鍵性檔。
而常見的啟動出錯提示也是:“NTLDR is missing.”。
那麼其他的檔又有什麼用處呢?

NTDETECT.COM是一個用於
對硬體設備初始化的一個系統級別的檔,
然後把這些硬體資訊傳遞給下一個啟動步驟,
最終完成作業系統的啟動。
需要說明的是,這個檔僅存於NT架構的作業系統裏面,
而在Win9X下的啟動流程又是另外的一種方式。

以上3個檔的重要性已經為不少讀者有所瞭解,
但是下面這個檔的重要性恐怕很少有人知道了。
這個檔就是在多重啟動中
啟動Win9X作業系統的一個非常關鍵的檔:BOOTSECT.DOS。
從名字上是看不出這個檔有什麼特殊的用途的,
但是如果你的多重啟動作業系統組合裏面含有Win9X,
那麼你一定可以在C盤根目錄發現這個檔。
這個檔不大,只有512位元組。
其實這個檔裏面存放的就是
大家非常熟悉的啟動磁區裏面的全部資料。
那這個檔是如何產生的呢?當NTLDR被安裝的時候,
安裝程式自動地將原先的啟動磁區保存為BOOTSECT.DOS檔,
然後使用新的啟動資料覆蓋這個磁區。當這個檔丟失的時候,
你再選擇啟動Win9X時,你看到的不再是熟悉的藍天白雲的啟動畫面,
而是螢幕上的一串英文提示,翻譯過來的大意就是I/O錯誤,
系統無法啟動。為什麼會這樣?
因為NTLDR從你的選擇中得知你將啟動Win9X系統,
然後去讀取BOOTSECT.DOS檔以開始Win9X啟動流程,
但是由於BOOTSECT.DOS檔不存在,
所以啟動過程當然會失敗了。

================================================
篇後語:
相信經過這篇教學,
您應該對 Windows 多重開機 多重啟動,
都有一定程度的了解,
下次安裝了雙系統的時候,
也應該知道哪邊可能會有問題,
也知道要如何排除困難了!

================================================
歡迎轉載,但請務必說明原出處

歡迎參觀 AYO 阿佑 個人的電腦技術園地
http://tw.myblog.yahoo.com/kain-0913/