部署虛擬環境安裝Linux系統

 

目錄                                                             php

 準備工做html

安裝linux系統前端

重置root管理員密碼node

源代碼編譯linux

RPMc++

YUM軟件倉庫shell

配置本地YUM倉庫數據庫

初始化及啓動進程apache

參考資料centos

 

準備工做                                                           

  電腦:個人配置是24G內存+i7+512G SSD+1060顯卡 (注意:內存必定要8G以上,SSD硬盤)

  CPU須要支持VT(Virtualization Technology,虛擬化技術):VT,指的是讓單臺計算機可以分割出多個獨立資源區,並讓每一個資源區按照須要模擬出系統的一項技術,其本質就是經過中間層實現計算機資源的管理和再分配,讓系統資源的利用率最大化。

  軟件:VMware WorkStation Pro 12 (老劉推薦的,RHCE 7.0考試環境用的VM12)

  安裝虛擬機:略,網上教程不少

  鏡像或工具校驗:保證軟件包的安全與完整性 (linux的鏡像能夠去阿里雲或網易去下載)

 

安裝linux系統                                               

1.虛擬機設置

  新建虛擬機

                       步驟:建立新的虛擬機--新建虛擬機嚮導--稍後安裝操做系統--操做系統「Linux」,版本爲「Red Hat Enterprise Linux 7 64位—填寫虛擬機名稱和安裝路徑--「最大磁盤大小」設置爲20.0GB(默認便可)

虛擬機設置

   步驟:虛擬機設置--硬件--內存(最低1G)--處理器(開啓虛擬化功能,核心保持與物理機一致能夠提升性能)--光驅(使用IOS鏡像)--網絡適配器(僅主機模式)--顯示器(自動檢測)

圖2-1 處理器,光驅設置

圖2-2 網卡,顯示器設置

 

  橋接模式:至關於在物理主機與虛擬機網卡之間架設了一座橋樑,從而能夠經過物理主機的網卡訪問外網。

  NAT模式:讓VM虛擬機的網絡服務發揮路由器的做用,使得經過虛擬機軟件模擬的主機能夠經過物理主機訪問外網,在真機中NAT虛擬機網卡對應的物理網卡是VMnet8。

  僅主機模式:僅讓虛擬機內的主機與物理主機通訊,不能訪問外網,在真機中僅主機模式模擬網卡對應的物理網卡是VMnet1。

  注意:把USB控制器、聲卡、打印機設備等不須要的設備通通移除掉。移掉聲卡後能夠避免在輸入錯誤後發出提示聲音,確保本身在從此實驗中思緒不被打擾。

 

2.安裝linux系統

  進入安裝界面,選擇Install Red Hat Enterprise Linux 7.0選項來直接安裝Linux系統。

   步驟:安裝嚮導的初始化--選擇系統的安裝語言--安裝系統界面--選擇系統軟件類型--配置網絡和主機名--系統安裝媒介的選擇-- RHEL 7系統的安裝界面--設置root管理員的密碼--建立本地的普通用戶--系統安裝完成,重啓—啓用Kdump服務--系統的歡迎界面

圖2-3 安裝界面選擇

圖2-4 安裝界面,選擇系統軟件

圖2-5 網絡,主機名,硬盤設置

圖2-6 系統安裝過程,root密碼設置

圖2-7 啓用Kdump服務

圖2-8  系統的歡迎界面

 

重置root管理員密碼                                       

1.查看當前系統版本

  [root@redhat7 桌面]# cat /etc/redhat-release

  Red Hat Enterprise Linux Server release 7.0 (Maipo)

2.重置root管理員密碼(redhat7.0)

  步驟:引導界面經過按鍵e進入內核編輯界面--在linux16這一行最後插入 rd.break (注意,rd.break前面要加個 \)--ctrl+x重啓進入緊急救援模式--依次輸入一下命令:

  mount -o remount,rw /sysroot

  chroot /sysroot

  passwd

  touch /.autorelabel

  exit

 reboot

 

圖2-9  引導界面

 

圖2-10 內核編輯界面

 

圖2-11 緊急救援模式界面

圖2-12 密碼重置,舊密碼已失效

 

3.重置root管理員密碼(redhat6.4)

  重啓系統,按E或ESC進入GRUB啓動菜單

  按E進入編輯界面,修改啓動參數

 

  編輯內核啓動參數;能夠在行尾添加single 或 1,表示進入單用戶模式;按enter鍵確認後按b鍵進入boot模式

  修改系統密碼;完成後輸入重啓命令

  從新登錄系統

 

 

 

 

