Linux系統程序包的管理-Yum及編譯安裝

      Yum 是通過分析RPM的標頭數據后,根據各軟件的依賴關系制作出有依賴關系時的的解決方案,然后可以自動處理軟件的依賴性問題,以解決軟件安裝或移除與升級的問題。

      由于發行版必須要先釋放軟件,然后將軟件放置于yum服務器上面,以提供用戶端用來安裝與升級。因此,我們想要使用yum的功能時,必須要先找到適合的yum server才行。事實上,CentOS在釋放軟件的時候已經制作好了yum源,只要能夠連上Internet,就可以使用yum。在這里,向大家介紹一下yum本地倉庫的配置。

      制作本地yum源有兩種方式:第一種直接使用光盤鏡像,不過此方法只適用于本機;第二種創建本地yum倉庫,使用http或ftp等方式向外部yum repository。

第一種:如何使用光盤作為yum repository

      1、先將光盤掛載到指定位置,例如:創建/media/cdrom這個目錄用來作為掛載點,mount /dev/sr0 /media/cdrom。在這里要提一下/misc/cd這個特殊的目錄,cd到這個目錄下,光盤會自動掛載的該目錄下。在CentOS6中已經默認安裝此功能,而7中我們需要安裝autofs:

Linux系統程序包的管理-Yum及編譯安裝 #安裝autofs

Linux系統程序包的管理-Yum及編譯安裝 #啟用autofs服務

Linux系統程序包的管理-Yum及編譯安裝 #將其設置為開機自啟

通過df我們可以看到光盤的掛載情況

 Linux系統程序包的管理-Yum及編譯安裝

      2、在/etc/yum.repos.d/目錄下創建.repo為后綴名的配置文件,基本內容如下所示(因為CentOS在釋放軟件的時候已經制作好了yum源,在這里我們可以將/etc/yum.repos.d/下的所有文件進行備份,然后將其刪除):

Linux系統程序包的管理-Yum及編譯安裝

第二種:創建本地yum倉庫

      如果你作為一個企業的管理人員,為了方便公司內部網絡中的服務器安裝軟件,同時也節省網絡帶寬,此時可以在公司內部創建一個yum倉庫。此處以CentOS6為例(CentOS7步驟與6基本相同):

ftp服務:

  1、首先安裝并啟用vsftpd服務

       yum -y install vsftpd 安裝vsftpd

       service vsftpd start 啟用vsftpd服務 (在7中 用 systemctl start vsftpd)

       chkconfig vsftpd start 將其添加至開機啟動項(在7中用systemctl enable vsftpd)

       iptables -F  清空防火墻規則

       service iptables stop (在7中用systemctl  stop  iptables)

       chkconfig iptables off 不將防火墻開機自啟(在7中用systemctl disable firewalld.service)

  2、打開ftp服務器的目錄:cd  /var/ftp/pub/

  3、創建一個app目錄用來存放rpm包:mkdir app

  4、安裝createrepo工具:yum install createrepo

  5、復制rpm包到 app目錄下:cp /misc/cd/Packages  /var/ftp/pub/app/

  6、創建rpm元數據存儲庫:createrepo  /var/ftp/pub/app/

  7、此時訪問ftp://你的CentOS6的地址就可以了

 Linux系統程序包的管理-Yum及編譯安裝

http服務:

Linux系統程序包的管理-Yum及編譯安裝

因為httpd服務安裝好會有一個歡迎界面,要不顯示此頁面可注釋/etc/httpd/conf.d/welcome.conf 里的所有行

在這里要提一下,rpm包的存放位置在/var/www/html

以ftp服務為例創建yum庫:

Linux系統程序包的管理-Yum及編譯安裝

 注意,ftp地址要到存在repodata的目錄

yum命令的使用:

       yum [options] [command] [package…]

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

              list [available|installed|updates]
顯示程序包

              install package1 [package2]
[…] 安裝程序包

              reinstall package 重新安裝

              update package  升級安裝

              downgrade package 降級安裝

              check-update 檢查可用升級

              remove | erase package 卸載程序包

              info package 查看程序包的信息

              provides | whatprovides  feature1 … 查看指定的特性(可以是某文件)是由哪個包提供的

              clean all 清理本地緩存

       查看yum的歷史:

              history [info|list|packages-list|packages-info]

       撤銷對應的第#個歷史中命令

              history undo #

       查看對應的第#個歷史的信息

              history info #

       包組的管理:

              groupinstall group1(包組的名字中存在空格,要用” ”,在這里不區分大小寫)    

              groupremove group1 卸載包組

grouplist  group1顯示包組的列表

yum的命令行選項:

       –nogpgcheck:不進行gpg 檢查

       -y:自動回答“yes”

       -q:靜默模式

yum有一些內置變量,用于保存當前平臺的相關信息:

       $releasever:當前的CentOS的版本

       $basearch:基礎平臺 例如i386(32位)、x86_64

