python高級變量類型:目標列表元組字典字符串公共方法變量高級知識點回顧python 中數(shù)據(jù)類型可以分為 數(shù)字型 和 非數(shù)字型 數(shù)字型 整型 (int)浮點型(float)布爾型(bool) 真 true 非 0 數(shù) —— 非零即真
in : in : print smoke_list藍利群 in : print smoke_list芙蓉王 in : print smoke_list萬寶路 in : print smoke_list
in : in : smoke_list.reverse() in : for smoke in smoke_list: ...: print smoke ...: 萬寶路芙蓉王藍利群 in : in
: smoke_list.insert(1,黃金龍) in : for smoke in smoke_list: ...: print smoke ...: 萬寶路黃金龍芙蓉王藍利群 in : in
,并且所有這些(區(qū)分大小寫的)字符都是小寫,則返回 true string.isupper() 如果 string 中包含至少一個區(qū)分大小寫的字符,并且所有這些(區(qū)分大小寫的)字符都是大寫,則返回 true
擬逮捕福建晉華前總裁陳正坤等人:但對被告逐一發(fā)布逮捕令,是適當?shù)男袆?,也符合政府要求?!苟驮趦芍芮?,臺中法院對于美光起訴聯(lián)電竊取商業(yè)機密一案已經(jīng)進行了宣判。
值得關注的是,陳正坤是臺灣dram界老將,17年出任福建晉華總經(jīng)理,協(xié)助建廠。在此之前,他還是聯(lián)電的副總經(jīng)理。
美方對中方企業(yè)的發(fā)難已經(jīng)數(shù)見不鮮,此案背后的政治壓力可想而知。報道中指出,這三人都是臺灣公民,法律專家表示,他們沒有出庭美國法院的動機。中國大陸和臺灣和美國之間都沒有引渡條約。
發(fā)展至今,dram三巨頭三星、海力士、美光呈現(xiàn)三足鼎立的態(tài)勢,2019年市場占率分別為50.9%、29.2%、18.5%。美光1978年成立于美國,是全球最大的半導體儲存和影像產(chǎn)品制造商之一。
晉華集成是由福建省電子信息集團、及泉州、晉江兩級政府共同出資設立。一直以來,它專注于dram領域,與臺灣聯(lián)華電子開展技術合作。
盧馭龍談無人駕駛:不能讓人工智能取代我們的靈魂:人類和機器人戀愛,最后機器人卻把人類給套路了……2017年12月6日,盧馭龍在微博中發(fā)布了一條關于深圳無人駕駛公交車上線的消息。
據(jù)了解,此次無人駕駛公交車采用了“阿爾法巴智能駕駛公交系統(tǒng)”,源自中國未來新能源與智能公交系統(tǒng)(cbsf)示范項目,據(jù)資料顯示,智能公交車滿載25人,其中有17個座位、8人站立。
但盧馭龍認為,司機也許會消失,但賽車手不會,任何追求極致的人都是獨一無二的!盧馭龍自創(chuàng)業(yè)以來,一直視“改良世界”為己任。
在2012年,深圳馭龍航天科技有限公司成立的時候,身為ceo的盧馭龍就提出了一套太空探索計劃,并命名為“馭龍?zhí)仗剿饔媱潯薄?為了完成二十年籌備一萬億資金的目標,盧馭龍的技術團隊還將眾多技術運用到生活改良上,成立了深圳馭龍電器有限公司。比如盧馭龍最新發(fā)明的馭龍電焰灶。
堆棧 jvm 太難懂?買房子總能理解了吧:首先,政府畫了一個圈,“走過路過不要錯過哈,新鮮出爐的地塊,各種優(yōu)惠政策,減稅減稅再減稅,快來看看啊~”,然后一堆大企業(yè)蜂擁而上,“給我留一塊~”,“我也要~”。
再來看看電腦內存,其實我們的電腦就是政府部門,每一次一開機,就開始要喝,“內存開始大派送啦,需要的快來領啊”,然后各種開機啟動的應用程序開始搶內存,什么聊天的啊,殺毒的啊,瀏覽器啊,當然還有系統(tǒng)自帶的功能
應用程序和系統(tǒng)程序占用內存電腦開機進行的內存免費大派送跟我們的政府規(guī)劃很像,在座的各位都是大佬,內存要多少有多少。然后我們打開java的時候,java也成功的分到了一塊內存空間。
java有個名詞叫java虛擬機(jvm),你就可以理解為他是一個虛擬的系統(tǒng),他干了很多和系統(tǒng)類似的活,系統(tǒng)把內存交給java以后,就由 jvm 來負責規(guī)劃內存。
就像我們上面說的,政府部門劃了地給開發(fā)商,java自己也劃地分給他下面的小弟。那么java里面的小弟又是啥?
普格縣政府公文系統(tǒng):黃石港區(qū)政府辦公政務OA系統(tǒng)中l(wèi)inux系統(tǒng)軟件包的管理信創(chuàng)政務OA系統(tǒng),分為采購管理與產(chǎn)品管理、庫存管理兩大模塊,通過采購,出庫,入庫管理,以及庫存數(shù)量,讓企業(yè)各個商品一目了然,也讓銷售人員實現(xiàn)實時跟進產(chǎn)品狀態(tài)、庫存,及時作出銷售策略。當庫存達到安全庫存時,就提醒采購人員要進行產(chǎn)品的采購啦,也提醒銷售人員在推銷產(chǎn)品時要注意,可以適當推銷庫存量大的產(chǎn)品,及時作出銷售策略。而出庫數(shù)和入庫數(shù)則方便之后商品進行盤點時出現(xiàn)的差異,查看出庫、入庫數(shù)是否有差異。入庫、出庫數(shù)也是商品的流動痕跡的一種記錄,時刻可以追尋商品流動記錄。 一系列的操作,讓企業(yè)的進銷存管理得到有效控制和管理,也讓銷售人員及時了解到自己企業(yè)的產(chǎn)品狀態(tài)。雖然使用源碼編譯安裝可以具有提高速度個性化的定制等優(yōu)點,但對于 linux發(fā)行商來說,則不容易管理軟件包,畢竟不是每個人都會進行源碼編譯的,如果能夠將軟件預先在相同的硬體與系統(tǒng)上面編譯好在發(fā)布的話,不就能夠讓相同的 linux 發(fā)行版,同時擁有相投的版本了嗎,如果再加上簡易的安裝/移除/管理等機制的話,對于軟體控管就會更加簡單,大多數(shù)現(xiàn)代類 unix 操作系統(tǒng)都提供了一個集中的軟件包管理機制,以幫助用戶搜索、安裝和管理軟件,而軟件通常以「包」的形式存儲在倉庫「repository」中,對軟件包的使用和管理被稱為包管理,本章我們將介紹 redhat 系統(tǒng)中為我們提供的解決方案,rpm和yum包管理機制.
? 文章聲明 ?
該系列文章部分文字描述,整理于以下文獻,化繁為簡.
《鳥哥的linux私房菜 (基礎學習篇 第三版)》 - 作者:鳥哥
《linux就該這么學》 - 作者:劉遄
由于自由軟件的蓬勃發(fā)展,加上大型 unix-like 主機的強大性能,讓很多軟件開發(fā)者將他們的軟件發(fā)布出來,后來 linux 發(fā)展起來后,由一些企業(yè)或社區(qū)打包成為特定的發(fā)行版,redhat就是這方面的龍頭老大,但后來發(fā)現(xiàn)這些發(fā)行版的軟件管理機制相當?shù)幕靵y,沒有一種統(tǒng)一的管理方式,這時候各大廠商開始著力研究如何有效的管理這些文件,redhat提出了rpm和yum倉庫的解決方案,時至今日yum已成為服務器上使用最多的軟件管理工具.此外還有一種dpkg格式的軟件安裝包,是社區(qū)來維護的,下面我們來具體介紹這兩種軟件包吧.
目前在 linux 界軟件安裝方式最常見的有兩種,分別是:
● dpkg 包
這個機制最早是由 debian linux 社區(qū)所開發(fā)出來的,通過 dpkg 的包管理, debian 打包軟件就能夠簡單的安裝,同時還能提供安裝后的軟件維護與更新,只要是衍生于 debian 的其他 linux 發(fā)行版都 dpkg 這個機制來管理軟件的,包括 b2d,ubuntu,kali linux 等.
● rpm 包
這個機制最早是由 red hat 這家公司開發(fā)出來的,后來實在很好用,因此很多 linux 發(fā)行版,就使用這個機制來作為軟件安裝的管理方式,包括 redhat,fedora,centos,suse等知名廠商都在使用它.
如前所述,不論是dpkg還是rpm,這些軟件包或多或少都會有依賴關系問題,那么各大 linux 發(fā)行商是如何解決這個問題的呢 ?
目前的 linux 發(fā)行商,在dpkg管理機制上就開發(fā)出 apt 包管理工具, rpm 則依開發(fā)商的不同,有redhat系統(tǒng)的yum,以及suse系統(tǒng)的you,mandriva系統(tǒng)的urpmi都在使用rpm下面我們使用的是redhat系統(tǒng),所以說使用的管理機制為 rpm 機制,所以我們使用yum,下面就讓我們來談談 rpm 與 yum 的關系吧.
軟件管理之rpm
rpm 全名是 "redhat package manager" 簡稱則為 rpm 顧名思義,當初這個軟件管理的機制就是由 red hat 這家公司開發(fā)出來的 rpm 是以一種數(shù)據(jù)庫記錄的方式來將你所需要的軟件安裝到你的 linux 系統(tǒng)的一套管理機制.
rpm命令是rpm軟件包的管理工具,rpm原本是red hat linux發(fā)行版專門用來管理linux各項套件的程序,由于它遵循gpl規(guī)則且功能強大方便,因而廣受歡迎,逐漸受到其他發(fā)行版的采用,rpm套件管理方式的出現(xiàn),讓linux易于安裝,升級,間接提升了linux的適用度.
那么 rpm 包的特點有哪些呢 ?
? 有專門的工具進行安裝、卸載、升級和管理軟件,管理起來更加方便.
? 安裝簡潔、速度快,由于使用rpm無需編譯所以安裝效率非常高.
? rpm包由于經(jīng)過了封裝,所以我們無法直接獲取其源代碼.
? 由于經(jīng)過了封裝,所以其功能選擇性差,功能定制不靈活.
rpm包的命名方式有哪些 ? i386,i586,i686,noarch,x86_64代表的含義是 ?
代碼語言:javascript
復制
[root@localhost ~]# ls -lh
total 3.1m
-r--r--r--. 1 root root 1.8m jan 17 2018 bind-9.9.4-61.el7.x86_64.rpm
-r--r--r--. 1 root root 1.2m jan 8 2018 httpd-2.4.6-80.el7.x86_64.rpm
bind .9.9.4 -61 .el7 .x86_64 .rpm
↑ ↑ ↑ ↑ ↑ ↑
① ② ③ ④ ⑤ ⑥
1.軟件名稱:本例軟件名為bind
2.軟件版本:本例軟件版本為9.9.4-61
3.發(fā)布次數(shù):本例修改了61次
4.編譯平臺:編譯平臺有(el8=rhel8,el7=rhel7,el6=rhel6)
5.適合平臺:平臺有(i386,i586,i686,noarch,x86_64)
6.打包格式:這里是rpm包,還有一種gpkg包.
好了,看了這么多內容,下面我們開始進入正題,分別來介紹這些命令的含義吧.
◆rpm 安裝軟件◆
因為安裝軟件是root的工作,因此你得要是root的身份才能夠使用rpm這個命令的,用rpm來安裝很簡單,下面我們就來先看他的參數(shù)說明吧.
代碼語言:javascript
復制
[root@localhost ~]# rpm --help
命令語法:[ rpm [選項] 包名稱 ]
-i #安裝一個新的rpm軟件包
-v #顯示安裝詳細過程
-h #以"#"號顯示安裝的進度
--nodeps #不檢測依賴安裝
--force #強制安裝,不管軟件是否存在,都強制重新安裝(修復軟件)
--test #測試安裝,不真正安裝,檢測軟件依賴關系
--prefix #指定安裝路徑,不按照默認路徑安裝
--replacefiles #以覆蓋寫入方式安裝
--replacepkgs #重復安裝軟件
--justdb #更新軟件在數(shù)據(jù)庫內的相關信息
--nosignature #忽略數(shù)字證書檢測
--noscripts #禁止軟件安裝過程中執(zhí)行某些命令
一般來說rpm的安裝選項與參數(shù)大約就是這些了,通常建議直接使用 -ivh 就好了,如果安裝的過程中發(fā)現(xiàn)問題,一個一個去將問題找出來,盡量不要使用 "暴力安裝" ,就是通過 --force 去強制安裝,因為可能會發(fā)生很多不可預期的問題,除非你很清楚的知道使用上面的參數(shù)后,安裝的結果是你預期的.
◆rpm 查詢信息◆
rpm在查詢的時候,其實查詢的地方是在 /var/lib/rpm/ 這個目錄下的數(shù)據(jù)文件,另外rpm也可以查詢未安裝的rpm軟件資料,下面我們先來看看可用的參數(shù)吧.
代碼語言:javascript
復制
[root@localhost ~]# rpm --help
命令語法:[ rpm [選項] 包名稱 ]
[查詢已安裝軟件]
-q 軟件名 #查看指定軟件是否安裝
-qa #查看系統(tǒng)中所有已安裝的軟件
-qi 軟件名 #查看指定軟件的詳細信息
-qc 軟件名 #列出軟件所以設置文件
-qd 軟件名 #列出軟件所以幫助文件
-ql 軟件名 #查看指定軟件安裝的目錄和文件列表
-qr 軟件名 #查看指定軟件的依賴關系
–qf 文件或目錄 #查詢文件或者目錄,是由哪個軟件包安裝產(chǎn)生的
[查詢未安裝軟件]
-qpi 包全名 #查看指定未安裝軟件的詳細信息
-qpl 包全名 #查看指定未安裝軟件的默認安裝位置(預覽)
-qpr 包全名 #查看指定未安裝軟件的依賴關系
實例1:使用rpm -qi查看一個軟件的詳細說明.
代碼語言:javascript
復制
[root@localhost ~]# rpm -qi tree
name : tree
version : 1.6.0
release : 10.el7
architecture: x86_64
install date: thu 15 nov 2018 07:18:16 am est
group : applications/file
size : 89505
license : gplv2+
signature : rsa/sha256, wed 02 apr 2014 05:33:48 pm edt, key id 199e2f91fd431d51
source rpm : tree-1.6.0-10.el7.src.rpm
build date : mon 27 jan 2014 12:29:58 pm est
build host : x86-020.build.eng.bos.redhat.com
relocations : (not relocatable)
packager : red hat, inc. <http://bugzilla.redhat.com/bugzilla>
vendor : red hat, inc.
url : http://mama.indstate.edu/users/ice/tree/
summary : file system tree viewer
description :
the tree utility recursively displays the contents of directories in a
tree-like format. tree is basically a unix port of the dos tree
utility.
實例2:使用rpm -ql查看軟件安裝釋放的目錄.
代碼語言:javascript
復制
[root@localhost ~]# rpm -ql tree
/usr/bin/tree
/usr/share/doc/tree-1.6.0
/usr/share/doc/tree-1.6.0/license
/usr/share/doc/tree-1.6.0/readme
/usr/share/man/man1/tree.1.gz
實例3:使用rpm -qr查看軟件依賴關系.
代碼語言:javascript
復制
[root@localhost ~]# rpm -qr tree
libc.so.6()(64bit)
libc.so.6(glibc_2.14)(64bit)
libc.so.6(glibc_2.2.5)(64bit)
libc.so.6(glibc_2.3)(64bit)
libc.so.6(glibc_2.3.4)(64bit)
libc.so.6(glibc_2.4)(64bit)
rpmlib(compressedfilenames) <= 3.0.4-1
rpmlib(filedigests) <= 4.6.0-1
rpmlib(payloadfileshaveprefix) <= 4.0-1
rtld(gnu_hash)
rpmlib(payloadisxz) <= 5.2-1
實例4:使用rpm -qf查看指定文件是由那個包安裝的.
代碼語言:javascript
復制
[root@localhost ~]# rpm -qf /bin/bash
bash-4.2.46-30.el7.x86_64
[root@localhost ~]# rpm -qf /bin/ls
coreutils-8.22-21.el7.x86_64
實例5:使用rpm -qpi查看一個未安裝軟件詳細信息.
代碼語言:javascript
復制
[root@localhost ~]# rpm -qpi bind-9.9.4-61.el7.x86_64.rpm
warning: bind-9.9.4-61.el7.x86_64.rpm: header v3 rsa/sha256 signature, key id fd431d51: nokey
name : bind
epoch : 32
version : 9.9.4
release : 61.el7
architecture: x86_64
install date: (not installed)
group : system environment/daemons
size : 4556343
license : isc
signature : rsa/sha256, wed 17 jan 2018 05:28:47 am est, key id 199e2f91fd431d51
source rpm : bind-9.9.4-61.el7.src.rpm
build date : wed 17 jan 2018 04:15:44 am est
build host : x86-034.build.eng.bos.redhat.com
relocations : (not relocatable)
packager : red hat, inc. <http://bugzilla.redhat.com/bugzilla>
vendor : red hat, inc.
url : http://www.isc.org/products/bind/
summary : the berkeley internet name domain (bind) dns (domain name system) server
description :
bind (berkeley internet name domain) is an implementation of the dns
(domain name system) protocols. bind includes a dns server (named),
which resolves host names to ip addresses; a resolver library
(routines for applications to use when interfacing with dns); and
tools for verifying that the dns server is operating properly.
◆rpm 升級軟件◆
使用 rpm 來升級真是太簡單了,就以 -uvh 或 -fvh 來升級即可,而 -uvh 與 -fvh 可以用的選項與參數(shù),跟 install 是一樣的,不過 -u 與 -f 的意義還是不太一樣的,下面我們來開一下它的配置信息吧.
代碼語言:javascript
復制
[root@localhost ~]# rpm --help
命令語法:[ rpm [選項] 包名稱 ]
-v #顯示安裝詳細過程
-h #以"#"號顯示安裝的進度
-u #升級安裝,若沒安裝,則直接安裝,若安裝有舊版本,則升級安裝
-f #升級安裝,若沒安裝,則不安裝,必須有舊版本,才進行升級安裝
由上面的說明來看,如果你想要大量的升級系統(tǒng)舊版本的軟件,使用 -fvh 則是比較好的作法,因為沒有安裝的軟件不會安裝到你的系統(tǒng),但是需要注意的是,如果你使用的是 -fvh ,偏偏你的機器上沒有安裝該軟件,那么該軟件并不會被安裝在你的 linux 主機上面,所以請重新以 ivh 來安裝吧.
◆rpm 驗證證書◆
驗證(verify)的功能主要在于提供系統(tǒng)管理員一個有用的管理機制,作用的方式是使用 "/var/lib/rpm" 下面的數(shù)據(jù)庫數(shù)據(jù)內容來比對目前 linux 系統(tǒng)的環(huán)境下的所有軟件信息,也就是說當你有文件不小心遺失,或者因為你誤刪除掉了某軟件的文件,我們就用這個簡單的方法來驗證一下原本的軟件系統(tǒng)吧,好讓你了解這一陣子到底是修改到哪些文件,下面我們先來看一下它的常用參數(shù)吧.
代碼語言:javascript
復制
[root@localhost ~]# rpm --help
命令語法:[ rpm [選項] 包名稱 ]
-v 軟件名 #驗證指定軟件安裝后的完整性,及文件的元數(shù)據(jù)是否發(fā)生變化
-va #列出目前系統(tǒng)上所有被改動過的文件
-vf 文件名 #驗證指定文件是否被修改過
-vp 文件名 #列出該軟件內可能被改動過的文件
下面,我們通過驗證一個文件,看其是否被修改過吧.
代碼語言:javascript
復制
[root@localhost ~]# rpm -vf /etc/profile
s.5....t. c /etc/profile
#↑ 驗證結果 ↑ 文件類型 ↑ 文件位置
你會發(fā)現(xiàn)在文件名 /etc/profile 之前有個 c 然后就是一堆奇怪的文字了,那個c代表的是配置文件,至于最前面的八個選項,我們在下面說明一下吧:
驗證結果具體的信息:
s -------------> 文件大小是否改變
m -------------> 權限是否被改變
5 -------------> 文件的md5校驗和是否改變(即文件內容)
d -------------> 主從設備號是否改變(/dev/)
l -------------> 文件路徑是否改變
u -------------> 文件的屬主是否改變
g -------------> 文件的屬組是否改變
t -------------> 文件的修改時間是否改變
文件類型具體分類:
c -------------> 配置文件
d -------------> 普通文件
g -------------> 鬼子文件,該文件不應在rpm包中
l -------------> 授權文件
r -------------> 描述文件
經(jīng)過驗證的功能,你就可以知道那個文件被更動過,那么如果該文件的變更是預期中的,那么就沒有什么大問題,但是如果該文件是非預期的,那么是否被入侵了了呢,所以說一般配置文件被改動比較正常,要是二進制文件被改動,可能是被入侵了,我們就要提高警惕了啊,畢竟對于一個運維人員來說,背黑鍋還是很不爽的啊.
談完了程序的驗證后,不知道你有沒有發(fā)現(xiàn)一個問題,那就是,驗證只能驗證程序內的數(shù)據(jù)與 /var/lib/rpm/里面的數(shù)據(jù)是否對應而已,如果該程序數(shù)據(jù)庫所提供的數(shù)據(jù)本身就有問題,那你使用驗證的手段也無法確定該軟件的正確性啊.下面就出現(xiàn)了數(shù)字證書的概念.
就像你自己的簽名一樣,我們的軟件開發(fā)商原廠所推出的軟件也會有一個廠商自己的證書系統(tǒng),只是這個證書被數(shù)字化了而已,廠商可以生成一個專屬的數(shù)字證書,并將該證書的公鑰(public key) 放入其發(fā)行版中,當你要安裝一個rpm時,系統(tǒng)會執(zhí)行以下流程:
? 首先必須找到原廠的公鑰文件,然后進行安裝
? 然后安裝rpm包時,會去提取rpm包中的證書信息,然后和本機安裝的原廠證書進行驗證
? 如果驗證通過,則允許安裝;如果驗證不通過,則不允許安裝并警告
我們 redhat 使用的數(shù)字證書系統(tǒng)為 gnu 計劃的 gnupg (gnu privacy guard, gpg)可以通過加密運算,算出獨一無二的專屬金鑰系統(tǒng)或者是數(shù)字證書系統(tǒng),我們也會知道首先必須要安裝原廠的gpg數(shù)位證書的公鑰才行,以下是數(shù)字證書的存放位置,其有兩份,操作系統(tǒng)中有一份,原廠光盤里也有一份.
代碼語言:javascript
復制
[root@localhost ~]# ls -lh /etc/pki/rpm-gpg/rpm-gpg-key-redhat-release
-rw-r--r--. 1 root root 3.2k feb 28 2018 /etc/pki/rpm-gpg/rpm-gpg-key-redhat-release
[root@localhost ~]# ls -lh /mnt/rpm-gpg-key-redhat-release
-r--r--r--. 1 root root 3.2k feb 28 2018 /mnt/rpm-gpg-key-redhat-release
從上面的輸出結果,可知證書的位置,下面我們開始安裝它.
代碼語言:javascript
復制
[root@localhost ~]# rpm --import /etc/pki/rpm-gpg/rpm-gpg-key-redhat-release
那安裝完成之后,那我們先列出金鑰軟件名稱后,再以 -qi 的方式來查詢看一下軟件的信息吧.
代碼語言:javascript
復制
[root@localhost ~]# rpm -qa |grep pubkey
gpg-pubkey-2fa658e0-45700c69
gpg-pubkey-fd431d51-4ae0493b
[root@localhost ~]# rpm -qi gpg-pubkey-2fa658e0-45700c69
name : gpg-pubkey
version : 2fa658e0
release : 45700c69
architecture: (none)
install date: thu 15 nov 2018 09:39:17 am est
group : public keys
size : 0
license : pubkey
signature : (none)
source rpm : (none)
build date : fri 01 dec 2006 06:05:13 am est
build host : localhost
relocations : (not relocatable)
packager : red hat, inc. (auxiliary key) <security@redhat.com>
summary : gpg(red hat, inc. (auxiliary key) <security@redhat.com>)
description :
-----begin pgp public key block-----
version: rpm-4.11.3 (nss-3)
mqgibevwdgkrbacwphzipvkji8wv9sftdoqyplx1ub8sd/w+yui5ovm49mvveqvt
vlg8fge5jlst59absldyvtra9cxivn5sybvrwwwthtdnnylfbcqg/a6j3bi4e9/a
utsl5zxbav0+utp6f3wopxqrxc+widvgpurdbkaq3dsobgbqypex6fxz5wcgou6c
=d/bm
-----end pgp public key block-----
重點就是最后面出現(xiàn)的那一串亂碼啦,那可是作為數(shù)字證書非常重要的一環(huán),如果你忘記加上數(shù)字證書,很可能很多原版軟件就不能讓你安裝,除非你利用 rpm 時選擇略過證書.
◆rpm 卸載軟件◆
移除的選項很簡單,直接通過 -e 即可移除,不過經(jīng)常發(fā)生由于軟件依賴關系而無法卸載的情況,下面看一下他的參數(shù)吧
代碼語言:javascript
復制
[root@localhost ~]# rpm --help
命令語法:[ rpm [選項] 包名稱 ]
-e #卸載軟件(注意卸載順序)
--nodeps #不檢測依賴卸載
由于 rpm 軟件常常會安裝/移除/升級等,某些動作或許可能會導致 rpm 數(shù)據(jù)庫 /var/lib/rpm/ 內的數(shù)據(jù)損壞,果真如此的話,我們可以使用 --rebuilddb 這個選項來重建一下數(shù)據(jù)庫文件.
◆rpm 提取文件◆
代碼語言:javascript
復制
例如提取tree目錄下的文件并恢復到指定文件
[root@localhost ~]# ls -l
total 48
-rw-rw-r-- 1 root root 47508 jul 4 2014 tree-1.6.0-10.el7.x86_64.rpm
[root@localhost ~]# rpm2cpio tree-1.6.0-10.el7.x86_64.rpm |cpio -idv #提取tree包中的文件
./usr/bin/tree
./usr/share/doc/tree-1.6.0
./usr/share/doc/tree-1.6.0/license
./usr/share/doc/tree-1.6.0/readme
./usr/share/man/man1/tree.1.gz
177 blocks
[root@localhost ~]# ll
total 48
-rw-rw-r-- 1 root root 47508 jul 4 2014 tree-1.6.0-10.el7.x86_64.rpm
drwxr-xr-x 4 root root 30 sep 20 05:17 usr
軟件管理之yum
我們在本章一開始開始的地方談到過 yum 這個東西,這個 yum 是通過分析 rpm 的標頭數(shù)據(jù)后,根據(jù)各軟件的相關性,制作出軟件依賴解決方案,然后可以自動處理軟件的依賴屬性問題,以解決軟件安裝或移除與升級的問題,事實上redhat在放出系統(tǒng)時,已經(jīng)搭建好了提供給全球使用的軟件源,所以理論上,我們不需要處理任何設定值,只要能夠連接上intelnet,就可以使用yum來更新數(shù)據(jù)了.
◆本地yum源配置◆
雖然yum工具,只需要你的主機連接互聯(lián)網(wǎng),就可以直接使用,但是有些時候我們需要自定義yum源實現(xiàn)加速,下面我們將配置一個本地yum源,來使用光盤中的軟件,其他網(wǎng)絡配置操作步驟相同,只是會在baseurl參數(shù)后面會有所區(qū)別.
1.首先默認情況下,我們的系統(tǒng)是沒有給我們配置yum源的,在這里我們需要在指定配置文件中創(chuàng)建一個以.repo結尾的文件.
代碼語言:javascript
復制
[root@localhost ~]# cat /etc/yum.repos.d/redhat.repo
[server]
name="redhat yum"
baseurl=file:///mnt
enabled=1
gpgcheck=0
>>[server] ----------> 代表容器的名稱,可以隨便寫
>>name ----------> 給容器起的名字,可自定義
>>mirrorlist ----------> 列出容器可以使用的鏡像站點,不用可屏蔽
>>baseurl ----------> 默認鏡像地址,可寫本地地址,也可寫ftp地址
>>enabled=1 ----------> 就是讓容器啟動
>>gpgcheck=0 ----------> 關閉證書檢測
>>gpgkey ----------> 證書保存位置
2.第一步配置完畢以后,接下來我們來檢查一下配置是否生效,和生成緩存文件.
代碼語言:javascript
復制
[root@localhost ~]# yum repolist all
loaded plugins: product-id, search-disabled-repos, subscription-manager
this system is not registered with an entitlement server. you can use subscription-manager.
repo id repo name status
server "rhel7" enabled: 5,099
repolist: 5,099
[root@localhost ~]# yum makecache
loaded plugins: product-id, search-disabled-repos, subscription-manager
this system is not registered with an entitlement server. you can use subscription-manager.
server | 4.3 kb 00:00:00
metadata cache created
到此本地yum倉庫就配置好啦,下面是一些拓展信息.
網(wǎng)易yum源倉庫地址
wget http://mirrors.163.com/.help/centos6-base-163.repo
wget http://mirrors.163.com/.help/centos7-base-163.repo
常用rpm包查詢網(wǎng)站
curl https://centos.pkgs.org/
curl http://rpmfind.net/
curl https://dl.fedoraproject.org/pub/
◆網(wǎng)絡yum源配置◆
由于redhat默認自帶的yum源需要注冊才能更新,我們想不花錢也可以更新,需要將redhat的yum源替換成centos的,如果你直接使用的是centos的系統(tǒng)那么這一步可以跳過了,你可以直接使用官方提供的yum倉庫地址,下面我們來看一下如何替換rhel系統(tǒng)的yum文件吧.
1.查看rhel7里面默認安裝的yum包文件,強制刪除自帶的yum包,再見.
代碼語言:javascript
復制
[root@localhost ~]# rpm -qa |grep "yum"
yum-rhn-plugin-2.0.1-10.el7.noarch
yum-metadata-parser-1.1.4-10.el7.x86_64
yum-3.4.3-158.el7.noarch
[root@localhost ~]# rpm -qa |grep "yum" |xargs rpm -e --nodeps
[root@localhost ~]# rpm -qa |grep "python-urlgrabber" |xargs rpm -e --nodeps
[root@localhost ~]# rpm -qa |grep yum
3.下載好centos的yum包文件,并忽略依賴,強制安裝.
代碼語言:javascript
復制
[root@localhost ~]# wget https://mirrors.aliyun.com/centos/7/os/x86_64/packages/yum-metadata-parser-1.1.4-10.el7.x86_64.rpm
[root@localhost ~]# wget https://mirrors.aliyun.com/centos/7/os/x86_64/packages/yum-3.4.3-161.el7.centos.noarch.rpm
[root@localhost ~]# wget https://mirrors.aliyun.com/centos/7/os/x86_64/packages/yum-plugin-fastestmirror-1.1.31-50.el7.noarch.rpm
[root@localhost ~]# wget https://mirrors.aliyun.com/centos/7/os/x86_64/packages/yum-utils-1.1.31-50.el7.noarch.rpm
[root@localhost ~]# wget https://mirrors.aliyun.com/centos/7/os/x86_64/packages/python-urlgrabber-3.10-9.el7.noarch.rpm
[root@localhost ~]# ls -lh
total 1.6m
-rw-r--r-- 1 root root 109k nov 12 10:19 python-urlgrabber-3.10-9.el7.noarch.rpm
-rw-r--r-- 1 root root 1.3m nov 12 10:27 yum-3.4.3-161.el7.centos.noarch.rpm
-rw-r--r-- 1 root root 28k jul 4 2014 yum-metadata-parser-1.1.4-10.el7.x86_64.rpm
-rw-r--r-- 1 root root 34k nov 12 10:27 yum-plugin-fastestmirror-1.1.31-50.el7.noarch.rpm
-rw-r--r-- 1 root root 122k nov 12 10:27 yum-utils-1.1.31-50.el7.noarch.rpm
[root@localhost ~]# rpm -ivh --nodeps *.rpm
4.更換yum源地址
代碼語言:javascript
復制
[root@localhost ~]# rm -fr /etc/yum.repos.d/*
[root@localhost ~]# wget -o /etc/yum.repos.d/centos-base.repo http://mirrors.aliyun.com/repo/centos-7.repo
5.修改centos-base.repo文件中的$releasever全部替換為版本號7,直接更新緩存即可.
代碼語言:javascript
復制
[root@localhost ~]# vim /etc/yum.repos.d/centos-base.repo
:%s/$releasever/7/g
[root@localhost ~]# yum clean all
[root@localhost ~]# yum makecache
◆yum 倉庫查詢◆
代碼語言:javascript
復制
[root@localhost ~]# yum --help
命令語法:[ yum [選項] 包名稱 ]
-y #自動化安裝,無需應答
installroot #安裝時指定安裝位置
search #搜索指定包文件
list #顯示全部可用列表
info #顯示軟件相關信息
grouplist #查詢所有已安裝和可安裝的軟件組
groupinfo #列出軟件組中包含的軟件
provides #通過關鍵字查找安裝包
指定安裝位置: 使用installroot指定軟件安裝位置.
代碼語言:javascript
復制
[root@localhost ~]# yum install -y --installroot=/tmp/ tree
loaded plugins: product-id, search-disabled-repos, subscription-manager
this system is not registered with an entitlement server. you can use subscription-manager.
server | 4.3 kb 00:00:00
(1/2): server/group_gz | 145 kb 00:00:00
(2/2): server/primary_db | 4.1 mb 00:00:00
package tree-1.6.0-10.el7.x86_64 already installed and latest version
nothing to do
[root@localhost ~]#
查軟件信息: 使用yum info命令查看軟件具體信息.
代碼語言:javascript
復制
[root@localhost ~]# yum info tree
loaded plugins: product-id, search-disabled-repos, subscription-manager
this system is not registered with an entitlement server. you can use subscription-manager.
installed packages
name : tree
arch : x86_64
version : 1.6.0
release : 10.el7
size : 87 k
repo : installed
from repo : server
summary : file system tree viewer
url : http://mama.indstate.edu/users/ice/tree/
license : gplv2+
description : the tree utility recursively displays the contents of directories in a
: tree-like format. tree is basically a unix port of the dos tree
: utility.
查包文件: 使用provides通過關鍵字查詢指定包,如下可知tree命令是由tree-1.6.0-10.el7.x86_64包安裝的.
代碼語言:javascript
復制
[root@localhost ~]# yum provides tree
loaded plugins: product-id, search-disabled-repos, subscription-manager
this system is not registered with an entitlement server. you can use subscription-manager.
tree-1.6.0-10.el7.x86_64 : file system tree viewer
repo : server
tree-1.6.0-10.el7.x86_64 : file system tree viewer
repo : @server
◆yum 清理緩存◆
代碼語言:javascript
復制
[root@localhost ~]# yum clean packages #清除緩存目錄下的軟件包
[root@localhost ~]# yum clean headers #清除緩存目錄下的 headers
[root@localhost ~]# yum clean oldheaders #清除緩存目錄下舊的 headers
[root@localhost ~]# yum clean all #清除下載的臨時軟件包和緩存
[root@localhost ~]# yum makecache #建立軟件包緩存,提高查詢速度
[root@localhost ~]# yum update #更新所有需要更新的軟件&內核
◆yum安裝卸載◆
代碼語言:javascript
復制
[root@localhost ~]# yum install [軟件名] #全部安裝
[root@localhost ~]# yum groupinsall [軟件組名] #安裝程序組
[root@localhost ~]# yum remove [軟件名] #刪除軟件
[root@localhost ~]# yum groupremove [軟件組名] #刪除軟件組
◆yum更新升級◆
代碼語言:javascript
復制
[root@localhost ~]# yum update [軟件名] #全部更新
[root@localhost ~]# yum check-update #檢查可更新的程序
[root@localhost ~]# yum upgrade [軟件名] #升級指定程序包
[root@localhost ~]# yum groupupdate [組軟件名] #升級程序組
◆安裝圖形界面◆
代碼語言:javascript
復制
[root@localhost ~]# yum -y install xorg*
[root@localhost ~]# yum -y groupinstall "x window system"
[root@localhost ~]# yum -y groupinstall desktop
[root@localhost ~]# yum -y groupinstall "chinese support"
[root@localhost ~]# startx
軟件管理之dpkg
"dpkg"是"debian packager"的簡寫,為"debian"專門開發(fā)的軟件管理系統(tǒng),方便軟件的安裝、更新及移除.所有源自"debian"的"linux "發(fā)行版都使用"dpkg",這個機制最早是由 debian linux 社區(qū)所開發(fā)出來的,通過 dpkg 的包管理, debian 打包軟件就能夠簡單的安裝,同時還能提供安裝后的軟件維護與更新,只要是衍生于 debian 的其他 linux 發(fā)行版都 dpkg 這個機制來管理軟件的,dpkg本身是一個底層的工具.上層的工具,如apt,被用于從遠程獲取軟件包以及處理復雜的軟件包關系,包括 b2d,ubuntu,kali linux 等.
代碼語言:javascript
復制
root@kali:~# dpkg --help
命令語法:[ dpkg [選項] 包名稱 ]
-i #安裝軟件包
-r #刪除軟件包
-p #刪除軟件包的同時刪除其配置文件
-l #顯示軟件包文件列表
-l #顯示已安裝軟件包列表
-c #顯示軟件包內文件列表
-s #顯示指定軟件包的詳細狀態(tài)
--unpack #解開軟件包
--confiugre #配置軟件包
安裝軟件: 通過使用-i選項安裝pack.deb軟件.
代碼語言:javascript
復制
root@kali:~# dpkg -i pack.deb
root@kali:~# dpkg --install pack.deb
刪除軟件: 通過使用-rp選項刪除pack.deb軟件(包括配置文件).
代碼語言:javascript
復制
root@kali:~# dpkg -rp pack.deb
root@kali:~# dpkg --remove pack.deb
列出軟件包: 通過使用-l選項列出系統(tǒng)已安裝的軟件包.
代碼語言:javascript
復制
root@kali:~# dpkg -l
詳細信息: 通過使用-s顯示指定軟件詳細信息.
代碼語言:javascript
復制
root@kali:~# dpkg -s bash
root@kali:~# dpkg -i bash
軟件管理之a(chǎn)pt
advanced package tool又名apt-get,是一款適用于unix和linux系統(tǒng)的應用程序管理器.最初于1998年發(fā)布,用于檢索應用程序并將其加載到debian linux系統(tǒng).apt-get成名的原因之一在于其出色的解決軟件依賴關系的能力.其通常使用.deb-formatted文件,但經(jīng)過修改后可以使用apt-rpm處理紅帽的package manager(rpm)文件,apt-get在linux社區(qū)得到廣泛使用,成為用來管理桌面、筆記本和網(wǎng)絡的重要工具.隨著linux在企業(yè)中的普及,windows和mac用戶了解如何使用apt-get加載應用程序有一定的好處.
代碼語言:javascript
復制
root@kali:~# apt --help
命令語法:[ apt [選項] 包名稱 ]
-i #安裝軟件包
list #根據(jù)名稱列出軟件包
search #搜索軟件包描述
show #顯示軟件包細節(jié)
install #安裝軟件包
remove #移除軟件包
autoremove #卸載所有自動安裝且不再使用的軟件包
update #更新可用軟件包列表
upgrade #通過安裝/升級軟件來更新系統(tǒng)
apt-get安裝:
代碼語言:javascript
復制
root@kali:~# sudo apt-get install package #安裝包
root@kali:~# sudo apt-get install package --reinstall #重新安裝包
root@kali:~# sudo apt-get -f install #修復安裝
root@kali:~# sudo apt-get bulid-dep package #安裝相關的編譯環(huán)境
apt-get刪除:
代碼語言:javascript
復制
root@kali:~# sudo apt-get remove package #刪除包
root@kali:~# sudo apt-get remove package --purge #完全刪除包
root@kali:~# sudo apt-get -f autoremove #把軟件附加項也刪掉
root@kali:~# sudo apt-get autoremove --purge software #刪除的更徹底些
apt-get更新:
代碼語言:javascript
復制
root@kali:~# sudo apt-get update #更新源
root@kali:~# sudo apt-get upgrade #更新已安裝的包
root@kali:~# sudo apt-get dist-upgrade #升級系統(tǒng)
apt-get修復:
代碼語言:javascript
復制
root@kali:~# sudo apt-get source package #下載該包的源代碼
root@kali:~# sudo apt-get clean && sudo apt-get autoclean #清楚無用的包
root@kali:~# sudo apt-get check #檢查是否有損壞的依賴
root@kali:~# sudo dpkg -i package #安裝后綴是deb的
apt-get搜索:
代碼語言:javascript
復制
root@kali:~# sudo apt-cache search package #搜索軟件包
root@kali:~# sudo apt-cache show package #獲取軟件包信息
root@kali:~# sudo apt-cache depends package #了解使用該包依賴哪些包
root@kali:~# sudo apt-cache redepends package #查看該包被哪些包依賴
go 插件功能的實現(xiàn)方式:官方實現(xiàn)golang 1.8 及以上版本提供了一個創(chuàng)建共享庫(shared object)的新工具,稱為 plugins。
init20210728 17:07:21 hello togettoyou20210728 17:07:21 i am plugin 定義一個插件總結:package 包名需要定義為 main必須有可導出的變量或函數(shù)不需要
main 函數(shù)插件加載時會先執(zhí)行 init 函數(shù)traefik yaegi 實現(xiàn)yaegi 是 traefik 開源的 go 解釋器。
traefik 自身的插件實現(xiàn)就是使用的 yaegi 。yaegi 運行在 go 運行時之上,可以直接作為嵌入式解釋器,或使用交互式 shell ,解釋運行 go 代碼。
創(chuàng)建代碼目錄結構如下:│ go.mod│ go.sum│ main.go│└─plugin └─src └─hello go.mod hello.go 這里有個注意點,yaegi 的插件需要放在 src
【獨家深度】一家傳統(tǒng)銀行邁入大數(shù)據(jù)時代的“艱難心(辛)路歷程”:銀行要提升系統(tǒng)的處理能力,傳統(tǒng)的ioe架構大部分需要垂直升級而不能水平擴展,而垂直升級的成本是非線性增長,曾光堯打了個比方:“一臺32核的小型機價格至少是同樣配置的x86服務器的10倍以上,但由32核升級為
雖然互聯(lián)網(wǎng)企業(yè)在當下只是對銀行某一塊金融業(yè)務造成了影響,但是,就如同曾光堯所說:“包括微眾銀行在內的各互聯(lián)網(wǎng)金融機構一旦拿到相關經(jīng)營牌照,肯定都會推出各種各樣的金融創(chuàng)新業(yè)務,同傳統(tǒng)銀行展開直接競爭。
曾光堯稱,以銀行內部的風險預警模型數(shù)據(jù)批處理為例的話,以前系統(tǒng)跑一次批量至少需要兩三個小時,而現(xiàn)在只需要20分鐘就可以;以前每天200萬次的并發(fā)量都讓系統(tǒng)不堪重負,現(xiàn)在我們的應用服務架構可實現(xiàn)單節(jié)點每秒七萬次以上的并發(fā)服務能力
曾光堯滿懷欣喜地告訴記者:“在客戶服務、風險管理、內部管控、營銷管理等多個業(yè)務領域,都提升了我們恒豐銀行的運營效率和市場競爭力,效果很明顯啊”。大數(shù)據(jù)相關新技術的運用,拓展了傳統(tǒng)應用的業(yè)務支持能力。
此外,基于大數(shù)據(jù)的系統(tǒng)架構,在容錯能力方面也會得到提升,即使出現(xiàn)個別機器宕機也不會丟失任何數(shù)據(jù),影響任何服務。不間斷的服務能力減少了系統(tǒng)的運維成本,也提高了系統(tǒng)開發(fā)效率。
塵埃落定!特斯拉(上海)獲營業(yè)執(zhí)照,注資1億:整理 | just出品 | ai科技大本營(公眾號id:rgznai100)5 月 14 日,據(jù)國家企業(yè)信用信息公示系統(tǒng)消息,特斯拉(上海)有限公司已于 5 月 10 日獲上海浦東新區(qū)市場監(jiān)管局核發(fā)的營業(yè)執(zhí)照
根據(jù)營業(yè)執(zhí)照信息,公司法人代表為 xiaotong zhu,應該就是特斯拉中國區(qū)總裁朱曉彤。百度百科資料顯示,朱曉彤畢業(yè)于新西蘭奧克蘭理工大學,并在美國杜克大學富卡商學院獲得 mba 學位。
早在去年 6 月,就曾有傳言稱特斯拉要在上海建廠,建廠選址為上海浦東新區(qū)臨港開發(fā)區(qū),不過當時上海臨港當時發(fā)公告對此予以否認。
繼中國政府上月宣布最早今年就將允許外資新能源汽車制造商全資擁有在華工廠后,特斯拉正在加緊推進其在華建廠計劃。
就連亞太區(qū)負責人也換成了土生土長的中國人任宇翔,現(xiàn)在負責全球銷售事務。而在這之前,馬斯克就曾公開表示特斯拉非常重視其在中國的發(fā)展和計劃。
蜜蜂輿情:2018年上半年湖南高校輿情分析報告:輿情發(fā)生地主要較為集中在湖南省會城市——長沙,其中岳麓區(qū)大學城達到8件。此外,在湘潭、衡陽等地區(qū)的高校輿情產(chǎn)生的頻次也較高(見圖2)。
圖2 2018年上半年湖南高校輿情事件地域分布 3、湖南高校輿情事件傳播渠道分析 從傳播渠道來看,微博所產(chǎn)生的信息數(shù)量已遠遠超過傳統(tǒng)媒體,占比30%;其次是微信,占比25%,其中湖南科技大學宿舍發(fā)生
另值得一提的是,社區(qū)論壇、報刊、政務網(wǎng)站對事件的曝光相對較少,占比均為10%。
在公共安全相關的高校輿情中,不僅有危及學生人身安全的毆打事件,更有如寢室死亡、高樓墜亡等大學生非正常死亡負面事件(見圖4)。
此外,由高校行政管理漏洞也受到網(wǎng)民關注。這類型事件日益獲得關注的同時,也反映出學生在自身權利受到損害時,主動維權意識的增強。
轉載請注明出處,本站網(wǎng)址:
http://www.nds518.com/news_2380.html