2010年9月30日 星期四

RPM 套件管理使用說明

RPM 是 Red Hat Package Manager 的簡稱,主要是Red Hat上的軟體包裝方式。RPM 具有五種操作模式:安裝、移除、升級、查詢、驗證。

一、安裝
  • 執行: rpm –ivh XXX
-i表示install,-v使安裝時有套件名稱出現,若想看到更多訊息,可用-vv,-h使安裝時有”#”出現,等到”#”跑完,就是安裝完畢,安裝之前,--test可測試安裝。

二、安裝時會出現的錯誤訊息

  • 已安裝過
若出現foo package XXX.rpm is already insalled error: XXX.rpm cannot be installed表示已經安裝過,可加上--replacepkgs強制安裝。

  • 軟體相衝或不相容
若出現foo /x/x/xxx conflicts with file from XXX error: XXX.rpm cannot be installed
表示某些軟體或新舊軟體之間不相容或相衝,可加上--force強制安裝,但安裝之後不一定能正常執行。

  • 有相依性的軟體
若出現failed dependencies:XXX1 is neded by XXX2 表示要先安裝XXX1才能安裝XXX2,可加上--nodeps強制安裝,但安裝之後不一定能正常執行。

三、移除
  • 要移除已安裝的套件,只要加上-e的參數,例如:rpm –e XXX。
若出現removing these packages would break dependencies: XXX1 is needed by XXX2 表示XXX1的某一些檔案是XXX2執行時所需要的,所以不能移除,可加上--nodeps強制移除,但可能會造成其他軟體無法正常執行。

四、升級
  • 要升級已安裝的套件,只要加上-U的參數,例如:rpm –Uvh XXX。
-U是先移除舊版軟體再安裝新版軟體,因此不管有沒有安裝過,都可以用-Uvh來安裝,若想換回舊版軟體,可以加上--oldpackage強制安裝,升級之後,所有舊版軟體的設定檔會被複製成XXX.prmsave的檔名。

五、查詢
  • 執行: rpm –q XXX會顯示軟體套件的名稱和版本。
其他參數:



參數
說明
用法
-a 查詢目前所有已安裝套件  rpm –qa
-c 列出package中的軟體設定檔  rpm –qc XXX
-d 列出package中的文件檔  rpm –qd XXX
-f 查詢filename屬於哪一套件  rpm –qf 檔名
-l 列出package的檔案擁有人  rpm –ql XXX
-p 查詢套件的套件名稱  rpm –qp XXX
-R 列出此軟體的dependency  rpm –qR XXX
-s
列出package中的檔案狀態
(normal或missing)
 rpm –qs XXX


六、驗證
  • 若不小心移除了某些檔,或想知道的軟體是否正確,可執行:rpm –V XXX,或是rpm –Va驗證所有已安裝套件。
備註:以上為.i386.rpm的安裝方法,而.src.rpm的檔案安裝時,只要加上--recompile即可安裝,若是加上--rebuild參數,除了安裝之外,還會把.src.rpm的檔案重新包裝成.i386.rpm並放在/usr/src/redhat/RPMS的目錄下。

APT 套件使用說明

APT(Advanced Package Tool)是 Debian GNU/Linux 用來管理套件的工具,Conectiva 這家巴西的 Linux 套件公司將它移植到使用 RPM 系統的 Linux 套件上,所以現在我們才可以在 Red Hat Linux(或 Fedora) 上使用 APT 來管理我們的 RPM\

Command

