真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

linux程序包管理初步-創(chuàng)新互聯(lián)

Linux程序包管理

網(wǎng)站建設(shè)哪家好,找創(chuàng)新互聯(lián)公司!專注于網(wǎng)頁設(shè)計(jì)、網(wǎng)站建設(shè)、微信開發(fā)、成都微信小程序、集團(tuán)企業(yè)網(wǎng)站建設(shè)等服務(wù)項(xiàng)目。為回饋新老客戶創(chuàng)新互聯(lián)還提供了資陽免費(fèi)建站歡迎大家使用!

        我們linux操作系統(tǒng)從底層到高層的層次結(jié)構(gòu):

最底層首先是硬件,計(jì)算機(jī)的計(jì)算能力都是在硬件邏輯上設(shè)計(jì)實(shí)現(xiàn)的,而不同廠商生產(chǎn)的芯片哪怕是同一廠商生產(chǎn)的同一型號(hào)的芯片,他們給我們提供的計(jì)算接口都不一樣,我們基本都同說過嵌入式開發(fā),那么這種開發(fā)如果沒有系統(tǒng)可以使用的話,主要是面向硬件,來寫程序的,而這種程序只能適應(yīng)一種或者幾種有限的芯片,單片機(jī)尤其如此,現(xiàn)在很多嵌入式開發(fā)過程中,也已經(jīng)有了一種通用層來實(shí)現(xiàn),但是像單片機(jī)這種還是面向硬件編程的,

        然后在底層之上就是將硬件接口封裝起來的操作系統(tǒng)層,系統(tǒng)層將底層的硬件接口封裝起來以后,通過系統(tǒng)調(diào)用(system  call),向上輸出,但是系統(tǒng)調(diào)用仍然很底層,為了加速開發(fā)操作,在操作系統(tǒng)層之上又加了半層叫“庫(kù)(lib call)”,注意這里不是全層,而是半層,因?yàn)閷?duì)于程序員來講,可以面向半層“庫(kù)”來寫程序,也可以面向我們的操作系統(tǒng)來寫程序,然后在庫(kù)之上就是應(yīng)用程序了,應(yīng)用程序是給我們真正帶來一些生產(chǎn)力的,我們的內(nèi)核是不能完成任何具體的操作的,在這眾多的應(yīng)用類型程序中,我們知道有一類比較獨(dú)特的,他主要是讓用戶跟主機(jī)交互的,叫shell任何利用操作系統(tǒng)完成任務(wù)的操作,都是通過應(yīng)用程序完成的,所以我們說將來我們真正去實(shí)現(xiàn)運(yùn)維操作的過程中,除了系統(tǒng)管理,庫(kù)調(diào)用管理之外,其實(shí)作為運(yùn)維人員來講,就是不停的在我們的操作系統(tǒng)上安裝配置某一應(yīng)用程序包,然后讓這個(gè)應(yīng)用程序包運(yùn)行起來,并提供服務(wù),或者利用此工具完成某種具體相應(yīng)操作的過程。那對(duì)于我們運(yùn)維人員來講,安裝卸載管理程序包,是實(shí)現(xiàn)很多后期工作的最基礎(chǔ),最根本的任務(wù),所以首先我們要學(xué)會(huì)靈活實(shí)現(xiàn)對(duì)于程序包的安裝管理操作。

        任何程序的運(yùn)行,他有可能在程序包上提供兩種格式的程序包,我們稱之為源碼包或者叫二進(jìn)制包,那么我們將到這就不得不回顧一下以前講到的API和ABI,API叫應(yīng)用程序開發(fā)接口,ABI叫應(yīng)用程序二進(jìn)制接口。我們說過,API層次兼容未必ABI層次兼容。因?yàn)橛行┎僮飨到y(tǒng)他們執(zhí)行程序的格式,或者對(duì)二進(jìn)制的是識(shí)別格式,并非是相同的,像linux跟類unix(Unix-like)他們的操作系統(tǒng),一般而言是相同的,他們的ABI是相同的,但是與windows相差很遠(yuǎn),比方說windows系統(tǒng)上的可執(zhí)行程序都是exe或者是msi的,而linux上的是elf格式的。所以他們?cè)贏BI層次不兼容,所以我們說即使我們使用高級(jí)編程語言,去編寫程序,他們即便是在源碼格式兼容的,但是一旦編譯成功以后,本來是linux上面的格式的,而跑到windows上一樣依然無法運(yùn)行。所以有一個(gè)程序包,在linux上編譯好了,他是二進(jìn)制格式的,我們是不能拿來裝到windows之上的。反過來如果一個(gè)程序包在windows上編譯好了,是一個(gè)exe格式的文件,能不能在linux系統(tǒng)上運(yùn)行起來呢?也很難。我們可以借助虛擬化將二者的差異將其磨平了,比方說現(xiàn)在的各種各樣的應(yīng)用程序,幾乎都是針對(duì)庫(kù)調(diào)用來開發(fā)的,很少說是直接通過系統(tǒng)調(diào)用來實(shí)現(xiàn)。即使是通過系統(tǒng)調(diào)用來實(shí)現(xiàn),那也沒問題,現(xiàn)在在windows上有很多程序模擬linux的庫(kù),在linux上也有很多模擬windows庫(kù)的程序。

        比方說現(xiàn)在這里有一個(gè)linux操作系統(tǒng),沒關(guān)系我們裝一個(gè)WinE,這個(gè)wine就能在linux上模擬出windows庫(kù)來。所以我們就可以借助wine來運(yùn)行windows應(yīng)用程序。比方說希望在linux上玩的各種各樣的游戲,甚至還能給我們提供一個(gè)安裝的路徑,模擬出windows上的C盤D盤E盤。但這只是一個(gè)庫(kù)虛擬層。同樣在windows上我們也能提供linux運(yùn)行環(huán)境。叫cywin,在windows之上運(yùn)行一個(gè)cywin,他能夠提供運(yùn)行模擬出linux的運(yùn)行環(huán)境來。所以說有一些程序只能在linux上運(yùn)行的話,我們也能在windows上基于cywin運(yùn)行起來,比如說像docker。這都不是正常的方案,正常的方案就是,由于abf庫(kù)是不兼容的,至少在二進(jìn)制層次上他們是不兼容的。所以他們沒有辦法安裝塊系統(tǒng)來實(shí)現(xiàn)系統(tǒng)調(diào)用。

        庫(kù)級(jí)別的虛擬化:我們可以借助庫(kù)級(jí)別的虛擬化來抹平他們的不同。比如在linux上我們可以借助于wine來提供windows庫(kù)從而能夠運(yùn)行windows應(yīng)用程序。而在Windoes上我們借助于Cywin這個(gè)程序包,來虛擬模擬出linux的運(yùn)行環(huán)境。從而使得那些二進(jìn)制程序也能跨系統(tǒng)來運(yùn)行了。

