17_Linux軟件管理

軟件包管理
應用程序:
  程序,Architecture
C語言:源代碼-->(編譯)二進制格式
腳本:解釋器(二進制程序)
源代碼-->編譯-->連接-->運行
  程序
    庫
      靜態
      動態

      靜態連接
      動態連接
        共享庫

配置文件:
dir=/PATH/TO/SOMEWHERE

程序組成部分
  二進制程序
  庫
  配置文件
  幫助文件

-----這些就能啓動一個系統----
/etc,/bin,/sbin,/lib
  系統啓動須要用到的程序,這些目錄不能掛載額外的分區,必須在根文件系統的分區上

/usr/
  bin
  sbin
  lib

  /usr放的是,操做系統核心功能,能夠單獨分區
--------------------

--------第三方-------
/usr/local
  bin
  sbin
  lib
  etc
  man

/opt

/proc

/sys
  不能單獨分區,默認爲空

/dev:設備,不能單獨分區
  udev

/root:不能單獨分區

/var:建議單獨分區

/boot:內核,initrd(initramfs)

POST-->BIOS(HD)-->(MBR)bootloader(可以識別相應的文件系統結構,ext2,ext3,xfs...)-->內核


程序:指令+數據
  指令:芯片
    CPU:普通指令,特權指令
    指令集
C語言
  Powerpc:二進制格式


x86:彙編
powerpc:彙編

軟件包管理器的核心功能
一、製做軟件包
二、安裝、卸載、升級、查詢、校驗

Redhat,SUSE,Debian

Redhat,SUSE:rpm
Debian:dpt

前端工具:yum,apt-get
後端工具:rpm,dpt

yum:Yellowdog Updater  Modified

rpm命令:
  rpm:
    數據庫:/var/lib/rpm
  rpmbuild:

安裝、查詢、卸載、升級、校驗、數據庫的重建等工做

rpm命名:
包:組成部分
  主包
    bind-9.7.1-1.i586.e15.rpm
  子包:
    bind-libs-9.7.1-1.i586.e15.rpm
    bind-utils-9.7.1-1.i586.e15.rpm
包名格式:
  name-version-release.arch
  bind-major.minor.release-release.arch.rpm

主版本號,重大改變
次版本號,某個子功能發生重大變化
發行號:修正了部分bug,調整了一點功能

rpm包:
  二進制格式(通常都二進制格式)
    rpm包做者下載源程序,編譯配置完成後,製做成rpm包
  源碼格式

rpm:
一、安裝:
rpm -i /PATH/TO/PACKAGE_FILE
  -h:以#號顯示安裝進度,每一個#表示2%
  -v:顯示詳細過程
  -vv:更詳細的過程

rpm -ivh /PATH/TO/PACKAGE_FILE
  --nodeps:忽略依賴關係
  --replacepkgs:從新安裝,替換原有安裝
  --force:強行安裝,能夠實現重裝或降級

二、查詢
rpm -q PACKAGE——NAME:查詢指定的包是否已經安裝
rpm -qa :查詢已經安裝的全部包

rpm -qi PACKAGE_NAME:查詢指定包的說明信息
rpm -qc PACKAGE_NAME:查詢指定包安裝的配置文件
rpm -ql PACKAGE_NAME:查詢指定包安裝後生成的文件列表
rpm -qf /path/to/somefile:查詢指定的文件是由哪一個rpm包安裝生成的

rpm -q --scripts PACKAGE_NAME:查詢指定包中包含的腳本

rpm -qf /path/to/somefile:查詢指定的文件是由哪一個rpm包安裝生成的

若是某rpm包還沒有安裝,咱們需查詢其說明信息,安裝之後會生成的文件
rpm -qpi /PATH/TO/PACKAGE_FILE
rpm -qpi

三、升級
rpm -Uvh /PATH/TO/PACKAGE_FILE:若是裝有老版本的,則升級,不然,則安裝
rpm -Fvh  /PATH/TO/PACKAGE_FILE:若是裝有老版本的,則升級,不然,退出
  --oldpackage:降級

四、卸載
rpm -e PACKAGE_NAME
  --nodepe

五、校驗
rpm -v PACKAGE_NAME

六、重建數據庫
  rpm
    --rebuilddb:重建數據庫,必定會從新創建
    --initdb:初始化數據庫,沒有才創建,有就不用創建

七、校驗來源合法性,及軟件包完整性

# ls /etc/pki/rpm-gpg/
RPM-GPG-KEY-CentOS-7

