Linux軟件包管理(YUM)及編譯安裝

YUM

一、yum安裝使用:

1、Yumrpm的前端程序,用來解決軟件包相關依賴性,可以在多個庫之間定位軟件包,up2date的替代工具

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

3yum客戶端配置文件:

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

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

倉庫指向的定義:

[repositoryID]

name=Some name for this repository

baseurl=url://path/to/repository/

enabled={1|0}

gpgcheck={1|0}

gpgkey=URL

enablegroups={1|0}

failovermethod={roundrobin|priority}

默認為:roundrobin,意為隨機挑選;

cost= 默認為1000

 blob.png

 配置好的文件后,做更新:

 blob.png

#yum clean all  清理本地緩存

#yum makecache  構建本地緩存

4、yum-config-manager的使用:

1yum-config-manager的安裝:

A、該命令在最小化安裝的系統上是沒有的,需要安裝yum-utils-1.1.31-34.el7.noarch.rpm這個RPM包,如果是光盤安裝,需要另外安裝兩個依賴包:python-chardet.noarch 0:2.2.1-1.el7_1 python-kitchen.noarch 0:1.1.1-5.el7;也可以通過網絡安裝或者本地的YUM倉庫安裝,命令為:yum localinstall yum-utils-1.1.31-34.el7.noarch.rpm

B、如果是yum安裝,直接執行# yum install yum-utils -y

   2yum-config-manager的選項使用:

    yum-config-manager –add-repo=“倉庫路徑” 添加倉庫

    yum-config-manager –disable “倉庫名"      禁用倉庫

    yum-config-manager –enable  “倉庫名”     啟用倉庫

5、yum的命令使用:

  1 #yum repolist (顯示倉庫列表)

   blob.png

  2#yum list (顯示倉庫的所有程序包)或者yum list all (顯示倉庫的所有程序包和系統已安裝的程序包)

  3 #yum install (程序安裝);yum reinstall(程序重新安裝)

  4#yum update (程序升級);yum downgrade (程序降級)

  5#yum check-update (檢查可升級)

  6#yum remove (卸載程序)

  7#yum info (查看程序的詳細信息)

   blob.png

  8#yum provides (查看程序包由哪些程序提供)

   blob.png

  9#yum search (搜索程序包名,屬于模糊搜索)

  blob.png

  10#yum replist (查看程序的依賴程序)

  blob.png

  11#yum history (查看yum安裝的歷史)

      到日志文件查看:

  blob.png

     使用命令yum history查看:

  blob.png

  12#yum history info 6

  blob.png

  13#yum history undo 7  (相當于把歷史文件里面的卸載步驟給取消,即為安裝。)

  blob.png

  blob.png

 blob.png

   yum的命令行選項:只能單一次安裝,不能夠同時啟動多個安裝命令

–nogpgcheck:禁止進行gpgcheck

-y: 自動回答為“yes

-q:靜默模式

–disablerepo=repoidglob:臨時禁用此處指定的repo

–enablerepo=repoidglob:臨時啟用此處指定的repo

–noplugins:禁用所有插件

二、本地包和包組的使用:

    1、安裝及升級本地程序包:

yum localinstall rpmfile1 [rpmfile2] […]

(install替代)

yum localupdate rpmfile1 [rpmfile2] […]

(update替代)

   2、包組管理的相關命令:

yum groupinstall group1 [group2] […]  安裝包組

yum groupupdate group1 [group2] […] 升級包組

yum grouplist [hidden] [groupwildcard] […] 查看包組情況(含安裝與未安裝)[hidden]為查看隱藏包組

yum groupremove group1 [group2] […]  刪除包組

yum groupinfo group1 […]   包組信息頁內容查看

三、如何使用本地光盤作為YUM倉庫:

1、光盤掛載:

   #mount /dev/cdroom /mnt/cdrom  (手動掛載,機器重啟就丟失)

   Centos6autofs自動掛載:/misc/cd  (訪問即刻掛載上去)

2、創建本地配置文件:

   [cdrom]

baseurl=file:///mnt/cdrom(此處,建議優先使用這路徑:baseurl=file:///misc/cd

gpgcheck=0

3、yumrepo配置文件中可用的變量:

$releasever: 當前OS的發行版的主版本號

$arch: 平臺,i386,i486,i586,x86_64

$basearch:基礎平臺;i386

$YUM0-$YUM9:自定義變量

4、創建yum倉庫:

createrepo [options] <directory>

 

 

 

程序包編譯

一、程序包編譯安裝:

1Application-VERSION-release.src.rpm–> 安裝后,使用rpmbuild命令制作成二進制格式的rpm包,而后再安裝

2)源代碼–>預處理–>編譯–>匯編–>鏈接–>執行

?源代碼組織格式:

多文件:文件中的代碼之間,很可能存在跨文件依賴關系

C、C++make (項目管理器,configure –>

Makefile.in –> makefile)

c/c++編譯器: gcc

java: maven    

3 開發工具:

      編譯C源代碼:

準備:提供開發工具及開發環境

開發工具:make, gcc

開發環境:開發庫,頭文件

glibc:標準庫

  實現:通過“包組”提供開發組件

CentOS 6:

Development Tools

Server Platform Development

CentOS 7:

Development Tools

Development and Creative Workstation

4)安裝步驟:(以下三個步驟必須在解壓的源碼目錄下執行)

第一步:configure腳本

選項:指定安裝位置、指定啟用的特性   –help: 獲取其支持使用的選項

選項分類:

安裝路徑設定:

–prefix=/PATH: 指定默認安裝位置,默認為/usr/local/