系統(tǒng)級(jí)開發(fā):

        C/C++:服務(wù)及應(yīng)用程序:httpd,vsftpd,nginx

        go

應(yīng)用級(jí)開發(fā)

        java/Python/perl/ruby/php

                  java:hadoop,hbase,(他們的運(yùn)行需要jvm就是java虛擬機(jī))

                  Python:openstack(openstack是一個(gè)云操作系統(tǒng))

                           運(yùn)行Python程序需要用到pvm(Python虛擬機(jī))

                           運(yùn)行perl:(依賴于perl)

                           運(yùn)行ruby:(依賴于ruby解釋器)

                           運(yùn)行php:(依賴于php解釋器)

C/C++程序格式:

        源代碼:文本格式的程序代碼;

        二進(jìn)制格式:文本格式的程序代碼---->編譯器------>二進(jìn)制格式(二進(jìn)制程序,庫(kù)文件,配置文件,幫助文件)

(二進(jìn)制格式我們僅僅是指他的陳序和庫(kù)是二進(jìn)制的,他的配置文件和幫助文件當(dāng)然是文本的。我們知道Linux重要的哲學(xué)思想之一就是:用文本文件保存配置信息,這樣帶來的好處就在于,我們將來配置任何應(yīng)用程序時(shí),只需要依賴一款文本編輯器就可以。)

        所以我們將來要想安裝應(yīng)用程序,那么針對(duì)我們兩種格式的內(nèi)容,他的安裝方式就顯然不一樣,我們知道源代碼不能運(yùn)行,所以我們必須將其編譯以后將其安裝運(yùn)行。對(duì)于源代碼而言我們要手動(dòng)把“文本格式的程序代碼---->編譯器------>二進(jìn)制格式”這個(gè)過程手動(dòng)完成。如果是別人給我們提供的是二進(jìn)制格式的文件,上面的過程就不需要我們自己做了。因?yàn)槲覀兡玫降闹苯邮强蛇\(yùn)行格式的。萬一很不幸的是對(duì)方僅提供了源代碼怎么辦呢?那么我們就只能自己編譯了。而要想能夠自己編譯的話,那就依賴于編譯開發(fā)環(huán)境。因?yàn)榫幾g要依賴于編譯器,依賴于頭文件,依賴于開發(fā)庫(kù)。我們的庫(kù)也是源代碼格式的,所以庫(kù)也有兩種文件。后來我們把它編譯成了二進(jìn)制格式的。

        所以我們的編譯開發(fā)環(huán)境依賴于:編譯器,頭文件,開發(fā)庫(kù)。

