so true

          心懷未來,開創(chuàng)未來!
          隨筆 - 160, 文章 - 0, 評論 - 40, 引用 - 0
          數(shù)據(jù)加載中……

          package management -- apt/dpkg & yum/rpm

          yumdownloader --urls mariadb-server #To get URLs for packages
          yumdownloader --resolve mariadb-server #To actually download a package and all its dependencies
          rpm -iv XXX # install
          rpm -e XXX # remove
          rpm -qa # list all packages
          rpm -ql XXXX #list all files of XXX package
          rpm -U XXX # update existed package to newer version
          /etc/yum.conf # yum source configure

          dpkg -l #列出所有安裝的包
          dpkg -L xterm #列出xterm包安裝后的所有文件
          dpkg -s xterm #顯示xterm包的狀態(tài)
          dpkg -r xterm #刪除xterm包
          dpkg -i xterm.deb #安裝xterm包
          dpkg -S xterm.pc #在安裝的包中查找xterm.pc文件
          dpkg -c xterm.deb #查看xterm.deb包中的內(nèi)容
          dpkg -x xterm.deb output #提取xterm.deb包中的內(nèi)容到output目錄下
          apt-cache search xterm #查詢xterm相關(guān)的包

          也可以通過ppa來安裝個人發(fā)布的包:
          1。到https://launchpad.net/ubuntu/+ppas上搜索需要的包;
          2。用類似如下的步驟安裝:
          sudo add-apt-repository ppa:webupd8team/java
          sudo apt-get update
          sudo apt-get install oracle-java7-installer

          遇到一個問題:
          The following packages have unmet dependencies:
           libssl-dev : Depends: libssl0.9.8 (= 0.9.8o-1ubuntu4) but 0.9.8o-1ubuntu4.1 is to be installed
          解決方法是:sudo apt-get install libssl0.9.8=0.9.8o-1ubuntu4

          如果僅僅是想升級一個包,可以用:
          sudo apt-get install --only-upgrade XXX #Do not install new packages; When used in conjunction with install, only-upgrade will prevent packages on the command line from being upgraded if they are not already installed.

          sudo apt-get autoremove #自動刪除沒用的包,autoremove is used to remove packages that were automatically installed to satisfy dependencies for some package and that are no more needed.

          apt-cache show xterm #查看xterm包的信息,也可以看到xterm包下載的位置,例如Filename: pool/main/x/xterm/xterm_261-1ubuntu3_amd64.deb
          apt-cache showsrc xterm #可以看到xterm包的源代碼的相關(guān)信息
          /var/cache/apt/archives/ #下載的包的位置
          dpkg -S ls #在已安裝的包中,查找哪些包中包含的文件有l(wèi)s關(guān)鍵字
          dpkg -S $(which ls) #在已安裝的包中,查找哪些包中包含/usr/bin/ls這個工具
          apt-file update && apt-file search xterm.pc #不用下載包,查詢那個包含有xterm.pc文件
          apt-get install --download-only xterm && dpkg -L xterm #只下載不安裝,然后再查看包里的內(nèi)容,也可以使用apt-file show xterm來查看包里的內(nèi)容
          /etc/apt/sources.list #配置源,如果系統(tǒng)版本較低,例如ubuntu10.10,可以配置ubuntu11.04的源,因為10.10已經(jīng)不再維護(hù)了,源里面的包會不全,其實更好的方式是找到目前依然可以提供10.10包的源,例如lupaworld,官方站的源還有,不過放到了old-releases.ubuntu.com下了。

          apt-get source xterm #可以下載包的源代碼,下載到當(dāng)前目錄下

          通過上面這些有用的方法,成功解決了一個相當(dāng)有難度的問題:
          困擾我很久的一個問題是,X偶爾會freeze,ctrl+alt+backspace不好用,只能通過Alt+PrtScn(SysRq)+k(先按住alt,一直不松,然后依次按下PrtScn、k)來重啟X;在X Freeze期間,可以ssh上去,看到X程序cpu使用率為0%,gdb上去打印backtrace,從前幾層stack frame中發(fā)現(xiàn)問題出在./usr/lib/xorg/modules/drivers/intel_drv.so,進(jìn)一步找到這個so在xserver-xorg-video-intel包里,其版本號為2.12.0-1ubuntu5,懷疑是它出了問題,找到這個包的下載路徑是pool/main/x/xserver-xorg-video-intel/xserver-xorg-video-intel_2.12.0-1ubuntu5_amd64.deb,從http://old-releases.ubuntu.com/ubuntu/上下載這個包的緊鄰升級版xserver-xorg-video-intel_2.12.0-1ubuntu5.2_amd64.deb,dpkg -i安裝,重啟后ok了。

          下面是關(guān)于apt源路徑的一些說明(摘自http://www.linuxgoo.com/2005/66129/10252232428.html):
          下邊是我的source.list中的一段:
          QUOTE:
          deb http://security.ubuntu.com/ubuntu dapper-security main restricted

          deb-src http://security.ubuntu.com/ubuntu dapper-security main restricted

            其中第一個字段中的deb/deb-src是指軟件包(deb)和源代碼包(deb-src)

            而第二個字段指向的是軟件庫的位置,apt會自動根據(jù)軟件庫的位置和第三字段(dapper-security/dapper)的信息去抓取軟件索引(/dists)和軟件包或源代碼包(/pool)的信息,所以你可以用Firefox或者其它瀏覽器來測試一下各個軟件庫的速度,然后自己選擇放入到源中,不要的用#注釋掉即可。

            而第三個字段(dapper/dapper-security/)代表的是Ubuntu的發(fā)行版。

            而第三個字段之后的就是關(guān)于發(fā)行版的軟件包了,其中:

            main(主要的)--“main”組件包括了自由軟件、可以被自由發(fā)布的軟件和被Ubuntu團(tuán)隊完全支持的軟件。其中包括了大多數(shù)流行的和穩(wěn)定的開源軟件,當(dāng)您安裝Ubuntu時默認(rèn)安裝的就是這些軟件。

            restricted(限制的)--“restricted”組件是專供普遍用途,而且沒有自由軟件版權(quán),但依然被Ubuntu團(tuán)隊支持的軟件。請注意,因為不能直接修改軟件,因而我們可能不能提供完全的技術(shù)支持,即便如此,我們還能向?qū)嶋H作者反饋Bug報告。

            universe(宇宙,世界,全人類)--“universe”組件是整個自由、開源Linux世界的縮影。在“universe”組件中,你可以找到大多數(shù)開源軟件,以及在開源版權(quán)下的軟件,所有這些都是在公共源的基礎(chǔ)上建立的。這些軟件都是使用“main”中的組件編寫的,它們能與“main”組件相安無事地共同運行,但它們沒有安全升級的保障。“universe”組件包含了數(shù)以千計的軟件。雖然是公共的,用戶必須明白它們與穩(wěn)定的Ubuntu核心的軟件的差異和不穩(wěn)定。

            multiverse--multiverse”組件包含了“不自由”的軟件,這意味著這些軟件不滿足 Ubuntu相對于“main”組件的各種版權(quán)政策。當(dāng)您使用這些軟件時,如何調(diào)整各種權(quán)力以及遵重版權(quán)所有者的問題,就完全依靠您自己把握了。這些軟件不被我們支持,而且通常不能被修改和更新,您將自己承擔(dān)任何風(fēng)險。 現(xiàn)在,作為以上位置的新增功能,實際上新的軟件包都存儲在pool目錄中


          附:

          一.下列目錄存在于任何 Ubuntu 鏡像站點的 ubuntu 目錄下:

          1)dists/:
          本目錄包含“發(fā)行版”(distributions),此處是獲得 Ubuntu 發(fā)布版本(releases)和已發(fā)布版本(pre-releases)的軟件包的正規(guī)途徑。有些舊軟件包及 Contens-*.gz Packages.gz 等文件仍在其中。

          2)pool/:
          所有 Ubuntu 發(fā)布版及已發(fā)布版的軟件包的新的物理地址。

          3)indices/:
          維護(hù)人員文件和重載文件。

          4)project/:
          大部分為開發(fā)人員的資源,如:
          project/experimental/:本目錄包含了處于開發(fā)中的軟件包和工具,它們均處于 alpha 測試階段。用戶不應(yīng)使用這些軟件,因為即使是經(jīng)驗豐富的用戶也會被搞得一團(tuán)糟。
          project/orphaned/:已不再有人維護(hù)的軟件包,它們已從發(fā)行版中孤立出來。

          二.Ubuntu 發(fā)行版

          現(xiàn)在在 dists 目錄下有三個 Ubuntu 發(fā)行版。它們是“hoary”發(fā)行版,“breezy”發(fā)行版,和“dapper”發(fā)行版。有時還有一個“edgy”發(fā)行版。其中也包含了一個現(xiàn)不再支持"warty"發(fā)行版。

          1)hoary 發(fā)行版
          hoary 2005年4月發(fā)布

          2)breezy 發(fā)行版
          breezy 2005年10月發(fā)布。現(xiàn)在,除了上述目錄,新上載的軟件包的物理存儲位置為pool目錄。在breezy下同樣有main、restricted、universe和multiverse子目錄,它們的作用與hoary中的一樣。

          3)dapper 發(fā)行版
          dapper 2006年6月發(fā)布。提供了長達(dá)3年的支持,新版本以Ubuntu 6.06 LTS(Long Term Support)(長期支持),它針對一些大組織的需求對桌面版和服務(wù)器版都做個一定程度上的增強(qiáng)。新上載的軟件包的物理存儲位置為pool目錄。在dapper下同樣有main、restricted、universe和multiverse子目錄,它們的作用與hoary中的一樣。

          4)edgy 發(fā)行版
          edgy 發(fā)行版反映了系統(tǒng)的最新開發(fā)進(jìn)展。歡迎廣大用戶使用并測試這些軟件包,同時也提醒你們這些軟件包還不完善。使用edgy發(fā)行版的好處就是你可以獲得Ubuntu項目的最新更新—不過新東西也會出新問題,你得好壞兼收:-)

          發(fā)布版代號 :
          1)Warty Warthog 多疣的疣豬,
          2)Hoary Hedgehog 灰白的刺猬,


          3)Breezy Badger 活潑的獾,

          4)Dapper Darke 漂亮的鴨子,


          5)Edgy Eft 躁動的蜥蜴



          三.Ubuntu 發(fā)布版其它倉庫

          存在于dists目錄下的物理目錄名,例如breezy-updates和breezy-security,就是“附加的倉庫”。當(dāng)某個Ubuntu發(fā)行版處于維護(hù)階段。將包的必要升級和安全更新放在附加的倉庫里。其附加倉庫通常有 ***-updates(更新)、***-security(安全)、***-proposed(提議)、***-backports。

          四.pool目錄

          過去,軟件包均放在dists目錄下相應(yīng)發(fā)行版的子目錄中。這種做法產(chǎn)生了許多問題,當(dāng)鏡像站點進(jìn)行新版本發(fā)布時大量帶寬被消耗。

          現(xiàn)在軟件包均放進(jìn)一個巨大的“池子(pool)”,按照源碼包名稱分類存放。為了方便管理,pool目錄下按屬性再分類(main、restricted、 universe和multiverse),分類下面再按源碼包名稱的首字母歸檔。這些目錄包含的文件有:運行于各種系統(tǒng)架構(gòu)的二進(jìn)制軟件包,生成這些二進(jìn)制軟件包的源碼包。

          你可以執(zhí)行命令apt-cache showsrc mypackagename,查看“Directory:”行獲知每個軟件包的存放位置。例如:apache軟件包存放在 pool/main/a/apache/軟件包存放在lib*軟件包數(shù)量巨大,它們以特殊的方式歸檔:例如,libpaper軟件包存放在 pool/main/libp/libpaper/。

          諸如apt等命令訪問的索引文件仍位于dists目錄中。
          通常,你大可不必注意這些,新版的apt和舊版dpkg-ftp會自動處理它們。

          五.發(fā)布源目錄結(jié)構(gòu)

          在每個主目錄樹下(dists/dapper/main、dists/dapper/restricted、dists/dapper/universe、 dists/dapper/multiverse/,等)按芯片架構(gòu)又分了子目錄,每個子目錄中存放著在該芯片架構(gòu)下編譯的二進(jìn)制軟件包。
          binary-amd64/ AMD64 或 EM64T 架構(gòu)
          binary-i386/ 所有的使用 Intel/AMD/等 處理器的PC,


          binary-powerpc/ Apple Macintosh G3, G4, 和 G5


          binary-sparc/ Sun UltraSPARC 系統(tǒng)

          六.源代碼

            Ubuntu 系統(tǒng)中的main,universe組件有源代碼,不僅如此,許可證條款規(guī)定系統(tǒng)中所有的程序必須和其源代碼一起發(fā)行,或提供源代碼出售。


            通常源代碼發(fā)布在source目錄,該目錄同時處于所有架構(gòu)目錄中,更新的源碼則在pool目錄中。對于不太熟悉 Ubuntu 歸檔目錄結(jié)構(gòu)的用戶想獲得源代碼可以試試apt-get source mypackagename命令。

            有些軟件包,如著名的pine,由于許可證限制,只提供源碼包。

            restricted和multiverse目錄中的軟件包可能不提供源代碼,因為它們沒有正式加入 Ubuntu 系統(tǒng)。

          posted on 2013-01-01 16:06 so true 閱讀(1213) 評論(0)  編輯  收藏


          只有注冊用戶登錄后才能發(fā)表評論。


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 民勤县| 新竹县| 乌拉特中旗| 阜平县| 阿鲁科尔沁旗| 石柱| 清河县| 阿克陶县| 舒城县| 来凤县| 睢宁县| 阿瓦提县| 子洲县| 石首市| 平阳县| 扶余县| 吴堡县| 新田县| 南投市| 营山县| 滕州市| 苗栗市| 泗水县| 牟定县| 南投市| 胶州市| 沅江市| 苗栗市| 收藏| 万州区| 游戏| 攀枝花市| 微博| 读书| 收藏| 两当县| 越西县| 会宁县| 家居| 呈贡县| 岗巴县|