如可在yum的配置文件中適當使用:

       例如:定義baseurl路徑時 baseurl= http://172.18.0.1/fedora-epel/$releasever /$basearch /

                   其實際路徑為http://172.18.0.1/fedora-epel/6/x86_64/

源代碼編譯安裝程序

       源碼安裝首先依賴于環境的支持,即編譯開發工具、以及各個被依賴到的程序包的開發組,另外還需要定制的編譯參數來進行編譯安裝

       1、編譯開發工具(包組)有:

              Development tools

              Server Platform Development

              Desktop Platform Development

              Debug Tools

       2、被依賴的程序包的開發組件:

              1)、編譯安裝被依賴的程序

              2)、安裝相關程序的名稱中包含devel的子包

       源代碼程序中會將程序分隔保存在多個文件中,文件間或許存在依賴關系,因此,編譯時可能需要按照特定次序進行編譯;此時,一般會使用項目管理工具(通常也會稱為構建工具GNU make)對其進行管理;構建工具會調用合適的編譯器,并根據配置文件(Makefile)中定義的次序對源代碼文件進行編譯。需要注意的是:

       1、每個項目的程序員開發完成某版本后,會使用autoconf為程序代碼生成一個腳本文件:configuer;其功能:此腳本會收集當前系統上的開發環境中所依賴的各組件的版本、特性等,并檢查所依賴的環境是否能滿足,最后會根據Makefile.in文件生成一個makefile文件;

       2、每個項目的開發員開發完成某個版本后,會使用automake為程序代碼生成一個makefile模板文件,即Makefile.in。

編譯安裝過程如下:

       1、運行configure腳本;

              Configure腳本的運用:

                     –help:查看幫助信息;

                     –prefix=/path/:指定默認安裝路徑

                     –sysconfdir=/path/ :指定配置文件的安裝路徑

                     –with/without-CAPABILITY : 依賴/不依賴的程序包

                     –enable/disable-FEATURE : 啟用/禁用某個特性

 運行過程中會需要手動安裝依賴包,將提示缺少的包后加上-devel 手動安裝(yum)即可

       2、運行make命令,完成項目構建;

       3、運行make install命令,完成安裝。

原創文章,作者:Immortals、zcy,如若轉載,請注明出處:http://www.www58058.com/74673

(0)
Immortals、zcyImmortals、zcy
上一篇 2017-05-02
下一篇 2017-05-02

相關推薦

  • 源碼編譯安裝http

    為什么需要編譯安裝軟件?   1、軟件在編譯期間需要配置:比如需要指定安裝路徑,定制模塊等功能;   2、軟件需要統一安裝路徑:在編譯安裝時可以方便指定這些路徑;   3、需要最新的版本:對于某些軟件來說可能需要最新的版本。 編譯前的準備工作:     1、安裝開發工具:make、gcc等…

    Linux干貨 2016-08-24
  • Linux程序包管理方式

    Linux程序包安裝和管理方式共計三種:          一、[yum|dnf],通過官網或者其他開源網站提供的文件服務器,本機鏡像源等途徑進行安裝。         二、rpm,通過官網或者其他開源網站通過…

    Linux干貨 2016-07-29
  • linux文件權限

    一、前言 在linux中,每個目錄或者文件都有相對應的權限,linux通過文件屬主(user),文件屬組(group),其它人(order)對一個文件或者目錄控制讀寫執行權限,當然在這些基本權限之外還有特殊權限,facl(file access control list)等。 二、文件基本權限    2.1:屬主、屬組、order概念 &…

    Linux干貨 2015-08-17
  • Shell腳本-循環基礎

    Shell腳本-循環基礎 背景: 正在學習Shell腳本之循環,發現Shell的循環和其他編程語言大同小異,邏輯上都是相通的,但在使用格式上卻有點不同,在學習完Shell循環后,將學習的心得體會記錄下來,以備今后復習。 介紹: 什么是Shell腳本:       shell script是利用shell的功能…

    2017-08-26
  • Vim 末行模式 & crontab & scripts 練習

    1、復制/etc/rc.d/rc.sysinit文件至/tmp目錄,將/tmp/rc.sysinit文件中的以至少一個空白字符開頭的行的行首加#;   ~]# cp /etc/rc.d/rc.sysinit /tmp     %s@^[[:space:]]\+\*@#&@g     (使用元字符 有幾…

    Linux干貨 2016-10-31
  • 內核編譯

    單內核體系設計、但充分借鑒了微內核設計體系的優點,為內核引入模塊化機制。 內核組成部分核心,一般為bzImage,通常在/boot目錄下,名稱為vmlinuz-VERSION-RELEASE;: kernel: 內核 kernel object: 內核對象,一般放置于/lib/modules/VERSION-RELEASE/ [ ]: N [M]: M [*…

    Linux干貨 2015-11-06
欧美性久久久久