如果我們拿到的是二進(jìn)制格式的,那么就不需要編譯,我們直接放到目錄下就能運(yùn)行起來了。

所以我們?nèi)绻獔?zhí)行源代碼編譯安裝,那么我們需要額外的準(zhǔn)備好幾步。至少我們要想方設(shè)法保證我們的編譯環(huán)境是完整的。而提供編譯環(huán)境是相當(dāng)勞心費(fèi)神的工作。

        我們學(xué)習(xí)程序包安裝,首先了解二進(jìn)制格式是怎么安裝的,然后再去了解如何源代碼編譯安裝。上面是C程序的格式。

        那么如果是應(yīng)用級(jí)的程序格式呢?

那么我們就以JAVA和Python為例,那么JAVA和Python應(yīng)用程序格式是一樣的,

        java/python程序格式:

                  源代碼

                  二進(jìn)制

同樣的道理,如果是源代碼格式,那也只能編譯了,如果是二進(jìn)制格式那么直接使用即可

但是他們的編譯不同在于,他們編譯出來的不是二進(jìn)制格式,或者不是能夠直接在CPU上直接運(yùn)行的二進(jìn)制格式,而是編譯成其能夠在虛擬機(jī)上(jvm/pvm)運(yùn)行的程序格式。也就是說通過虛擬機(jī)將其轉(zhuǎn)換成能夠運(yùn)行的二進(jìn)制格式。中間多了一層,所以性能很差?;蛘哒f比起C語言性能比較差。通常來說無論是C格式的源代碼,還是java格式的源代碼,通常他們的程序文件,都不止一個(gè)。那為什么不止一個(gè)?

        將來我們的程序文件在編譯時(shí)存在錯(cuò)綜復(fù)雜的依賴關(guān)系,導(dǎo)致我們有一百個(gè)程序源文件,很有可能我們先編譯第一個(gè),在編譯第三個(gè),在編譯第二個(gè)。因?yàn)榈谝粋€(gè)第三個(gè)被第二個(gè)所依賴。這樣帶來的結(jié)果就是誰先編譯誰后編譯,作為使用者我們沒有能力管理他們的編譯順序。所以各種各樣的源代碼通常都使用一個(gè)項(xiàng)目管理工具。或者叫項(xiàng)目構(gòu)建工具。

        項(xiàng)目構(gòu)建工具:

                  C/C++:最著名的項(xiàng)目構(gòu)建工具就叫make

                  java:最經(jīng)典的項(xiàng)目構(gòu)建工具就叫maven