源代碼編譯                                                   

  優勢:得到最新的軟件版本,及時修復bug;根據用戶須要,靈活定製軟件功能

  應用場合

   安裝較新版本的應用程序時;自由軟件的最新版本大都以源碼的形式最早發佈

   當前安裝的程序沒法知足須要時;編譯安裝可由用戶自行修改、定製功能

   須要爲應用程序添加新的功能時;用戶能夠從新配置、自由修改源代碼,加入新的功能

 

1.編譯安裝源代碼包

  完整性校驗:md5sum校驗工具;計算MD5校驗和,並與官方提供的值相比較,判斷是否一致;對於下載回來的軟件包文件,若是MD5校驗和與官方提供的不一致,則說明該軟件包在網絡傳輸過程當中可能被非法改動過

  對於校驗和不一致的軟件包,應儘可能不要使用,以避免帶來病毒、木馬等不安全因素

 

2.編譯安裝的基本過程

  環境:需安裝支持C/C++程序語言的編譯器,如:gcc-4.4.7-4.el六、gcc-c++-4.4.7-4.el6 ;make-3.81-20.el6.……

  步驟1.解包:習慣上將軟件包釋放到/usr/src/ 目錄;解包後的源代碼文件位置: /usr/src/軟件名-版本號/

  步驟2. 配置:使用源碼目錄中的configure 腳本;執行「./configure --help」 能夠查看幫助;典型的配置選項: --prefix=軟件安裝目錄在linux系統中經過源代碼方式安裝軟件時,也能夠將全部程序文件安裝到同一個文件夾,如:(/configure—prefix=/usr/local/apache)中。

  步驟3. 編譯:執行make 命令

  步驟4. 安裝:執行make install 命令

 

圖2-13 源代碼安裝步驟

  在linux中編譯源代碼須要使用gcc. Make編譯環境;從源代碼安裝應用程序的基本過程包括解包. 配置. 編譯. 安裝這四個步驟

 

3.configure腳本的通用功能

  configure通常都會接受如下幾個編譯選項:

  --prefix=          :指定安裝的路徑

  --sysconfdir=      :指定配置文件目錄

  --enable-feature   :啓用某個特性

  --disable-fecture   :禁用特性

  --with-function    :啓用某功能

  --without-function :禁用某功能

  不一樣的程序,其configure選項不盡相同,應使用"./configure --help"獲取具體的信息。

 

4.源碼編譯安裝須知

  4.1.上面的每個步驟都不能出錯,不然後一步都不能正常進行。

  4.2.上面的步驟每一步若是出現警告或錯誤,若是步驟未中止而是繼續,則屬於可忽略錯誤或警告,不影響安裝。可是進行的步驟中止了出現警告或錯誤,則根據步驟考慮對策。可使用「$?」命令查看上一個命令是否正確執行,若是是返回0則是正確,其餘的則是錯誤。

  4.3.卸載時,只需刪除安裝目錄便可。

所以,若要便於刪除,最好將源碼程序安裝在/usr/local/對應的目錄下。例如apache2安裝在/usr/local/apache2下。

  4.4.經過源碼編譯的軟件,須要作一些後續操做,雖非必須,可是都是個性化定製,方便之後的操做。個性化定製大體包括如下幾項:

  4.4.1.將安裝路徑下的命令路徑加入到環境變量。

   shell> echo "export PATH=/usr/local/apache/bin:$PATH" > /etc/profile.d/apache.sh

   shell> chmod +x /etc/profile.d/apache.sh

   shell> source /etc/profile.d/apache.sh

  4.4.2.按需求定製服務啓動腳本,並考慮是否加入開機啓動項。

  4.4.3.輸出頭文件和庫文件。頭文件庫文件不少時候只是爲其餘程序提供的,因此可能不輸出它們的路徑也不會影響該程序的運行。

    # 輸出頭文件 shell> ln -s /usr/local/apache/include /usr/include/apache

   # 輸出庫文件

   shell> echo "/usr/local/apache/lib" >/etc/ld.so.conf.d/apache.conf

   shell> ldconfig

  4.4.4.導出man路徑 shell> echo  "MANPATH /usr/local/apache/man" >> /etc/man.conf

 

RPM(紅帽軟件包管理器)                                     

  rpm=源代碼+安裝規則-->下降軟件安裝難度(經過將程序源代碼與安裝規則打包到一塊兒,無需用戶手動設置)

  命名格式:軟件名-軟件版本-發佈次數.操做系統類型.硬件架構類型.rpm

 