下面將要介紹的所有命令都需要sudo! 使用時請將“packagename”和“string”替換成您想要安裝或者查找的程序

  • apt-get update——在修改/etc/apt/sources.list或者/etc/apt/preferences之後運行該命令。 此外您需要定期運行這一命令以確保您的軟件包列表是最新的。
  • apt-get install packagename——安裝一個新軟件包(參見下文的aptitude)
  • apt-get remove packagename——卸載一個已安裝的軟件包(保留配置文件)
  • apt-get --purge remove packagename——卸載一個已安裝的軟件包(刪除配置文件)
  • dpkg --force-all --purge packagename 有些軟件很難卸載,而且還阻止了別的軟件的應用,就可以用這個,不過有點冒險。
  • apt-get autoclean apt會把已裝或已卸的軟件都備份在硬盤上,所以如果需要空間的話,可以讓這個命令來刪除你已經刪掉的軟件
  • apt-get clean 這個命令會把安裝的軟件的備份也刪除,不過這樣不會影響軟件的使用的。
  • apt-get upgrade——更新所有已安裝的軟件包
  • apt-get dist-upgrade——將系統升級到新版本
  • apt-cache search string——在軟件包列表中搜索字符串
  • dpkg -l package-name-pattern——列出所有與模式相匹配的軟件包。 如果您不知道軟件包的全名,您可以使用“*package-name-pattern*”。
  • aptitude——詳細查看已安裝或可用的軟件包。 與apt-get類似,aptitude可以通過命令行方式調用,但僅限於某些命令——最常見的有安裝和卸載命令。 由於aptitude比apt-get了解更多信息,可以說它更適合用來進行安裝和卸載。
  • apt-cache showpkg pkgs——顯示軟件包信息。
  • apt-cache dumpavail——打印可用軟件包列表。
  • apt-cache show pkgs——顯示軟件包記錄,類似於dpkg –print-avail。
  • apt-cache pkgnames——打印軟件包列表中所有軟件包的名稱。
  • dpkg -S file——這個文件屬於哪個已安裝軟件包。
  • dpkg -L package——列出軟件包中的所有文件。
  • apt-file search filename——查找包含特定文件的軟件包(不一定是已安裝的),這些文件的文件名中含有指定的字符串。 apt-file是一個獨立的軟件包。 您必須先使用apt-get install來安裝它,然後運行apt-file update。 如 果apt-file search filename輸出的內容太多,您可以嘗試使用apt-file search filename | grep -w filename(只顯示指定字符串作為完整的單詞出現在其中的那些文件名)或者類似方法,例如: apt-file search filename | grep /bin/(只顯示位於諸如/bin或/usr/bin這些文件夾中的文件,如果您要查找的是某個特定的執行文件的話,這樣做是有幫助的) 。

* apt-get autoclean——定期運行這個命令來清除那些已經卸載的軟件包的.deb文件。 通過這種方式,您可以釋放大量的磁盤空間。 如果您的需求十分迫切,可以使用apt-get clean以釋放更多空間。 這個命令會將已安裝軟件包裹的.deb文件一併刪除。 大多數情況下您不會再用到這些.debs文件,因此如果您為磁盤空間不足而感到焦頭爛額,這個辦法也許值得一試。

Ubuntu 架設 NFS server

瘋狂帽客 轉貼:

1. Install
$ sudo apt-get install nfs-common
$ sudo apt-get install nfs-kernel-server

2. 設定 /etc/exports (For example: 將/mnt/iso share給all net使用)
$ sudo vi /etc/exports
/mnt/iso *(ro,sync)

3. 啟動 nfs server
$ sudo /etc/init.d/nfs-kernel-server start

4. 檢查
$ showmount -e localhost
成功的話應該可以看到這樣的訊息:
Export list for localhost:
/mnt/iso *

5. 另一台 PC 連接 NFS server  
開啟 portmap:
$ sudo service portmap start
開啟 nfs:
$ sudo service nfs-kernel-server start
看ip有開放哪些掛載點
$ showmount -e IP
mount要掛載的資料夾
$ mount -t nfs IP:/mnt/iso local_folder

2010年9月29日 星期三

在Ubuntu(Linux)下 , 利用 iphone 上網

因為工作的關係, 上班都是以 Ubuntu 為主, 公司網路總是擋東擋西, 剛好小弟手上有 iphone 3GS和上網吃到飽的加持, 嘿嘿!! 就拿他來上網吧!...插上去..不能動..WHY??為什麼Windows一插就行, 老兄..這是 Linux, 凡事都要靠自己&Google

很簡單...只需要三行指令

Tether via USB:

$ sudo add-apt-repository ppa:blueman/ppa 
$ sudo apt-get update
$ sudo apt-get install gvfs ipheth-utils

Tether via Bluetooth:

$ sudo add-apt-repository ppa:blueman/ppa
$ sudo apt-get update

$ sudo apt-get install blueman

插上USB就可以上網囉!!XD....
收工!