這樣項(xiàng)目構(gòu)建工具,也必須依賴項(xiàng)目開發(fā)環(huán)境才能構(gòu)建。而對(duì)于java來講他也有自己的開發(fā)環(huán)境。他也需要開發(fā)環(huán)境。只不過對(duì)于這兩種的編程語言來講。他們的開發(fā)環(huán)境,通常指的是,那個(gè)對(duì)應(yīng)應(yīng)用程序的虛擬機(jī),和虛擬機(jī)上面的編譯器。java源代碼編譯也需要開發(fā)環(huán)境,只不過是沒有頭文件,他們也需要:編譯器,卡發(fā)庫(kù)。這也是我們程序包的組成格式。

        為了降低初級(jí)使用者的難度,我們應(yīng)該怎樣做?

我們應(yīng)該使用程序包管理器,來協(xié)助這些終端用戶的管理工作。

        程序包管理器:

                  源代碼---->目標(biāo)二進(jìn)制格式----->組織成為一個(gè)或有限幾個(gè)“包”文件;

                           安裝,升級(jí),卸載,查詢,(甚至對(duì)linux上還支持)校驗(yàn)

        程序包管理器:

                  (程序包管理器大體上有哪幾種呢?

對(duì)于windows來講,大多數(shù)的應(yīng)用程序都是exe格式的。這種格式應(yīng)用程序給我們提供一個(gè)安裝界面,我們只需點(diǎn)擊下一步下一步即可,卸載的時(shí)候我們通過我們控制面板中的,卸載應(yīng)用程序來實(shí)現(xiàn),為什么我們能看到的只是下一步下一步就能完成安裝呢?他其實(shí)就是通過一個(gè)程序包管理器打包成一個(gè)單個(gè)的exe文件,我們知道我們安裝完以后他的確分散成多個(gè)可能放在program/files目錄下某一個(gè)路徑下,每一個(gè)應(yīng)用程序都有一個(gè)目錄,里面存放各種文件,有二進(jìn)制的有庫(kù)的,對(duì)于windows來說,他們的庫(kù)是dll文件,動(dòng)態(tài)鏈接庫(kù),dynamic link,而對(duì)于linux而言,叫so。)

        目前l(fā)inux有三大主流分支:

                  debian:dpt,dpkg,".dep"

                  redhat:redhat  package manager,簡(jiǎn)稱:rpm,".rpm";rpm ispackage manager;

                  S.u.S.E:rpm,".rpm",

                  Gentoo:ports

                  ArchLinux:

源代碼:

        命名方式:name-VERSION.tar.gz

                  VERSION:major.minor.release              //主版本號(hào).次版本號(hào).發(fā)行版本

rpm包命名格式:

        name-VERSION-release.arch.rpm           //release是rpm包的release。

                  VERSION:major.minor.release

                  release.arc:是指rpm包的發(fā)行號(hào)

                           release.os:2.el7.i386.rpm

                           archetecture:架構(gòu),i386,x64(amd64),ppc,noarch

                  redis-3.0.2.targz----->redis-3.0.2-1.centos7.x64.rpm

changelog:

拆包:主包和支包

        主包:name-VERSION-release.arch.rpm

        支包:name-function-VERSION-release.arch.rpm

                           function:devel,utils,libs.....

依賴關(guān)系:

        x,y,z

                  x------依賴--->y,z

                           y------依賴-------->A,B,C

                           c--------->y

        前端工具:自動(dòng)解決依賴關(guān)系;

                  yum:rhel系列系統(tǒng)上rpm包管理器的前端工具;

                  apt-get(apt-cache):dep包管理器的前端工具;

                  zypper:suse的rpm管理器前端工具;

                  dnf:Fedora 22+系統(tǒng)上rpm包管理器的前端工具;

