軟件包管理和磁盤管理

軟件運行和編譯

ABI :Application Binary Interface 應用程序二進制接口

    WindowsLinux不兼容

     PE格式   ELF格式

庫級別的虛擬化:

      LinuxWINE

      WindowsCywin

APIApplication Programming應用程序的開發接口

     POSIX 通用

程序源代碼–>預處理–>編譯–>匯編–>鏈接

靜態編譯:.a

    libxxx.a

    把程序對應的依賴庫復制一份到包

    升級難,需要重新編譯

    占用空間較多,遷移容易       

動態編譯:.so

    只把依賴加做一個動態鏈接

    libxxx.so

    占用空間較少,升級方便

 

包管理器

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

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

程序包管理器:

   debiandeb文件、dpkg包管理器

   redhatrpm文件、rpm包管理器

    rpmRedhat Package Manager

          RPM Package Manager

包命名

源代碼:name-VERSION.tar.gz|bz2|xz

rpm包命名方式:

   name-VERSION-release.arch.rpm

    例:bash-4.2.46-19.e17.x86­_64.rpm

常見的arch

   x86 i386 i486 i586 i686

   x86_64

   noarch

包:分類和拆包

   Application-VERSION-ARCH.rpm:主包

   Application-devel-VERSION-ARCH.rmp 開發子包

   Application-utils-VERSION-ARHC.rpm 其他子包

  Application-libs-VERSION-ARHC.rpm 其他子包

包之間:可能依賴,甚至循環依賴

解決依賴包管理工具:

  yumrpm包管理器的前端工具

  apt-getdeb包管理器前端工具

  zyppersuse上的rpm前段管理工具

  dnfFedora 18+ rpm包管理器前端管理工具

 

庫文件

查看二進制程序所依賴的庫文件

  ldd/PATH/TO/BINARY_FILE