rpm -K /PATH/TO/PACKAGE_FILE
  dsa,gpg:驗證來源合法性,也即驗證簽名,可使用--nosignature,略過此項
  sha1,md5:驗證軟件包完整性,可使用--nodigest,略過此項

rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7 :導入密鑰文件


=============================
rpm-->yum
HTML:HyperText Markup Language
XML:Extensible Markup Language

XML,JSON:版結構化數據

yum倉庫中的元數據
primary.xml.gz
  全部RPM包的列表
  依賴關係
  每一個RPM安裝生成的文件列表
filelists.xml.gz
  當前倉庫中全部RPM包的全部文件列表
other.xml.gz
  額外信息,RPM包的修改日誌

repomd.xml
  記錄的是上面三個文件的時間戳和校驗和

yum install zsh

comps*.xml:RPM包分組信息


如何爲yum定義repo文件
[Repo_ID]
name=Description
buseurl=
  ftp://
  http://
  file://
enabled={1|0}
gpgcheck={1|0}


yum [options] [command] [package ...]

-y:自動回答爲yes
--nogpgcheck

list:列表
  支持glob
  all
  available:可用的,倉庫中有但還沒有安裝的
  installed:已經安裝的
  updates:可用的升級

clean:清理緩存
  [ packages  |  headers  | metadata  |  dbcache  |  all]

repolist:顯示repo列表及其簡要信息
  all
  enabled:默認
  disabled

install:安裝
yum install PACKAGE_NAME

update:升級
update_to:升級爲指定版本

remove|erase:卸載

info:

provides|whatprovides:查看指定的文件或特性是由哪一個安裝包生成的

groupinfo
grouplist
groupinstall
groupremove
groupapdate

/media/cdrom/{ Server,VT,Cluster,ClusterStorage }

如何建立yum倉庫:
createrepo

http://172.16.0.1/yum/{ Server,VT }




RPM安裝:
  二進制格式:
    源程序-->編譯-->二進制格式
      有些特性是編譯選定的,若是編譯未選定此設定,將沒法使用
      rpm包的版本會落後於源碼包,甚至落後不少

定製:手動編譯安裝

編譯環境:開發環境
開發庫:開發工具

Linux:C
GUN:C

C,C++:
gcc:GUN C Complier,C
g++:

make:項目管理工具,
  makefile:定義了make(gcc,g++)按何種次序去編譯這些源程序文件中的源程序

automake,-->makefile.in-->makefile
autoconf,-->configure

make install


手動編譯安裝的三步驟
前提:準備開發環境(編譯環境)
# ./configure
  --help:獲取腳本的使用格式
  --prefix=/path/to/somewhere:指定安裝路徑
  --sysconfdri=/PATH/TO/CONFFILE_PATH:指定配置文件路徑
  功能:一、讓用戶選擇編譯特性,二、檢查編譯環境
# make
#make install
(上面這兩條能夠寫成make &&make install)


編譯軟件包若是咱們把它安裝在非默認路徑下。。
一、要修改PATH環境變量,以可以識別此程序的二進制文件路徑
  修改/etc/profile文件
  在/etc/profile.d/目錄創建一個以.sh爲名稱後綴的文件,在裏面定義export PATH=$PATH:/path/to/somewhere
二、默認狀況下,系統搜索庫文件的路徑/bin,/usr/lib;要增添額外搜尋路徑
  在/etc/ld.so.conf.d/中建立以.conf爲後綴名的文件,然後把要增添的路徑直接寫至此文件中
  # ldconfig 通知系統從新搜尋庫文件
  -v:顯示從新搜尋庫的過程
三、頭文件:輸出給系統
  默認:/usr/include
  增添頭文件搜尋路徑,使用連接進行
  /usr/local/tengine/include/    /usr/include/
  兩種方式:
  ln -s /usr/local/tengine/include/*    /usr/include/    或
  ln -s /usr/local/tengine/include/    /usr/include/tengine
四、man文件路徑:安裝在--prefix指定的目錄下的man目錄:/usr/share/man
  一、man -M /PATH/TO/MAN_DIR COMMAND
  二、在/etc/man.config中添加一條MANPATH


netstat命令:
  -r:顯示路由表
  -n:以數字方式表示
  -t:創建tcp鏈接
  -u:創建udp
  -l:顯示監聽狀態的鏈接
  -p:顯示監聽指定的套接字的進程的進程號及進程名




前端

相關文章
相關標籤/搜索