linux 程序包管理

如何實現在linux安裝,更新程序。

硬件--內核(系統調用接口)--庫調用接口(32位,64位)

API:Application Programming Interface 

POSIX:可移植系統,源代碼級別各系統都是兼容的。

程序的源代碼文件--預處理--編譯--彙編--鏈接

靜態編譯:不依賴外部環境

共享編譯:直接調用lib .so 文件

linux支持elf,windows支持exe,因爲ABI不同(應用二進制接口)

庫級別虛擬化,WINE 可以在linux跑windows程序,CYWIN在windows跑linux程序


應用及開發(java,python,php,perl,rubby)和系統及開發(c,c++)


二進制應用程序的組成部分:

二進制文件,庫文件,配置文件,幫助文件


程序包管理器:

debian:deb包,包管理器dpt

rehat:rpm ,redhat package manager

gentoo

archlinux 

源代碼:name-VERSION.tar.gz

rpm包命名方式(使用源代碼製作而成)name-VERSION-ARCH.(指定平臺)rpm


常見的arch

x86:i386,i486,i586,i686

x86_64:x86_64,amd64

powerpc:ppc

跟平臺無關:noarch


yum rpm包管理器前端安裝工具

apt-get :deb包管理器前端工具

zypper:suse上的rpm包前端管理工具

dnf:Fedora22+ rpm包管理器前端管理工具

查看二進制程序所依賴的庫文件  ldconfig(/erc/id.so.conf)

ldd /path/to/binary


程序包管理

功能:將編譯好的應用程序的各個組成文件打包成一個或幾個程序包文件,從而方便快捷的實現程序包的安裝,卸載,查詢升級和校驗等管理操作。

1程序的組成清單(每個包獨有)

    文件清單

    安裝或卸載運行的腳本

2數據庫(公共)

    程序包名稱及版本

    依賴關係

    功能說明

    安裝生成的個文件的文件路徑及校驗碼信息


管理程序包的方式

使用包管理器工具:rpm

使用前端工具:yum,dnf


rpm

1系統發版的光盤或官方服務器

        centos鏡像http://mirrors.aliyun.com ,https://mirrors.sohu.com,https://morrors.163.com

項目官方:

第三方組織:Fedora-EPEL

 搜索引擎:https://rpmfind.net  http://pkgs.org   


centos rpm 命令管理程序包

安裝,卸載,升級,查詢,校驗,數據庫維護

安裝:

rpm {-i|--install} [install-options] PACKAGE_FILE ...

-i 安裝install

-h  以#顯示程序包管理執行進度,每個#表示是2%進度

-v 顯示安裝詳細信息

[]install -option]

    --test 測試安裝,單不真實執行,dry run

    --nodeps:忽略依賴關係(循環依賴)

    --relacepkgs 重新安裝

升級:

       rpm {-U|--upgrade} [install-options] PACKAGE_FILE ...


       rpm {-F|--freshen} [install-options] PACKAGE_FILE ...

upgrade: 安裝有舊版程序包,則‘升級’,如果不存在舊版程序包則安裝

freeshen:安裝有舊版程序包,則升級,如果不存在舊版程序包,則不執行操作


rpm -Uvh package

rpm -Fvh package


注意:1不要對內核做升級操作,linux支持多內核版本並存,因此,對直接安裝新版本內核

            2如果原程序包的配置文件安裝後曾被修改,升級時,新版本的提供的同一個配置文件並不會

            直接覆蓋老版本的配置文件,而把新版本的文件重命名(.rpmnew)後保留

查詢:rpm {-q|--query} [select-options] [query-options]

select-options

-a 所有包

-f  查詢指定的文件有哪個包安裝生成

-p /path/to/package_file 針對尚未安裝的程序包文件做查詢

--what'provide 查詢指定的文件由哪個包提供

--whatrequire 查詢指定的文件被哪個包所依賴


[query-options]

--changelog 查詢rpm包的changelog

-c 查詢配置文件

-d 查詢幫助文檔

-i 簡要信息

-l  顯示安裝生成的所有文件

-R 查詢指定程序依賴

--provides 列出指定程序包所提供的capability






發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章