Linux總結

liunx學習 ---此爲總結

liunx安裝軟件 一、rpm 二、yum(dnf) 三、編譯安裝
我用的是centos7系統系統必轉rpm工具
首先有兩個操做
關閉防火牆 :systemctl disable firewalld
和關閉seliunx :sed -i 's/SELINUX=disabled/SELINUX=disabled=enforcing/'
 
  php

一、rpm

包安裝
rpm {-i|--install} [install-options] PACKAGE_FILE…
-v: verbose -vv:(更詳細)
-h: 以#顯示程序包管理執行進度
[install-options]
--test: 測試安裝,但不真正執行安裝,即dry run模式
--nodeps:忽略依賴關係
--replacepkgs | replacefiles
--nosignature: 不檢查來源合法性
--nodigest:不檢查包完整性
--noscripts:不執行程序包腳本
%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: 強制安裝
 
 
包查詢
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:程序包自帶的腳本
--provides:列出指定程序包所提供的CAPABILITY
-R:查詢指定的程序包所依賴的CAPABILITY
 
 
包卸載:
rpm {-e|--erase} [--allmatches] [--nodeps] [--noscripts] [--notriggers] [--test] PACKAGE_NAME ...
當包卸載時,對應的配置文件不會刪除, 以FILENAME.rpmsave形式保留
 
 
包校驗
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-指向(2)路徑不匹配
U User ownership differs-用戶擁有不一樣
G Group ownership differs-組用戶不一樣
T mTime differs-內容被改變
P capabilities differ-能力不一樣
rpm -V packagename 能夠看到如上對應的每個被修改的參數。
 
 
實驗:假設系統沒有裝一款工具
首先準備號工具的編譯好的包
rpm -ivh 對應包在系統內位置 (即完成包的安裝)
假設最小化安裝系統,之際預裝了rpm工具,須要準備全部須要的包執行對應的:
rpm -ivh packagename
...
總結:對多款工具軟件,和有依賴的包,安裝過於麻煩
 
 前端


二、yum

