歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux技術 >> 壓縮工具與RPM和yum基礎

壓縮工具與RPM和yum基礎

日期:2017/3/3 12:27:36   编辑:Linux技術
#常見的壓縮工具:gzip/gunzip/zcat
# gzip [options]...file...
# -d 解壓縮 相當於gunzip
# -# 指定一個壓縮比 1-9 默認為6 數字越大,表示壓縮越狠
# -c 將壓縮結果,輸出到標准輸出
#用法: gzip grep*
#解gzip -d grep*
#解gunzip grep*
#重定向的方式: gzip -c passwd.sh > /root/passwd.gz
#[root@localhost ~]# cp /var/log/messages ./
#[root@localhost ~]# mkdir gzip
#[root@localhost ~]# cd gzip
#[root@localhost gzip]# cd
#[root@localhost ~]# cp messages gzip/
#[root@localhost ~]# cd gzip
#[root@localhost gzip]# ls
#messages
#[root@localhost gzip]# ll
#total 44
#-rw-------. 1 root root 43687 May 15 14:00 messages
#[root@localhost gzip]# gzip messages
#[root@localhost gzip]# ls -lh
#total 4.0K
#-----. 1 root root 3.5K May 15 14:00 messages.gz
#2,bzip2/bunzip2/bzcat 比gzip壓縮更狠
#-d 解壓縮
#-# 壓縮比 1-9數字越大壓縮比越大
#-k keep 保留源文件
#3,xz/nuxz/xzcat
#xz[options]....file...
# -d 解壓縮
# -# 壓縮比:默認為6 ,1-9 數字越大壓縮越狠
# -k keep保留源文件
#注意目錄無法壓縮
#打包工具:tar歸類
# tar [options]..file..
#1,創建一個歸檔 (歸檔不刪除源文件)
# -c -f : /path/to/somefile.tar files:歸類
# -cf: /path/to/somefile.tar files
# -v 顯示過程
# -xf 展開歸類
#查看文件列表
# -tf
#歸檔壓縮
# -z :調用gzip :-zcf:創建壓縮
# -zxf; 解壓縮
# -j: bzip2 :-jcf -jxf
# -J:xz -Jcf -Jxf
# -C /path /to/somedir :指定到某個目錄中
#寫一個腳本,每天夜裡3點,備份/etc/目錄下以conf結尾的配置文件,命名為bachkup-年-月-日-小時-分鐘.tar.gz備份完成後,進行一次解壓縮,確保sysctl,conf文件內容,跟系>統上/etc/sysctl.comf文件內容一致。之後,將該tar.gz文件。存放在/backup/目錄下。
#*3***shell.sh
#A=$(DATE+'%Y+%m-%d-%H:%M')
#find /etc/-name"*.conf"-maxdepth 1 |xargs tar-zcvf backup-$A.tar.gz
#mkdir/tmp/test1
#tar -zxvf backup-$A.tar.gz -C/test1
#if [ $? -eq 0];then
#diff./etc/sysctl.conf/etc/sysctl.conf && echo "ok">/tmp/monitor
#fi
#mv backup -$A.tar.gz /backup
#-maxdepth選項的作用就是限制find命令在目錄中按照遞減方式查找文件的時候搜索文件超
過某個級別或者搜索過多的目錄
#Xargs:之所以能用到這個命令,關鍵是由於很多命令不支持|管道來傳遞參數,而日常工作
中有有這個必要,所以就有了xargs命令,例如:
#find /sbin -perm +700 |ls -l 這個命令是錯誤的
#find /sbin -perm +700 |xargs ls -l 這樣才是正確的
#軟件包種類:
#RPM管理:
#功能:將編譯好的程序的各組成文件打包成一個或幾個程序包文件,為了方便的實現程序>包的安裝,升級,卸載,查詢,效驗,數據庫維護。
#軟件包獲取途徑:
#(1) 可以通過文件服務器(或鏡像站點)
#http://mirrors.aliyun.com
#http://mirrors.163.com
#http://mirrors.sohu.com
#(2)官網:
#(第三方組織):EPLE :搜索引擎:http//pkgs.org ===
#(4):自己制作:
#rpm命了:rpm [options] [package_file]
# 安裝: i install
# 升級: U update, F, freshen
# 卸載:e erase
# 查詢:q query
# 校驗; V verify
# 數據庫維護:builddb initdb
# -h 輸出一個進度條
# --test 測試安裝,但是不裝
# --nodeps 忽略依賴關系 不建議
# --replacepkgs 重裝
#yum repository: yum repo
# 存儲了眾多rpm包,以及包的相關的元數據文件(放置於特定目錄下:repodata);
#
# 文件服務器:
# ftp:// # http:// # nfs://
# file:///
#
# yum客戶端:
# 配置文件:
# /etc/yum.conf:為所有倉庫提供公共配置
# /etc/yum.repos.d/*.repo:為倉庫的指向提供配置
#倉庫指向的定義:
# [repositoryID]
# name=Some name for this repository
# baseurl=url://path/to/repository/ 指定訪問路徑
# enabled={1|0} 是否啟用此倉庫,默認啟用。
# gpgcheck={1|0} 是否檢查其安裝包來源的合法性安全等。
# gpgkey=URL 秘鑰文件
# enablegroups={1|0} 是否允許在此倉庫上使用組批量管理程序包!
# failovermethod={roundrobin輪尋|priority優先級}
# 默認為:roundrobin,意為隨機挑選;
# cost= 開銷數值
# 默認為1000
#自建立一個YUM源指向的路徑
#ot@localhost yum.repos.d]# vim centos-local.repo
#[base] 表示指定base路徑
#name=Base Repo on 172.16.0.1 名字
#baseurl=http://172.16.0.1/cobbler/ks_mirror/CentOS-6.6-x84_64/ 路徑
#gpgcheck=0 表示不啟用安裝包安全性檢查
#[epel]
#name=Fedora EPEl for EL6 x86_64
#baseurl=http://172.16.0.1/fedora-epel/6/x86_64/
#gpgcheck=0
#[root@localhost yum.repos.d]# cd
#[root@localhost ~]# yum repolist
#Loaded plugins: fastestmirror, refresh-packagekit, security
#Repository base is listed more than once in the configuration
#Repository epel is listed more than once in the configuration
#Loading mirror speeds from cached hostfile
#http://172.16.0.1/cobbler/ks_mirror/CentOS-6.6-x84_64/repodata/repomd.xml: [Er rno 14] PYCURL ERROR 22 - "The requested URL returned error: 404 Not Found"
#Trying other mirror.
#epel | 4.3 kB 00:00
#repo id repo name status
#base Base Repo on 172.16.0.1 6,575
#epel Fedora EPEl for EL6 x86_64 11,768
#extra CentOS 6 x86_64 extras 3,371
#repolist: 21,714
#顯示程序包:list
# yum list [all | glob_exp1] [glob_exp2] [...]
# yum list {available 已經下載但未安裝的包|installed 已經安裝的包|updates 可用的
升級的包} [glob_exp1] [...]
#[root@localhost ~]# yum list
#顯示符合統配條件的包:[root@localhost ~]# yum list php*
#php.x86_64 5.3.3-40.el6_6 ba#se
#php-Analog.noarch 1.0.0-3.git9ab4c9e.el6 epe#l
#php-Assetic.noarch 1.1.2-1.el6 epel
#php-EasyRdf.noarch 0.9.0-1.el6 epel
#安裝程序包:yum install 跟包名,可以一次安裝多個包
#升級程序包:yum update 後面跟包名
#檢查可以升級:yum check-update 包
#卸載指定程序包:yum remove 包
#查看程序包的簡要信息(information): yum info 包
#查看指定的特性(可以是某文件)是哪個程序包提供的; yum provides 包
#清理本地緩存: clean [ packages 程序包 | metadta元數據 | expire-cache 過期緩存 |rpmdb |plugins |all 所有]
#生產或創建緩存: makecache
#搜索;以指定的關鍵字搜索程序包名及summary信息:yum search 關鍵字比如:[root@localhost ~]# yum search bash
#重新安裝;reinstall
#降級安裝:downgrade
#顯示指定包所依賴的關系:deplist
查看yum事務歷史:
history [info|list|packages-list|packages-info|summary|addon-info|redo|undo|rollback|new|sync|stats]
如何使用光盤當作本地yum倉庫:
(1) 掛載光盤至某目錄,例如/media/cdrom
# mount -r -t iso9660 /dev/cdrom /media/cdrom
(2) 創建配置文件
[CentOS7]
name=
baseurl=
gpgcheck=
enabled=
yum的命令行選項:
--nogpgcheck:禁止進行gpg check;
-y: 自動回答為“yes”;
-q:靜默模式;
--disablerepo=repoidglob:臨時禁用此處指定的repo;
--enablerepo=repoidglob:臨時啟用此處指定的repo;
--noplugins:禁用所有插件;
yum的repo配置文件中可用的變量:
$releasever: 當前OS的發行版的主版本號;
$arch: 平台;
$basearch:基礎平台;
$YUM0-$YUM9http://mirrors.magedu.com/centos/$releasever/$basearch/os
創建yum倉庫:
createrepo [options] <directory>
程序包編譯安裝:
testapp-VERSION-release.src.rpm --> 安裝後,使用rpmbuild命令制作成二進制格式的rpm包,而後再安裝;
源代碼 --> 預處理 --> 編譯(gcc) --> 匯編 --> 鏈接 --> 執行
注意。多文件:文件中的代碼之間,可能存在跨文件依賴關系
本文出自 “11303170” 博客,請務必保留此出處http://11313170.blog.51cto.com/11303170/1782460
Copyright © Linux教程網 All Rights Reserved