管理及查看本機裝載的庫文件

  idconfig

  /sbin/ldconfig -p :顯示本機已經緩存的所有可用庫文件名及文件路徑映射關系

  配置文件:/etc/ld.so.conf,/etc/ld.so.conf.d/*.conf

  緩存文件:/etc/ld.so.cache

 

包管理器

程序包管理器:

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

1、包文件組成(每個包獨有)

   RPM包內的文件

   RPM的元數據,如名稱,版本,依賴性,描述等安裝或卸載時運行的腳本

2、數據庫(公共):/var/lib/rpm

   程序包名稱及版本

   依賴關系

   功能說明

   包安裝后生成的各文件路徑及校驗碼信息

 

程序包的來源

管理程序包的方式:

  使用包管理器:rpm

  使用前端工具:yumdnf

獲取程序包的途徑:

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

       CentOS鏡像:

        https://www.centos.org/download/

        http://mirrors.aliyun.com

        http://mirrors.sohu.com

        http://mirrors.163.com

 2.項目官方站點

 3.第三方組織

   Fedora-EPEL

 Rpmforge :RHEL推薦,包很全

 搜索引擎:

          http://pkgs.org

          http://rpmfind.net

          http://rpm.pbone.net

          http://sourceforge.net/

 4.自己制作

 

rpm包管理

CentOS系統上使用rpm命令管理程序包:

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

     安裝:

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

           -vverbose

           -vv

           -h:顯示執行進度

     rpm -ivh 常用

     [install-options]

           –test:測試安裝

           –nodeps:忽略依賴關系

           –replacepkgs| replacefiles 覆蓋安裝 | 替換安裝

           –nosignature:不檢查數字簽名

           –nodigest:不檢查包完整性

           –noscripts:不執行程序包腳本

 

rpm包升級

rpm -U:安裝有舊版本程序包,則“升級”,如果不存在舊版本程序包,則“安裝”

rpm -F:安裝有舊版本程序包,則“升級”,如果不存在舊版本程序包,則不執行升級操作

   –oldpackage:降級

   –force:強制安裝

包查詢

rpm2cpio 包文件|cpio itv 預覽包內文件

rpm2cpio 包文件|cpio -id .conf”釋放包內文件

rpm -a 查詢所有包

    -f 查看指定的文件由哪個程序包安裝shengc

    -p 針對未安裝的程序包文件做查詢操作

    –changelog 查詢rpm包的changelog

    -c 查詢程序的配置文件

    -d 查詢程序的文檔

    -i information

    -l 查看指定的程序包安裝后生成的所有文件

    –scripts 程序包自帶的腳本

    -R 查詢指定的程序包所依賴的CAPABILITY

 

包校驗

rpm -V 看是否更改過

     S 大小

     M 文件類型

     5 哈希值

     D 設備的主要和次要號碼

     L 鏈接

     U 所有者

     G 所屬組

     T m時間

數據庫:/var/lib/rpm

yum

yum rpm的前端程序,可解決軟件包相關依賴性,可在多個倉庫之間定位軟件包,up2date的代替工具

     yum repositoryyum repo ,儲存了眾多rpm包,以及包的相關的元數據文件(放置特定目錄repodata下)

     文件服務器:

             ftp://

             http://

             file://

yum配置文件

   /etc/yum.conf:為所有倉庫提供公共配置

   /etc/yum.repos.d/*.repo:為倉庫的指向提供配置

   倉庫指向的定義:

              [倉庫名稱]

              baseurl=地址

              gpgcheck={1|0}

              enabled={1|0}      

    常用的幾項

yum

阿里云repo文件:

    http://mirrors.aliyun.com/repo/

CentOS系統yum

    阿里云:

    http://mirrors.aliyun.com/centos/$releasever/os/x86_64/

    教學環境:

    http://172.16.0.1/cobbler/ks_mirror/$releasever/

Epelyum源:

    阿里云:

    http://mirrors.aliyun.com/epel/$releasever/x86_64

    教學環境:

    http://172.16.0.1/cobbler/ks_mirror/$releasever/x86_64/

yum命令

  yum repolist [all|enabled|disabled]顯示倉庫列表

  yum list 顯示程序包

  yum install 安裝程序包

  yum reinstall 重新安裝

  yum update 升級程序包

  yum downgrade 降級程序包

  yum check-update 檢查升級

  yum remove 刪除

  yum info 查看包的信息

  yum clean 清除緩存 /var/cache/yum/$basearch/$releasever緩存

  yum search 搜索指定相關的包

查看yum 事務歷史:

  yum history

  yum history info 6 查看歷史

  yum history undo 6 撤銷

 

centos7實現光盤yum

1安裝

yum install autofs

2現在啟動

systemctl  start autofs

3開機啟動

systemctl  enable autofs

4 cat /etc/yum.repos.d/base.repo

[centos7]

name=centos7 repo

baseurl=file:///misc/cd

gpgcheck=1

gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7

 

實驗:實現yum 網絡倉庫

1 安裝網絡服務ftp為例

yum install  vsftpd

2現在啟動

systemctl  start vsftpd centos7

service vsftpd start   centos6

3開機啟動

systemctl  enable vsftpd centos7

chkconfig vsftpd on  centos6

4 清除防火墻

iptables -F

systemctl  disable firewalld.service   centos7

chkconfig iptables off centos6

5復制rpm包文件到共享的網絡目錄

/var/ftp/pub/app/

6 創建yum metadata 生成repodata/

yum install createrepo

createrepo  /var/ftp/pub/app/

7 客戶端配置

[app]

baseurl=ftp://192.168.33.128/pub/app/

gpgcheck=0

 

實驗:在centos7 編譯安裝httpd2.4.25

1安裝源碼包

download 源碼包

tar xvf  httpd-2.4.25.tar.bz2

2安裝開發包組

yum groupinstall “Development tools”

3 cd /root/httpd-2.4.25

yum install apr-devel

yum install apr-util-devel

yum install pcre-devel

./configure –prefix=/app/httpd24 –sysconfdir=/etc/httpd24/

4  make

5 make install

6 軟件使用

指定路徑

cat /etc/profile.d/httpd24.sh

PATH=$PATH:/app/httpd24/bin

7 apachectl start|stop

netstat -tnl 查看端口

 

磁盤管理

機械硬盤結構:

軟件包管理和磁盤管理

head:磁頭

track:磁道

cylinder:柱面

sector:扇區,512bytes

 

分區:

兩種分區方式:MBR,GPT

MBR: 主要分區  1-4

      擴展1-4

      邏輯 5-

      sector 512

軟件包管理和磁盤管理

GPT:

軟件包管理和磁盤管理

分區工具

  fdisk 創建MBR分區

  gdisk 創建GPT分區

  parted 高級分區操作

fdisk /dev/sdb

gdisk /dev/sdb 類似fdisk

fdisk -p 分區列表

      -t 更改分區類型

      -n 創建新分區

      -d 刪除分區

      -w 保持并退出

      -q 不保存并退出

新加分區同步:partx -a /dev/..

刪除分區同步:partx -d –nr M-N /dev/..

partprobe 同步磁盤

partde用法,實時生效

  parted /dev/sdb mklabel gpt|msdos 建分區

  parted /dev/sdb print 看分區

  parted /dev/sdb mkpart primary 11000M

  parted /dev/sdb rm 1 刪除第一個分區

  parted -l 查看所有硬盤分區

 

文件系統

linux文件系統:ext2,ext3,ext4,xfsswap

日志型文件系統:ext3,ext4,xfs…

非日志型文件系統:ext2,vfat

mkfs命令:

    mkfs.FS_TYPE /dev/DEVICE

         ext4

         xfs

         btrfs

         vfat

    mkfs       -L  設定卷標

blkid 查看塊信息

blkid -U UUID 根據UUID來查找對應設備

findfs LABEL …根據卷標搜索

findfs UUID…根據UUID搜索

tune2fs -U UUID:修改UUID

uuidgen:取新的UUID

fsck -y :修復

 

掛載mount

掛載方法:moumt DEVICE MOUNT_POINT

mount -L:根據卷標掛載

mount -U:跟據UUID掛載

      -t:指明文件系統

      -n:隱藏掛載

      -B: 文件掛載文件

      -o remount:指定權限

cat /proc/mounts查看最全的掛載信息

findmnt MOUNT_POINT查看是否掛載

fuser -v …        查看訪問文件的進程

fuser -km …       殺掉進程

umount … 取消掛載

mount -a 刷新掛載

 

swap 實現

1fdisk 分區

fdisk  sdc1 t 82

2 mkswap /dev/sdc1 -L swap2 格式化

3 vim /etc/fstab 寫入vim

/dev/sdc1  swap swap pri=100 0 0

4生效 swapon -a啟用

5 swapon -s 查看

刪除swap分區

1 swapoff /dev/sdc1禁用

2 free

3 vim /etc/fstab

4 fdisk /dev/sd刪除分區

 

文件swap

dd if=/dev/zero of=/swapfile bs=1Mcount=2048

mkswap /swapfile

vim /etc/fstab

swapon -a

刪除swap file

swapoff /swapfile

 vim /etc/fstab

 rm -f /swapfile

原創文章,作者:yaobinbin,如若轉載,請注明出處:http://www.www58058.com/74111

(0)
yaobinbinyaobinbin
上一篇 2017-04-24 19:48
下一篇 2017-04-24

相關推薦

  • 網絡管理之網絡配置與網絡組

    網絡屬性配置 回顧: TCP/IP協議棧:物理層,數據鏈路層,網絡層,傳輸層,應用層,     鏈路數據層:以太網幀     網絡層:IP報文      傳輸層:TCP,UDP     應用…

    Linux干貨 2016-09-06
  • DNS資源記錄類型

      資源記錄   資源記錄(Resource Records),簡稱RRs。是指每個域所包含的與之相關的資源。例如,每個RR都包括這個域的所屬(RR是從哪個域名中得到的),類型(什么樣的資源存在于這個RR中),TTL(time to live,存活時間)等等。 DNS包括七大資源記錄 A記錄:也稱為主機記錄,是DNS名稱到IP地址的映射,用于正向解…

    Linux干貨 2017-02-08
  • 救援模式安裝grub

    如果之前mbr沒有備份,而后grub損壞進不了系統,只能用系統光盤或U盤開機進入救援模式安裝grub,操作如下 1.光盤啟動,進入救援模式 2.切換根目錄 # chroot /mnt/sysimage 3.安裝 grub # grub-install /dev/sda 4.重新啟動        &…

    Linux干貨 2017-01-13
  • hadoop分布式集群

    分布式集群的實現 環境: 192.168.36.129 ? node1:NN,SNN,RM ?192.168.36.130 ?node2:DN,NM 192.168.36.132 ? node3:DN,NM 192.168.36.133 ? node4:DN,NM 配置java環境,每個節點時間同步,基于主機名互相通信,定義/etc/hosts 文件 &nb…

    2017-12-09
  • heartbeartv2實現lamp高可用-week17

    3、基于heartbeat v2 crm實現HA LAMP組合;要求,部署wordpress,用于編輯的文章中的任何數據在節點切換后都能正常訪問; 拓撲: 環境: CentOS6.6NFS: 172.16.0.34 輸出mysql數據目錄ntp: 172.16.0.31 時間服務器node1: 172.16.0.32 heartbeart+httpd+php…

    Linux干貨 2017-05-23

評論列表(1條)

  • renjin
    renjin 2017-04-28 11:25

    對linux下的軟件包管理和磁盤管理進行了詳細的介紹,內容寫的很詳細排版也很好,可以把實驗的流程再加入進來,加油,加油!

欧美性久久久久