select基本用法和軟件包管理

一、select語句

    select語句在腳本中用于創建菜單,按數字順序排列的菜單項顯示在標準輸出上,并用PS3提示符,等待用戶輸入。用戶輸入菜單中的某個數字,執行相應的命令,并被保存在內置變量REPLY中。

用法:

    select NAME [in WORDS … ;] do COMMANDS; done

注意:

    select默認無限循環,因此,要配合break或ctrl+c退出循環,或配合exit退出腳本。

blob.png

    select可以與case配合使用

blob.png

二、rpm

    rpm(RedHat Package Manager)類似于windows中的“添加/刪除程序功能”,rpm執行安裝包分為二進制包和源代碼包,其中二進制包可以直接安裝在程序中,,而源代碼包將會由rpm自動編譯、安裝。源代碼包一般以src.rpm作為后綴。

    安裝:

        rpm {-i|–install} [INSTALL-OPTIONS] PACKAGE_FILE…

            -v    詳細顯示

            -vv    更加詳細顯示

            -h    用#顯示程序包執行進度

    

            [install-options] 

                –test: 測試安裝,但不真正執行安裝;dry run模式 

                –nodeps:忽略依賴關系 

                –replacepkgs | replacefiles 

                –nosignature: 不檢查來源合法性 

                –nodigest:不檢查包完整性 

                –noscipts:不執行程序包腳本片斷 

                    %pre: 安裝前腳本; –nopre 

                    %post: 安裝后腳本; –nopost 

                    %preun: 卸載前腳本; –nopreun 

                    %postun: 卸載后腳本; –nopostun

    升級

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

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

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

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

            rpm -Uvh PACKAGE_FILE … 

            rpm -Fvh PACKAGE_FILE … 

                –oldpackage:降級 

                –force: 強行升級

注意: 

(1) 不要對內核做升級操作;Linux支持多內核版本并存,因此 ,對直接安裝新版本內核 

(2) 如果原程序包的配置文件安裝后曾被修改,升級時,新版本 的提供的同一個配置文件并不會直接覆蓋老版本的配置文件,而 把新版本的文件重命名(FILENAME.rpmnew)后保留

    包查詢

        rpm {-q|–query} [select-options] [query-options]

    

        [select-options] 

            -a: 所有包 

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

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

            –whatprovides CAPABILITY:查詢指定的CAPABILITY 由哪個包所提供 

            –whatrequires CAPABILITY:查詢指定的CAPABILITY被 哪個包所依賴 

    

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

    

        rpm2cpio 包文件|cpio –id  “*.conf” 釋放包內文件

    

        [query-options] 

            –changelog:查詢rpm包的changelog 

            -c: 查詢程序的配置文件 

            -d: 查詢程序的文檔 

            -i: information 

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

            –scripts:程序包自帶的腳本片斷 

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

            –provides: 列出指定程序包所提供的CAPABILITY;

    

    卸載: 

    

        rpm {-e|–erase} [–allmatches] [–nodeps] [-noscripts] [–notriggers] [–test] PACKAGE_NAME …

    

    包校驗

    

        rpm {-V|–verify} [select-options] [verify-options] 

            S file Size differs 

            M Mode differs (includes permissions and file type) 

            5 digest (formerly MD5 sum) differs 

            D Device major/minor number mismatch 

            L readLink(2) path mismatch 

            U User ownership differs 

            G Group ownership differs 

            T mTime differs 

            P capabilities differ

        

        包來源合法性驗正及完整性驗正: 

            完整性驗正:SHA256 

            來源合法性驗正:RSA

        公鑰加密: 

            對稱加密:加密、解密使用同一密鑰; 

            非對稱加密:密鑰是成對兒的 

                public key: 公鑰,公開所有人 

                secret key: 私鑰, 不能公開 

        導入所需要公鑰: 

            rpm  -K|checksig rpmfile 檢查包的完整性和簽名 

            rpm –import /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7 

            CentOS 7發行版光盤提供:RPM-GPG-KEY-CentOS-7 rpm -qa gpg-pubkey*

    

    rpm數據庫

        數據庫重建

            /var/lib/rpm    

        rpm {–initdb|–rebuilddb} 

            initdb: 初始化 如果事先不存在數據庫,則新建之 否則,不執行任何操作 

            rebuilddb:重建 無論當前存在與否,直接重新創建數據庫