程序包管理器:

        功能:將編譯好的應(yīng)用程序的各組成文件打包成一個(gè)或幾個(gè)程序包文件,從而更方便的                實(shí)現(xiàn)程序包的安裝,升級(jí),卸載,和查詢等管理操作;

        1.程序包的組成清單(每個(gè)程序包都單獨(dú)實(shí)現(xiàn));

                  文件清單

                  安裝或卸載時(shí)運(yùn)行的腳本

        2數(shù)據(jù)庫(kù)(公共)

                  程序包的名稱和版本;

                  依賴關(guān)系;

                  功能說明;

                  安裝生成的各個(gè)文件的文件路徑及校驗(yàn)碼信息;

CentOS系列系統(tǒng)的rpm數(shù)據(jù)庫(kù):路徑

        /var/lib/rpm

[root@centos7 ~]# ls /var/lib/rpm

Basenames    __db.002 Group      Obsoletename Requirename Triggername

Conflictname __db.003 Installtid Packages     Sha1header

__db.001     Dirnames Name       Providename  Sigmd5

[root@centos7 ~]#

        解釋:

Group:包組,我們可以將程序劃分成一個(gè)組,將來可以把一個(gè)程序包組全部安上,一個(gè)組                    全部卸載。

Name:各個(gè)程序的名字;

Sigmd5:MD5的校驗(yàn)碼;

Triggername:觸發(fā)器名稱;

獲取程序包的途徑:

        (1)系統(tǒng)發(fā)行版的光盤或官方的文件服務(wù)器(或鏡像站點(diǎn)):

                           http://mirrors.aliyun.com

                           http://mirrors.sohu.com

                          http://mirrors.163.com

        (2)項(xiàng)目的官方站點(diǎn)

                           舉例:以thhp為例:站點(diǎn)httpd.apache.org

        或者:

                           網(wǎng)站www.zabbix.com

打開網(wǎng)站www.zabbix.com網(wǎng)站,我們網(wǎng)站的導(dǎo)航欄中直接點(diǎn)擊“Download”,打開一個(gè)頁面,前面的“Zabbix Packages”是zabbix的rpm包,再往下“Zabbix Sources”是源碼包。

        所以說很多項(xiàng)目的官方站點(diǎn)也提供rpm包,并且我們一定注意,既然后能用rpm包安裝的我們一定不要使用源碼包編譯安裝。

        (3)第三方組織:EPEL

                           EPEL:紅帽官方的社區(qū)組織所維護(hù)的,發(fā)行光盤之外其他他們覺得比較有用比較重點(diǎn),比較有名的程序包,都將制作成rpm包放在EPEL中。

        其實(shí)國(guó)內(nèi)的很多官方站點(diǎn)都有這樣的epel。

        舉例演示,我們以“mirrors.aliyun.com”為例:

在鏡像阿里云的站點(diǎn)上“mirrors.aliyun.com”也有epel,在epel中會(huì)為我們的centos提供了眾多的額外的補(bǔ)充包。

                  (a)EPEL

                  (b)搜索引擎

                                    http://pkgs.org(在rpm領(lǐng)域中,這是一個(gè)非常重要的);

                                    rpmfind.net(要想搜哪個(gè)文件包直接搜。)

                                   rpm.pbone.net

linux程序包管理初步

上面對(duì)話框中,我們可以輸入正確的內(nèi)容來進(jìn)行查詢,我們還可以通過后面的


Advanced RPM Search

來進(jìn)行高級(jí)查詢。

        (4)自己手動(dòng)制作rpm包。

注意:不管上面的那種方式獲得rpm包,只要是通過互聯(lián)網(wǎng)上獲得的,那么我們就可以認(rèn)為即使原作者在里面沒有做任何改變,或者修改,因?yàn)槲覀儸F(xiàn)在經(jīng)常使用一些下載工具,像迅雷,那這種工具有點(diǎn)問題,為什么這種工具他的下載的速度非常的塊,就是因?yàn)樗麄兛赡懿皇菑墓俜降脑军c(diǎn)下載的,或者是非完完全全的官方站點(diǎn)上下載的,其實(shí)從已經(jīng)下載的用戶的那里下載的,如果官方站點(diǎn)下載不到的話,而且這時(shí)候他恰恰搜索到某個(gè)用戶的那里有這個(gè)文件,他也會(huì)傳給你,但是這個(gè)文件可能被其他用戶精心的修改過,制作了后門,所以以后我們?cè)诨ヂ?lián)網(wǎng)上下載人格安全性較高的文件的,像銀行官方站點(diǎn)的插件,還有像支付寶的證書等,我們就不應(yīng)該在使用迅雷下載。以后這中工具少用,尤其是使用PHP下載的,是相當(dāng)危險(xiǎn)的,那么我們下載下來一個(gè)工具我們不知道他到底是不是官方提供的呢?