YUM: Yellowdog Update Modifier,rpm的前端程序,可解決軟件包相關依賴性,可在多個庫之間定位軟件包,up2date的替代工具
yum repository: yum repo,存儲了衆多rpm包,以及包的相關的元數據文件(放置於特定目錄repodata下)
支持文件服務器:
一、http://二、https://三、ftp://四、file://
yum客戶端配置文件:
/etc/yum.conf:爲全部倉庫提供公共配置
/etc/yum.repos.d/*.repo:爲倉庫的指向提供配置
  yum爲全部倉庫提供公共配置
vim /etc/yum.config
[main] cpu架構 版本號
cachedir=/var/cache/yum/$basearch/$releasever 緩存目錄
keepcache=0 是否保存緩存 0不保存
debuglevel=2 調試用的
logfile=/var/log/yum.log 日誌目錄
exactarch=1 精確匹配yum
obsoletes=1 過期包
gpgcheck=1 檢查合法性完整性
plugins=1 插件
installonly_limit=5 最多並同時執行5個 同時只能一我的用
bugftrackel_url=htt ://
distroverpkg=centos-release
 
 
  yum倉庫 配置文件/etc/yum.repos.d
倉庫指向的定義:
[repositoryID] 倉庫名
name=Some name for this repository
baseurl=url://path/to/repository/ 倉庫真實路徑
enabled={1|0}
gpgcheck={1|0} 檢查包的完整性和簽名
gpgkey=URL 導gpgkey
enablegroups={1|0} 啓用組
failovermethod={roundrobin|priority}
---roundrobin:意爲隨機挑選,默認值--priority:按順序訪問
cost= 默認爲1000
 
 
yum的repo配置文件中可用的變量:
$releasever: 當前OS的發行版的主版本號
$arch: 平臺,i386,i486,i586,x86_64等
$basearch:基礎平臺;i386, x86_64
$YUM0-$YUM9:自定義變量
 
 
yum命令的用法:
yum [options] [command] [package ...]
yum repolist [all|enabled|disabled]--顯示倉庫列表:
yum list-顯示程序包:
yum list [all | glob_exp1] [glob_exp2] [...]
yum list {available|installed|updates} [glob_exp1] [...]有效|以裝|可更
yum install package1 [package2] [...]--安裝程序包:
yum reinstall package1 [package2] [...] (從新安裝)
yum update [package1] [package2] [...]--升級程序包:
yum downgrade package1 [package2] [...] (降級)
yum check-update--檢查可用升級:
yum remove | erase package1 [package2] [...]--卸載程序包:
yum info [...]--查看程序包information:
查看指定的特性(能夠是某文件)是由哪一個程序包所提供:
yum provides | whatprovides feature1 [feature2] [...]
清理本地緩存:清除/var/cache/yum/$basearch/$releasever緩存
yum clean [ packages | metadata | expire-cache | rpmdb | plugins | all ]
yum makecache --構建緩存:
yum search string1 [string2] [...]--搜索:
yum deplist package1 [package2] [...]--查看指定包所依賴的capabilities:
查看yum事務歷史:
yum history [info|list|packages-list|packages-info|summary|addon-info|redo|undo|rollback|new|sync|stats]
yum history
yum history info 6
yum history undo 6
 
 
yum命令--安裝及升級本地程序包:
yum localinstall rpmfile1 [rpmfile2] [...]--(用install替代)
yum localupdate rpmfile1 [rpmfile2] [...]--(用update替代)
包組管理的相關命令:
yum groupinstall group1 [group2] [...]
yum groupupdate group1 [group2] [...]
yum grouplist [hidden] [groupwildcard] [...]
yum groupremove group1 [group2] [...]
yum groupinfo group1 [...]
 
 
yum的命令行選項:
--nogpgcheck:禁止進行gpg check
-y: 自動回答爲「yes」
-q:靜默模式
--disablerepo=repoidglob:臨時禁用此處指定的repo
--enablerepo=repoidglob:臨時啓用此處指定的repo
--noplugins:禁用全部插件
 
 
yum-config-manager 自動生成源
生成172.16.0.1_cobbler_ks_mirror_CentOS-X-x8664.repo
yum-config-manager --add-repo= http://172.16.0.1/cobbler/ks_mirror/7/
yum-config-manager --disable 「倉庫名" 禁用倉庫
yum-config-manager --enable 「倉庫名」 啓用倉
/etc/
yum.conf(這裏我選擇了系統自帶的配置文件展現)
[main]
cachedir=/var/cache/yum/$basearch/$releasever
keepcache=0
debuglevel=2
logfile=/var/log/yum.log
exactarch=1
obsoletes=1
gpgcheck=1
plugins=1
installonly_limit=5
bugtracker_url=http://bugs.centos.org/ set_project.php?project_id=19&ref=http://bugs.centos.org/bug_report_page.php?category=yum
distroverpkg=centos-release
--(這是備註)
-- This is the default, if you make this bigger yum won't see if the metadata
-- is newer on the remote and so you'll "gain" the bandwidth of not having to
-- download the new metadata and "pay" for it by yum not having correct
-- information.
-- It is esp. important, to have correct metadata, for distributions like
-- Fedora which don't keep old packages around. If you don't like this checking
-- interupting your command line usage, it's much better to have something
-- manually check the metadata once an hour (yum-updatesd will do this)
-- metadata_expire=90m
-- PUT YOUR REPOS HERE OR IN separate files named file.repo
--in /etc/yum.repos.d
/etc/yum.repos.d/
base.repo(這是我本身用阿里雲簡單配置的yum源)
[base]
name=aliyun base
baseurl=https://mirrors.aliyun.com/centos/$releasever/os/$basearch/
gpgcheck=1
gpgkey=https://mirrors.aliyun.com/centos/$releasever/os/$basearch/RPM-GPG-KEY-CentOS-$releasever
enbaled=1
接下里就能夠使用yum安裝軟件了
yum install httpd -y (自動回答yes安裝)
 
 
DNF (DaNdiFied)
配置文件:/etc/dnf/dnf.conf
倉庫文件:/etc/yum.repos.d/ *.repo
日誌: /var/log/dnf.rpm.log
 
 
dnf 用法:與yum一致 man dnf
dnf [options] <command> [<arguments>...]
dnf --version
dnf repolist
dnf clean all
dnf makecache
dnf list installed
dnf list available
dnf search nano
dnf history
dnf history undo 1
(不作贅述,自我理解) node


 
 

三、編譯安裝

源代碼-->預處理-->編譯-->彙編-->連接-->執行
例:對單個c文件編譯
拿到c源代碼,使用gcc編譯成二進制文件,最後運行
gcc file.c -o file
實驗:實驗開始前我用yum裝了yum install gcc ncuress-devel
準備cmatrix-1.2a.tar.gz源碼包放入/data下(在一個分區一個路徑下操做)
一、tar xvf cmatrix-1.2a.tar.gz 解包
cd cmatrix-1.2a
--這時裏面會有 README(軟件說明) INSTALL(安裝教程)
(這裏軟件內部有開發人員提供的configure工具直接對源碼包的全部c文件編譯
--configuer --help 能夠看到軟件多個特性和怎麼設置特性
二、.configure --prefix=/apps/cmatrix (我只定義了安裝位置方便卸載)
(這裏會出提示你有未安裝的包-我前面安裝過了)
安裝包事後
三、make --這裏能夠針對cpu狀況使用 make -j cpu核數 加快編譯
(若是出錯安裝包事後執行不了make刪除包從頭來過這時並無生成一些其餘文件)
--make工做原理: 用 Makefile 部署須要在內部定義安裝路徑和多個特性
configure腳本定義特性藉助模板文件Makefile.in生成Makefile
四、make install
五、bash cmatrix --運行
--也能夠加入PATH變量直接使用:
echo 'PATH=/apps/cmatrix/bin:$PATH' >> /etc/profile.d/cmatrix.sh
. /etc/profile.d/cmatrix.sh
卸載(由於只指定了一個安裝位置,因此卸載方便)
rm -rf /apps/cmatrix
rm -rf /data/cmatrix-1.2a
 vim

相關文章
相關標籤/搜索