圖2-14 RPM命名格式

 

  1.查詢 RPM 軟件包信息

  1.1.查詢已安裝的rpm軟件信息

   語法:rpm  -q[子選項]  [軟件名]

   用法:結合不一樣的子選項完成不一樣查詢

    -qa:查看系統中已安裝的全部RPM軟件包列表

    -qi:查看指定軟件的詳細信息(--info)

    -ql:查詢指定軟件包所安裝的目錄、文件列表(--list)

  1.2.查詢文件或目錄屬於哪一個RPM 軟件

   語法:rpm  - qf文件或目錄名

  1.3.查詢未安裝的RPM 包文件

   語法:rpm  - qp[子選項]  RPM包文件

  用法: -qpi:經過.rpm包文件查看該軟件的詳細信息

   -qpl:查看.rpm安裝包內所包含的目錄、文件列表

 注意:使用rpm命令只能查詢經過 RPM方式安裝的軟件包信息用其餘途徑安裝到系統中的軟件包,rpm命令將沒法獲取相關信息

 

2. 安裝、升級、卸載 RPM 軟件包

  2.1.安裝或升級RPM軟件

   語法:rpm  [選項]  RPM包文件...

   用法:-i:安裝一個新的rpm 軟件包

    -U:升級某個rpm 軟件,若本來未裝,則進行安裝

   -h:以「#」號顯示安裝的進度

   -v:顯示安裝過程當中的詳細信息

  2.2.卸載指定的RPM軟件

    語法:rpm  -e  軟件名

        --nodeps:刪除軟件包,即便有依賴關係的軟件包任然安裝在系統上

        --test:不執行任何動做,只打印輸出

 