至少是所有的數(shù)據(jù)沒有被篡改過,那怎么辦呢?

        我們建議要做MD5校驗(yàn),提供一個(gè)MD5校驗(yàn)器,檢驗(yàn)其合法性,來源合法性。

        程序包的完整性要做校驗(yàn);

        CentOS系統(tǒng)上rpm命令管理程序包:

                  安裝,升級(jí),卸載,查詢和校驗(yàn),數(shù)據(jù)庫(kù)的維護(hù)

上面提到的“安裝,升級(jí),卸載,查詢和校驗(yàn)”都用rpm命令來實(shí)現(xiàn)。

                  格式: rpm [OPTIONS] [PACKAGE_FILE]

        安裝用到的選項(xiàng):-i=--install

        升級(jí)用到的選項(xiàng):-U=--update, -F=--freshen

        卸載:-e=--erase

        查詢:-q=--query

        校驗(yàn):-V=--verify

        數(shù)據(jù)庫(kù)維護(hù):--builddb,--initdb

        安裝:

                  安裝時(shí)必須有對(duì)應(yīng)的文件才行。

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

                           真正安裝的時(shí)候應(yīng)該使用選項(xiàng):-ivh

                                            rpm -ivh PACKAGE_FILE......

                                      GENERAL OPTIONS(通用選項(xiàng))

                                                       -v:verbose;(輸出相信信息)

                                                       -vv:(輸出更詳細(xì)的過程信息)

                                              [install-options]

                                                      -h:hash marks輸出進(jìn)度條;每個(gè)#表示2%的進(jìn)度;

                                                       --test:如果不想真正的安裝,僅僅是檢查一下有沒有潛在的沖                                                                             突的可能我們就可以測(cè)試安裝,檢查并報(bào)告依賴關(guān)系及                                                                          沖突消息等;

                                                       --nodeps:忽略依賴關(guān)系;不建議;

                                                       --replacepkgs:重新安裝 (如果某個(gè)包安裝過,但是后來我們                                                                                     更改了他的配置文件,出了錯(cuò),那我們刻意先卸載                                                                                   再重新安裝,但是我們還有一個(gè)更好的方法就是,                                                                              直接重新安裝。)

                                                       --noscripts:

                                                       --oldpackage:降級(jí)用的

                                                       --justdb:只是升級(jí)一下數(shù)據(jù)庫(kù)。

        注意rpm包可以自帶腳本:

                           這些腳本有四類:

                                    如果這四類都不想執(zhí)行:--noscripts

                                    preinstall:安裝過程開始之前運(yùn)行腳本,%pre         --nopre

                                    postinstall:安裝過程完成以后運(yùn)行的腳本,%post          --nopost

                           preuninstall:卸載過程真正開始執(zhí)行之前運(yùn)行的腳本,%preun  --nopreun

                                    postuninstall:卸載過程完成之后運(yùn)行的腳本,%postun --nopostun

                                                       --nosignature:不檢查簽名信息,不檢查來源合法性;

                                                       --nodigest:不檢查包完整性信息;

舉例演示:

[root@centos6 Packages]# rpm -ivhzsh-4.3.11-4.el6.centos.2.x86_64.rpm

warning:zsh-4.3.11-4.el6.centos.2.x86_64.rpm: Header V3 RSA/SHA1 Signature, key IDc105b9de: NOKEY

Preparing...                ###########################################[100%]

  1:zsh                   ########################################### [100%]