三、yum的配置

    yum(Yellow dog Updater,Modifid)是linux中shell前端的軟件包管理器,基于rpm包管理,能夠從指定的服務器自動下載rpm包并且安裝,可以自動處理依賴性關系,并且依次安裝所有以來的軟體包。yum提供了查找、安裝、刪除某一個、一組甚至全部軟件包的命令。

yum客戶端配置文件

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

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

倉庫指向定義:

    [repositoryID]    軟件源名稱

    namee=Some name for this repository    倉庫名稱

    baseurl=url://path/to/repository/    源鏡像地址

    enabled={1|0}    是否啟用源

    gpgcheck={1|0}    是否進行gpg的校驗下載的rpm包

    gpgkey=URL    用于定義gpg校驗的密鑰

    enablegroups={1|0}

    failovermethod={roundrobin|priority}

        默認為:roundrobin,意為隨機挑選鏡像服務器中的地址;

            priorty,表示順序選擇地址 

    cost=    默認為1000 

blob.png

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

(2)
zhanghuanyuzhanghuanyu
上一篇 2016-08-21
下一篇 2016-08-21

相關推薦

  • nginx rewrite實戰

    nginx rewrite實戰 nginx rewrite實戰 nginx rewrite實戰 nginx rewrite 正則表達式匹配 多目錄轉成參數 目錄對換 目錄自動加“/” ,這個功能一般瀏覽器自動完成 禁止htaccess 禁止多個目錄 禁止以/data開頭的文件,可以禁止/data/下多級目錄下.log.txt等請求 禁止單個文件 給favic…

    Linux干貨 2016-11-17
  • LAMP運行環境搭建及部署php程序軟件

    前言     Linux+Apache+MySQL+PHP是大多數web服務器的運行環境,能熟練配置此運行環境是每個運維的必備基本技能,本文以安裝MySQL管理工具PHPmyadmin以及博客軟件wordpress為例,演示編譯安裝LAMP運行環境的過程。 一、實驗拓撲圖 二、安裝步驟 2.1 編譯安裝Apache h…

    2015-11-26
  • 0809linux基礎小記(sed和vim用法)

    sed  [options] ‘scripts’ inputfile -n: 不輸出模式空間內容的自動打印 -e: 多點編輯 -f:從指定文件中讀取編輯腳本 -i:原處編輯 scripts: ’地址命令’ 地址定界: (1)  不給地址:對全文進行處理 (2)  單地址: #:  指定的行 例: sed '2…

    Linux干貨 2016-08-11
  • 計算機的組成部分

    運算器:負責數據的運算和邏輯運算。 存儲器:實現記憶功能的部件用來存放計算程序及參與運算的各種數據。 控制器:負責對程序規定的控制信息進行分析,控制并協調輸入,輸出操作或內存訪問。 輸入設備:實現計算程序和原始數據的輸入。 輸出設備:實現計算結果輸出。

    Linux干貨 2017-08-19
  • N25第五周作業

    1、顯示/boot/grub/grub.conf中以至少一個空白字符開頭的行; ]# grep -E '^[[:space:]]+.*' /boot/grub/grub.conf 2、顯示/etc/rc.d/rc.sysinit文件中以#開頭,后面跟至少一個空白字符,而后又有至少一個非空白字符的行;…

    Linux干貨 2017-01-08
  • 網絡25期學習宣言

    馬哥Linux運維學院 學習宣言 親愛的小伙伴:        歡迎大家報名馬哥Linux運維網絡學習班,跟隨馬哥學習Linux技術,成就Linux大牛之夢。在這里,我們不僅可以學習到最優秀的技術課程,還可以跟著追夢的小伙伴們一起學習、一起進步。 為了督促大家一直積極認真努力的學習,請各位同學在評論區寫出你的學習宣言?!?/p>

    Linux干貨 2016-11-14

評論列表(1條)

  • 馬哥教育
    馬哥教育 2016-08-22 10:35

    文章對rpm工具的常見用法和選項總結的很精細,也很用心,對于rpm包管理工具而言,其最重要的是查詢選項,這也是最豐富的地方,需要多加練習熟練掌握。

欧美性久久久久