–sysconfdir=/PATH:配置文件安裝位置

System types:支持交叉編譯

Optional Features: 可選特性

–disable-FEATURE

–enable-FEATURE[=ARG]

       Optional Packages: 可選包,

–with-PACKAGE[=ARG],依賴包

–without-PACKAGE,禁用依賴關系

    通過選項傳遞參數,指定啟用特性、安裝路徑等;執行時會參考用戶的指定以及makefile.in文件生成makefile

   autoconf: 生成configure腳本

   automake:生成Makefile.in

  注意:安裝前查看INSTALL,README

第二步:make   根據makefile文件,構建應用程序

 第三步:make install   復制文件到相應路徑

5)安裝后的配置:

A 二進制程序目錄導入至PATH環境變量中;

編輯文件/etc/profile.d/NAME.sh

export PATH=/PATH/TO/BIN:$PATH

B、 導入庫文件路徑

編輯/etc/ld.so.conf.d/NAME.conf

添加新的庫文件所在目錄至此文件中

讓系統重新生成緩存:ldconfig[-v]

C 導入頭文件

基于鏈接的方式實現:ln -sv

  D、 導入幫助手冊

編輯/etc/man.config|man_db.conf文件

添加一個MANPATH

 

編譯安裝事例:

1、  yum的配置和使用;包括yum repository的創建

blob.png

2、  編譯安裝apache 2.2源碼包,并啟動此服務(下面以安裝http為例)

安裝前的開發工具包組安裝:

blob.png

 1)先從本地ftp服務器上下載源碼包,如下圖。

 blob.png

 (2)使用命令#tar xvf httpd-2.2.29.tar.bz2,如下圖:

 blob.png

 (3)解壓完成后,進入源碼解壓目錄下:

 blob.png

 (4)執行前,先ls看看/usr/local目錄下是否存在同名的目錄;執行命令# ./configure –prefix=/usr/local/httpd –sysconfdir=/etc/httpd,指定了安裝的目錄和配置文件存放目錄

 blob.png

 blob.png

 5)生成了Makefile文件,并沒有報錯,這說明前面的步驟正確,如下圖:

 blob.png

 (6)至此,可以開始編譯;#make #make install 可以分開執行。在這,就一起執行。

 blob.png

 (7)完美編譯安裝完成:

 blob.png

 blob.png

 (8)安裝后的配置管理部署:

  A、配置環境變量:

 blob.png

 blob.png

  B、庫文件的配置:

 blob.png

 blob.png

  Cinclude頭文件的配置:

   #cd /usr/include

   #ln -s /usr/local/httpd/include httpd

 blob.png

  D、man幫助文件的配置:

 blob.png

 

 http啟動、重啟、停止測試:

 blob.png

 

 

 

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

(1)
Aaron_wangAaron_wang
上一篇 2016-08-26
下一篇 2016-08-26

相關推薦

  • 《 Git 權威指南 》學習筆記

    這個沒辦法直接發博客了,篇幅太長,無法直接在 Blog 上排版了,直接發上 pdf 文檔了。 接 《LNAMP Shell 部署腳本》 博文的內容,線上測試系統的 Git 環境部署。 整個 Git 環境包括了:     Git / Gitweb     Gitolite / Gerrit &nbsp…

    Linux干貨 2015-10-27
  • linux 記憶命令心得

    新開始學linux,要記住很多的命令,畢竟這是linux的根本,沒有這些命令,連操作都沒辦法進行。所以我寫這個的目的是我自己記憶,也是想幫助一下一同學習linux的同學們,提供自己記憶這些的方法,拋磚引玉,大家共同討論一下。 我的記憶方法就是分類,把命令分成輸出類,名詞累,操作類。 輸出類就是說的例如w,who,whoami,echo,ifcogfig,wh…

    Linux干貨 2017-07-15
  • 第六周作業補充-vim簡介及其使用方法詳細介紹

    What       Vim是由Vi發展出來的一個文本編輯器。代碼補全、編譯及錯誤跳轉等方便編程的功能特別豐富,在Unix& Unix Like操作系統中被廣泛使用。和Emacs并列成為Unix& Unix Like操作系統中最受歡迎的文本編輯器 When& Who  &nb…

    Linux干貨 2016-09-26
  • 進程管理

    linux維護工作中,常常需要對系統上運行的程序進行管理,那么進程管理就顯得相當重要。 進程初識 什么是進程?   進程是并發執行的程序在執行過程中分配和管理資源的基本單位,是一個動態概念。它代表CPU所能處理的單個任務。 什么是線程?   線程是程序流執行的最小單元,可以理解為進程中執行的一段程序片段。 進程與線程聯…

    Linux干貨 2016-09-07
  • sed使用詳解

    vim  ,sed 1.首先,sed作為一個流編譯器,它是對文本進行處理的,它和grep雖然都是對文本進行處理的,但是sed的處理機制和grep還是有很大的不同的,grep:文本過濾(模式:pattern)工具;grep, egrep, fgrep(不支持正則表達式搜索)sed:stream editor,文本編輯工具;awk:Linux上的實現g…

    Linux干貨 2016-08-11
  • 安全與加密、申請CA證書

    本章內容 v  1、安全機制  2、對稱加密  3、不對稱加密 4、散列算法  5、PKI 和CA v 在互聯網數據傳輸的過程的,數據的安全私密性是及其重要的,所以就有數據的加密和解密的過程。 數據加密,是一門歷史悠久的技術,指通過加密算法和加密密鑰將明文轉變為密文,而解密則是通過解密算法和解密密鑰將密文恢復為明文。它…

    Linux干貨 2016-12-04
欧美性久久久久