[root@centos6 Packages]# cat /etc/shells

/bin/sh

/bin/bash

/sbin/nologin

/bin/dash

/bin/tcsh

/bin/csh

/bin/zsh

[root@centos6 Packages]#

演示重新安裝replacepkgs:

之前我們zsh已經(jīng)安裝過了,那我們先編輯一下zsh的配置文件“/etc/zshrc”,比方說我們刪除其中的幾行,然后保存,因?yàn)槲覀儓?zhí)行“wq”之后,他的配置文件信息就不能恢復(fù)了。那么這時(shí),我們

[root@centos6 media]# vim /etc/zshrc                  //先將zsh的配置文件中的內(nèi)容刪除一部分

[root@centos6 media]# cat /etc/zshrc

 [root@centos6media]#rpm -ivh --replacepkgs /media/Packages/zsh-4.3.11-4.el6.centos.2.x86_64.rpm

 [root@centos6media]# cat /etc/zshrc                //發(fā)現(xiàn)配置文件內(nèi)容沒有恢復(fù),這時(shí)因?yàn)槲覀兊南到y(tǒng)在我們沒有將原先的配置文件刪除,就在重裝軟件,那么系統(tǒng)就會(huì)認(rèn)為我們這個(gè)配置文件修改是有目的的,我們也要記住replacepkgs是不能修改原來的配置文件的。所以我們?cè)谥匮b之前要先刪除配置文件。

 [root@centos6media]# rm -f /etc/zshrc

[root@centos6 media]# rpm -ivh --replacepkgs/media/Packages/zsh-4.3.11-4.el6.centos.2.x86_64.rpm

 [root@centos6media]# cat /etc/zshrc                  //發(fā)現(xiàn)配置文件內(nèi)容恢復(fù)了

#

# /etc/zshrc is sourced in interactiveshells. It

# should contain commands to set upaliases, functions,

# options, key bindings, etc.

#

## shell functions

#setenv() { export $1=$2 } # csh compatibility

# Set prompts

PROMPT='[%n@%m]%~%# '   # default prompt

#RPROMPT=' %~'    # prompt for right side of screen

# bindkey -v            # vi key bindings

# bindkey -e            # emacs key bindings

bindkey ' ' magic-space # also do history expansion on space

_src_etc_profile_d()

{

   # Make the *.sh things happier,and have possible ~/.zshenv options like

   #NOMATCH ignored.

   emulate -L ksh

   #from bashrc, with zsh fixes

   if [[ ! -o login ]]; then # We're not a login shell

       for i in /etc/profile.d/*.sh; do

           if [ -r "$i" ]; then

               . $i

           fi

       done

       unset i

   fi

}

_src_etc_profile_d

unset -f _src_etc_profile_d

[root@centos6 media]#

不檢查簽名演示:

[root@centos6 media]# rpm -ivh --replacepkgs/media/Packages/zsh-4.3.11-4.el6.centos.2.x86_64.rpm

warning: /media/Packages/zsh-4.3.11-4.el6.centos.2.x86_64.rpm: Header V3RSA/SHA1 Signature, key ID c105b9de: NOKEY

Preparing...               ########################################### [100%]

  1:zsh                   ########################################### [100%

上面在重新安裝軟件包的時(shí)候,前面出現(xiàn)了警告,我們要見檢查文件的合法性,文件的完整性,要檢查文件的這兩個(gè)選項(xiàng),要依賴一個(gè)秘鑰文件,要依賴這個(gè)包制作者的公鑰。

[root@centos6 media]# rpm -ivh--replacepkgs --nosignature/media/Packages/zsh-4.3.11-4.el6.centos.2.x86_64.rpm

Preparing...               ###########################################[100%]

  1:zsh                   ########################################### [100%]

[root@centos6 media]#

上面安裝時(shí),警告消失。

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)cdcxhl.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場(chǎng)景需求。


當(dāng)前題目:linux程序包管理初步-創(chuàng)新互聯(lián)
本文網(wǎng)址:http://weahome.cn/article/diohcs.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部