3. 維護RPM數據庫

   linux中保留了當前安裝軟件的數據庫,該數據庫位於/var/lin/rpm/目錄中。使用file /var/lib/rpm/*命令查看目錄內容,能夠看到都是二進制形式的散列數據庫文件。

查看數字簽名

 

4.解決軟件包依賴關係

  安裝有依賴關係的多個軟件時:被依賴的軟件包須要先安裝;可同時指定多個.rpm 包文件進行安裝

  卸載有依賴關係的多個軟件時:依賴其餘程序的軟件包須要先卸載;可同時指定多個軟件名進行卸載

  忽略依賴關係:結合「--nodeps」選項,但可能致使軟件異常

 

擴展:RPM相關注意事項

  RPM軟件包的先決條件能夠運用命令行選項—requires和—provides直接查看

   安裝vsftpd的先決條件: 命令rpm -q -requires vsftpd

   顯示軟件包顯性提供內容:命令rpm -q -provides vsftpd

   顯示vsftpd的安裝腳本: 命令rpm -q --scripts vsftpd

   按時間順序顯示系統上安裝的RPM包:命令rpm -qa –last

  解決RPM的些常見問題(訪問數據庫)

   Killall-9 rpm 命令殺死全部當前掛起的rpm進程

   將RPM數據庫目錄(/var/lib/rpm/)中全部以 _db. 開頭的文件刪除

注意:RPM安裝方式在實際生產環境中並不經常使用(依賴關係太多,不如yum方便),通常經常使用的安裝方式爲源碼,yum及腳本安裝。

 

YUM軟件倉庫                                                 

   Yum(全稱爲 Yellow dog Updater, Modified)是Linux系統中的Shell前端軟件包管理器。基於RPM包管理,可以從指定的服務器(YUM軟件倉庫)自動下載RPM包而且安裝,能夠自動處理依賴性關係,而且一次安裝全部依賴的軟件包。

  簡單來講就是:進一步下降軟件的安裝難度。(經過將大量的、經常使用的RPM軟件包存放到一塊兒,根據用戶的需求而進行自動安裝)

圖2-15 Yum軟件倉庫技術拓撲

 

  yum提供了查找、安裝、刪除某一個、一組甚至所有軟件包的命令,並且命令簡潔而又好記。

   語法: yum (選項) (參數)

   選項: -y:對全部的提問都回答「yes」;

              -c:指定配置文件;

              -q:安靜模式;

   參數: install:                 安裝rpm軟件包;

              update:                更新rpm軟件包;

             check-update:      檢查是否有可用的更新rpm軟件包;

             remove/erase:      刪除指定的rpm軟件包;

             list:                        顯示軟件包的信息;

            search:                  檢查軟件包的信息;

            info:                      顯示指定的rpm軟件包的描述信息和概要信息;

            clean:                   清理yum過時的緩存;

            resolvedep:        顯示rpm軟件包的依賴關係;

            localupdate:       顯示本地rpm軟件包進行更新;

            deplist:               顯示rpm軟件包的全部依賴關係。

 

實例,部分經常使用的命令包括:

  自動搜索最快鏡像插件:yum install yum-fastestmirror

  安裝yum圖形窗口插件:yum install yumex

  查看可能批量安裝的列表:yum grouplist

  yum groupinsall group1       #安裝程序組group1

  yum check-update           #檢查可更新的程序

  yum upgrade package1       #升級指定程序包package1

  yum groupinfo group1        #顯示程序組group1信息

  yum search string            #根據關鍵字string查找安裝包

 

配置本地YUM倉庫(基於iOS鏡像)                                          

 /etc/yum.conf是yum的默認文件,裏面配置的也是全局默認項。

   [root@server2 ~]# cat /etc/yum.conf

   [main]

    cachedir=/var/cache/yum/$basearch/$releasever   <==緩存目錄

     keepcache=0     <==是否保留緩存,設置爲1時,安裝包時所下載的包將不會被刪除

     debuglevel=2               <==調試信息的級別

    logfile=/var/log/yum.log   <==日誌文件位置

    exactarch=1                <==設置爲1將只會安裝和系統架構徹底匹配的包

    obsoletes=1                <==是否容許更新舊的包

    gpgcheck=1                 <==是否要進行gpg check

    plugins=1                  <==是否容許使用yum插件

    installonly_limit=5

    bugtracker_url=http://bugs.centos.org/set_project.php?project_id=23&ref=http://bugs.centos.org/bug_report_page.php?category=yum

distroverpkg=centos-release  <==指定基準包,yum會根據這個包判斷髮行版本

 

1.軟件倉庫的提供方式 :FTP服務:ftp://...... ;HTTP服務:http://...... ;本地目錄:file:///.......

2.RPM軟件包的來源 :Red Hat發佈的RPM包集合 ;第三方組織發佈的RPM包集合 ;用戶自定義的RPM包集合

3.構建RHEL 6軟件倉庫(本地源):RPM包來自RHEL 6 DVD光盤,經過FTP、HTTP

或本地目錄提供給客戶機

 3.1.建立文件夾/cdrom,將光盤文件複製到/cdrom

   [root@RedHat6 桌面]# mkdir /cdrom

   [root@RedHat6 桌面]# cp -rf /media/RHEL_6.4\ x86_64\ Disc\ 1/* /cdrom/   

 3.2.進入/etc/yum.reposd/目錄刪除原有文件

   [root@RedHat6 桌面]# cd /etc/yum.repos.d/     

   [root@RedHat6 yum.repos.d]# rm -rf *

 3.3.編輯配置文件local.reop

   [root@RedHat6 yum.repos.d]# cat local.repo

   [cdrom]                             <==倉庫類別

   name=cdrom                   <==倉庫名稱(說明)

   baseurl=file:///cdrom        <==URL訪問路徑

   enabled=1                      <==啓用此軟件倉庫

    gpgcheck=0                   <==驗證軟件包的簽名(1是,0否)

 3.4.獲取yum列表:驗證yum配置是否成功

   [root@RedHat6 yum.repos.d]# yum clean all            <==清空緩存

   [root@RedHat6 yum.repos.d]# yum makecache            <==生成元數據緩存

   [root@RedHat6 yum.repos.d]# yum list                 <==查詢軟軟件包列表

 

YUM緩存目錄:存放下載的軟件包、倉庫信息等數據,位於/var/cache/yum/$basearch/$releasever

 

初始化及啓動過程                                           

Linux操做系統的開機過程是這樣的,即從BIOS開始,而後進入Boot Loader,再加載系統內核,而後內核進行初始化,最後啓動初始化進程。初始化進程做爲Linux系統的第一個進程,它須要完成Linux系統中相關的初始化工做,爲用戶提供合適的工做環境。

 

圖2-13 linux6.0 初始化過程

1.詳細步驟:( centos6)

  1.加載BIOS的硬件信息,獲取第一個啓動設備

  2.讀取第一個啓動設備MBR的引導加載程序(grub)的啓動信息

  3.加載核心操做系統的核心信息,核心開始解壓縮,並嘗試驅動全部的硬件設備

  4.核心執行init程序,並獲取默認的運行信息

  5.init程序執行/etc/rc.d/rc.sysinit文件

  6.啓動核心的外掛模塊

  7.init執行運行的各個批處理文件(scripts)

  8.init執行/etc/rc.d/rc.local

  9.執行/bin/login程序,等待用戶登陸

  10.登陸以後開始以Shell控制主機

 

2.CentOS7與6版本的不一樣之處:

  6 : grub0.9和upstart

  7 : grub2和systemd

 

3.詳細步驟:( centos7)

  1.UEFi或BIOS初始化,運行POST開機自檢

  2.選擇啓動設備

  3.引導裝載程序:grub2

  4.加載裝載程序的配置文件:/boot/grub2/grub.cfg

  5.加載initramfs驅動模塊:/boot/initramfs-3.10.0-693.el7.x86_64.img

  6.加載內核:/boot/vmlinuz-3.10.0-693.el7.x86_64

  7.內核初始化:systemd

  8.執行initrd.target全部單元,包括掛載/etc/fstab

  9.從initramfs根文件系統切換到磁盤根目錄

  10.systemd執行默認target配置,配置文件/etc/systemd/system/default.target

  11.systemd執行sysinit.target初始化系統及basic.target準備操做系統

  12.systemd啓動multi-user.target下的本機與服務器服務

  13.systemd執行multi-user.target下的/etc/rc.d/rc.local

  14.Systemd執行multi-user.target下的getty.target及登陸服務

  15.若是啓動圖形界面systemd執行graphical須要的服務

 

4. centOS 6 與 centOS 7的區別

 

System V init運行級別

systemd目標名稱

做用

0

runlevel0.target, poweroff.target

關機

1

runlevel1.target, rescue.target

單用戶模式

2

runlevel2.target, multi-user.target

等同於級別3

3

runlevel3.target, multi-user.target

多用戶的文本界面

4

runlevel4.target, multi-user.target

等同於級別3

5

runlevel5.target, graphical.target

多用戶的圖形界面

6

runlevel6.target, reboot.target

重啓

emergency

emergency.target

緊急Shell

表1-1 systemd與System V init的區別和做用

System V init命令(RHEL 6系統)

systemctl命令(RHEL 7系統)

做用

service foo start

systemctl start foo.service

啓動服務

service  foo restart

systemctl restart foo.service

重啓服務

service foo stop

systemctl stop foo.service

中止服務

service foo reload

systemctl reload foo.service

從新加載配置文件(不終止服務)

service foo status

systemctl status foo.service

查看服務狀態

表1-2 systemctl管理服務的啓動、重啓、中止、重載、查看狀態等經常使用命令

System V init命令(RHEL 6系統)

systemctl命令(RHEL 7系統)

做用

chkconfig foo on

systemctl enable foo.service

開機自動啓動

chkconfig foo off

systemctl disable foo.service

開機不自動啓動

chkconfig foo

systemctl is-enabled foo.service

查看特定服務是否爲開機自動啓動

chkconfig --list

systemctl list-unit-files --type=service

查看各個級別下服務的啓動與禁用狀況

表1-3 systemctl設置服務開機啓動、不啓動、查看各級別下服務啓動狀態等經常使用命令

 

5.centos7相比centos6作了哪些改進?

   5.1.systemd取代了init,成爲系統的第一個進程,而且init是串行啓動,而systemd是並行啓動

   5.2.內核版本的升級,系統安全補丁獲得加強。

   5.3.文件系統由ext4升級到xfs,XFS比EXT4更適合大文件處理,但消耗的CPU資源是EXT4的兩倍

   5.4.防火牆firewalld代替了iptables

 

6. RHEL 7修改默認級別方法(老劉書上只有一條命令,不是很清楚)

6.1.打開inittab,發現熟悉的inittab中沒有了修改默認運行級別,中間沒有了熟悉的 id:5:initdefault

 

圖2-14 inittabp默認配置

 

   6.2.RHEL7 使用systemd建立符號連接指向默認運行級別

    步驟:

      1.首先刪除已經存在的符號連接  rm /etc/systemd/system/default.target

      2.默認級別轉換爲3(文本模式)  ln -sf /lib/systemd/system/multi-user.target /etc/systemd/system/default.target

         或者默認級別轉換爲5(圖形模式) ln -sf /lib/systemd/system/graphical.target /etc/systemd/system/default.target

      3.重啓 reboot

圖2-15 默認級別轉換測試

 

這裏曬下讀書筆記

 

參考資料                                                                               

 

  劉瑞       Linux就該怎麼學

  駿馬金龍   http://www.javashuo.com/article/p-aobxvaow-m.html

  (|^_^|||)  http://www.javashuo.com/article/p-njtamguy-m.html

  Linux公社 https://www.linuxidc.com/Linux/2014-07/104073.htm

相關文章
相關標籤/搜索