基础篇

Linux学习

一、安装软件包的三种方法
二、rpm包介绍
三、rpm工具用法
四、yum工具用法
五、yum搭建本地仓库

一、安装软件包的三种方法

  • 三种方法:rpm工具(redhat packges manager)、yum工具(Python开发的工具,支持自动安装依赖包)、源码包(源代码,需要编译成可执行的文件后再安装,三种方法中难度系数最大)
  • rpm工具安装类似于Windows下.exe文件,安装路径和文件名基本都是固定的
  • yum是另一种rpm工具

二、rpm包介绍

  • rpm工具使用
    1、设置光驱挂载
    2、rpm包格式,包名、版本号、发布版本号、平台
    3、rpm -ivh rpm包文件 安装
    4、rpm -Uvh rpm包文件 升级
    5、rpm -e 包名 卸载
    6、rpm -qa 查询安装的包
    7、rpm -q包名 查询指定包是否安装
    8、rpm -qi 包名 查询指定包信息
    9、rpm -ql包名 列出包安装的文件
    10、rpm -qf 文件绝对路径 查看一个文件是由哪个包安装的
挂载光驱
[root@01 ~]# df -h
文件系统        容量  已用  可用 已用% 挂载点
/dev/sda3        26G  1.2G   25G    5% /
devtmpfs        903M     0  903M    0% /dev
tmpfs           912M     0  912M    0% /dev/shm
tmpfs           912M  8.6M  904M    1% /run
tmpfs           912M     0  912M    0% /sys/fs/cgroup
/dev/sda1       197M  113M   85M   58% /boot
tmpfs           183M     0  183M    0% /run/user/1001
[root@01 ~]# mount /dev/cdrom /mnt/
mount: /dev/sr0 写保护,将以只读方式挂载
[root@01 ~]# cd /mnt/
[root@01 mnt]# ls
CentOS_BuildTag  EULA  images    LiveOS    repodata              RPM-GPG-KEY-CentOS-Testing-7
EFI              GPL   isolinux  Packages  RPM-GPG-KEY-CentOS-7  TRANS.TBL
[root@01 mnt]# cd Packages/
[root@01 Packages]# 
  • rpm包都存放在Packages/目录下
  • 第一部分字符串是包名
  • 第二部分-后面是版本号(主版本号,次版本号,小版本或者修正版本)
  • 第三部分是发布版本号(el7)
  • 第四部分是平台位数(32位和64位,centos7不区分32位和64位)64位向下兼容32位
  • 第五部分是后缀名
操作
[root@01 Packages]# ls | tail
yum-plugin-tmprepo-1.1.31-42.el7.noarch.rpm
yum-plugin-verify-1.1.31-42.el7.noarch.rpm
yum-plugin-versionlock-1.1.31-42.el7.noarch.rpm
yum-utils-1.1.31-42.el7.noarch.rpm
zenity-3.22.0-1.el7.x86_64.rpm
zip-3.0-11.el7.x86_64.rpm
zlib-1.2.7-17.el7.x86_64.rpm
zlib-devel-1.2.7-17.el7.x86_64.rpm
zsh-5.0.2-28.el7.x86_64.rpm
zziplib-0.13.62-5.el7.x86_64.rpm
[root@01 Packages]# 

三、rpm工具用法

  • 安装rpm包:rpm -ivh
  • 升级rpm包:rpm -Uvh
  • 卸载rpm包:rpm -e zsh(卸载包是会有提示依赖包)
  • 查询已经安装的rpm包:rpm -qa
  • 参数-q查询指定包是否已经安装过
操作
[root@01 Packages]# pwd
/mnt/Packages
[root@01 Packages]# rpm -ivh zsh-5.0.2-28.el7.x86_64.rpm 
准备中...                          ################################# [100%]
正在升级/安装...
   1:zsh-5.0.2-28.el7                 ################################# [100%]
[root@01 Packages]# 

root@01 Packages]# rpm -e zsh
[root@01 Packages]# rpm -qi zsh-5.0.2-28.el7.x86_64.rpm 
未安装软件包 zsh-5.0.2-28.el7.x86_64.rpm 
[root@01 Packages]# rpm -qi cryptsetup-libs-1.7.4-3.el7.x86_64.rpm 
未安装软件包 cryptsetup-libs-1.7.4-3.el7.x86_64.rpm 
[root@01 Packages]# rpm -q cryptsetup-libs-1.7.4-3.el7.x86_64.rpm 
未安装软件包 cryptsetup-libs-1.7.4-3.el7.x86_64.rpm 
[root@01 Packages]# rpm -qf cryptsetup-libs-1.7.4-3.el7.x86_64.rpm 
文件 /mnt/Packages/cryptsetup-libs-1.7.4-3.el7.x86_64.rpm 不属于任何软件包

四、yum工具

  • yum list 列出可用的rpm包
  • ls /etc/yum.repos.d
  • yum search vim 搜索包
  • yum install [-y]
  • yum grouplist
  • yum groupinstall [-y]
  • yum remove [-y]
  • yum update [-y]
  • yum provides "/*/vim"
  • rpm安装时如果包有依赖则提示错误,yum则可以自动解决依赖关系
  • yum list 第一列是包名,第二列是版本号,第三列是仓库名
  • base配置文件在/etc/yum.repos.d/CentOS-Base.repo下
  • yum search vim 搜索vim相关的包
  • yum install -y 包名,参数-y安装时不再询问是否安装
  • yum grouplist列出组
  • yum groupinstall -y 包名,安装组件
  • yum remove 卸载包
  • yum update 不加任何包名则默认升级所有(包括系统)
  • yum provides "/*/vim"搜索出所有关于vim命令的包
操作
[root@01 Packages]# rpm -ivh texlive-2012-38.20130427_r30134.el7.x86_64.rpm 
错误:依赖检测失败:
    texlive-scheme-basic 被 texlive-2:2012-38.20130427_r30134.el7.x86_64 需要
    texlive-collection-latexrecommended 被 texlive-2:2012-38.20130427_r30134.el7.x86_64 需要
    tex-kpathsea 被 texlive-2:2012-38.20130427_r30134.el7.x86_64 需要
    tex-tetex 被 texlive-2:2012-38.20130427_r30134.el7.x86_64 需要
[root@01 Packages]# 


[root@01 Packages]# yum list | tail
zlib-devel.x86_64                           1.2.7-17.el7               base     
zlib-static.i686                            1.2.7-17.el7               base     
zlib-static.x86_64                          1.2.7-17.el7               base     
zsh.x86_64                                  5.0.2-28.el7               base     
zsh-html.x86_64                             5.0.2-28.el7               base     
zziplib.i686                                0.13.62-5.el7              base     
zziplib.x86_64                              0.13.62-5.el7              base     
zziplib-devel.i686                          0.13.62-5.el7              base     
zziplib-devel.x86_64                        0.13.62-5.el7              base     
zziplib-utils.x86_64                        0.13.62-5.el7              base     
[root@01 Packages]# 
配置
[root@01 Packages]# cat /etc/yum.repos.d/CentOS-Base.repo 
# CentOS-Base.repo
#
# The mirror system uses the connecting IP address of the client and the
# update status of each mirror to pick mirrors that are updated to and
# geographically close to the client.  You should use this for CentOS updates
# unless you are manually picking other mirrors.
#
# If the mirrorlist= does not work for you, as a fall back you can try the 
# remarked out baseurl= line instead.
#
#

[base]
name=CentOS-$releasever - Base
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os&infra=$infra
#baseurl=http://mirror.centos.org/centos/$releasever/os/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7

#released updates 
[updates]
name=CentOS-$releasever - Updates
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=updates&infra=$infra
#baseurl=http://mirror.centos.org/centos/$releasever/updates/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7

#additional packages that may be useful
[extras]
name=CentOS-$releasever - Extras
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=extras&infra=$infra
#baseurl=http://mirror.centos.org/centos/$releasever/extras/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7

#additional packages that extend functionality of existing packages
[centosplus]
name=CentOS-$releasever - Plus
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=centosplus&infra=$infra
#baseurl=http://mirror.centos.org/centos/$releasever/centosplus/$basearch/
gpgcheck=1
enabled=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7

[root@01 Packages]# 
搜索vim相关的包
[root@01 Packages]# yum search vim
已加载插件:fastestmirror
Loading mirror speeds from cached hostfile
 * base: mirrors.zju.edu.cn
 * extras: mirrors.tuna.tsinghua.edu.cn
 * updates: mirrors.cn99.com
================================================== N/S matched: vim ===================================================
protobuf-vim.x86_64 : Vim syntax highlighting for Google Protocol Buffers descriptions
vim-X11.x86_64 : The VIM version of the vi editor for the X Window System
vim-common.x86_64 : The common files needed by any version of the VIM editor
vim-enhanced.x86_64 : A version of the VIM editor which includes recent enhancements
vim-filesystem.x86_64 : VIM filesystem layout
vim-minimal.x86_64 : A minimal version of the VIM editor

名称和简介匹配 only,使用“search all”试试。
[root@01 Packages]# 
精准搜索
[root@01 Packages]# yum list |grep 'vim'
vim-common.x86_64                           2:7.4.160-4.el7            @base    
vim-enhanced.x86_64                         2:7.4.160-4.el7            @base    
vim-filesystem.x86_64                       2:7.4.160-4.el7            @base    
vim-minimal.x86_64                          2:7.4.160-2.el7            @anaconda
protobuf-vim.x86_64                         2.5.0-8.el7                base     
vim-X11.x86_64                              2:7.4.160-4.el7            base     
vim-minimal.x86_64                          2:7.4.160-4.el7            base     
[root@01 Packages]# 


[root@01 Packages]# yum grouplist
已加载插件:fastestmirror
没有安装组信息文件
Maybe run: yum groups mark convert (see man yum)
Loading mirror speeds from cached hostfile
 * base: mirrors.zju.edu.cn
 * extras: mirrors.tuna.tsinghua.edu.cn
 * updates: mirrors.cn99.com
可用的环境分组:
   最小安装
   基础设施服务器
   计算节点
   文件及打印服务器
   基本网页服务器
   虚拟化主机
   带 GUI 的服务器
   GNOME 桌面
   KDE Plasma Workspaces
   开发及生成工作站
可用组:
   传统 UNIX 兼容性
   兼容性程序库
   图形管理工具
   安全性工具
   开发工具
   控制台互联网工具
   智能卡支持
   科学记数法支持
   系统管理
   系统管理工具
完成
[root@01 Packages]# 

五、yum搭建本地仓库

  • 挂载镜像到/mnt目录
  • cp -r /etc/yum.repos.d /etc/yum.repos.d.bak
  • rm -f /etc/yum.repos.d/*
  • vim /etc/yum.repos.d/dvd.repo 内容如下
  • yum clean all 清空yum
  • yum list |less 查看本地yum仓库
  • 搭建本地yum仓库便于安装,如果使用rpm安装则提示依赖包
  • 使yum保留已经下载的rpm包
  • 目的:升级或者重新安装使用
  • 操作:修改/etc/yum.conf文件
  • yum局域网软件源搭建
    http://ask.apelearn.com/question/7627
操作
[root@01 ~]# cp -r /etc/yum.repos.d /etc/yum.repos.d.bak
[root@01 ~]# cd /etc/
[root@01 etc]# ls
adjtime                  environment         ld.so.cache               polkit-1        skel
aliases                  ethertypes          ld.so.conf                popt.d          ssh
aliases.db               exports             ld.so.conf.d              postfix         ssl
alternatives             favicon.png         libaudit.conf             ppp             statetab
anacrontab               filesystems         libnl                     prelink.conf.d  statetab.d
asound.conf              firewalld           libuser.conf              printcap        subgid
audisp                   fstab               locale.conf               profile         subuid
audit                    fuse.conf           localtime                 profile.d       sudo.conf
bash_completion.d        gcrypt              login.defs                protocols       sudoers
bashrc                   GeoIP.conf          logrotate.conf            python          sudoers.d
binfmt.d                 GeoIP.conf.default  logrotate.d               rc0.d           sudo-ldap.conf
centos-release           gnupg               machine-id                rc1.d           sysconfig
centos-release-upstream  GREP_COLORS         magic                     rc2.d           sysctl.conf
chkconfig.d              groff               makedumpfile.conf.sample  rc3.d           sysctl.d
chrony.conf              group               man_db.conf               rc4.d           systemd
chrony.keys              group-              mke2fs.conf               rc5.d           system-release
cron.d                   grub2.cfg           modprobe.d                rc6.d           system-release-cpe
cron.daily               grub.d              modules-load.d            rc.d            terminfo
cron.deny                gshadow             motd                      rc.local        tmpfiles.d
cron.hourly              gshadow-            mtab                      redhat-release  tuned
cron.monthly             gss                 my.cnf                    resolv.conf     udev
crontab                  host.conf           my.cnf.d                  rpc             updatedb.conf
cron.weekly              hostname            NetworkManager            rpm             vconsole.conf
crypttab                 hosts               networks                  rsyslog.conf    vimrc
csh.cshrc                hosts.allow         nsswitch.conf             rsyslog.d       virc
csh.login                hosts.deny          nsswitch.conf.bak         rwtab           vmware-tools
dbus-1                   init.d              openldap                  rwtab.d         wpa_supplicant
default                  inittab             opt                       sasl2           X11
depmod.d                 inputrc             os-release                securetty       xdg
dhcp                     iproute2            pam.d                     security        xinetd.d
DIR_COLORS               issue               passwd                    selinux         yum
DIR_COLORS.256color      issue.net           passwd-                   services        yum.conf
DIR_COLORS.lightbgcolor  kdump.conf          pkcs11                    sestatus.conf   yum.repos.d
dracut.conf              kernel              pki                       shadow          yum.repos.d.bak
dracut.conf.d            krb5.conf           plymouth                  shadow-
e2fsck.conf              krb5.conf.d         pm                        shells
[root@01 etc]# 



[root@01 etc]# cd /etc/yum.repos.d
[root@01 yum.repos.d]# ls
CentOS-Base.repo  CentOS-Debuginfo.repo  CentOS-Media.repo    CentOS-Vault.repo
CentOS-CR.repo    CentOS-fasttrack.repo  CentOS-Sources.repo
[root@01 yum.repos.d]# rm -f ./*
[root@01 yum.repos.d]# ls
[root@01 yum.repos.d]# 



[root@01 yum.repos.d]# vim dvd.repo
[root@01 yum.repos.d]# cat dvd.repo 
[dvd]
name=install dvd
baseurl=file:///mnt            //baseurl指定路径
enable=1                       //是否可用:1表示可用,0表示不可用
gpgcheck=0                     //0表示不检测
[root@01 yum.repos.d]# 


[root@01 yum.repos.d]# yum clean all
已加载插件:fastestmirror
正在清理软件源: dvd
Cleaning up everything
Maybe you want: rm -rf /var/cache/yum, to also free up space taken by orphaned data from disabled or removed repos
Cleaning up list of fastest mirrors
[root@01 yum.repos.d]# yum list |less
[root@01 yum.repos.d]# yum list |tail
yum-plugin-changelog.noarch             1.1.31-42.el7                  dvd      
yum-plugin-tmprepo.noarch               1.1.31-42.el7                  dvd      
yum-plugin-verify.noarch                1.1.31-42.el7                  dvd      
yum-plugin-versionlock.noarch           1.1.31-42.el7                  dvd      
yum-utils.noarch                        1.1.31-42.el7                  dvd      
zenity.x86_64                           3.22.0-1.el7                   dvd      
zip.x86_64                              3.0-11.el7                     dvd      
zlib-devel.x86_64                       1.2.7-17.el7                   dvd      
zsh.x86_64                              5.0.2-28.el7                   dvd      
zziplib.x86_64                          0.13.62-5.el7                  dvd         //dvd表示本地搭建的yum仓库
coreutils.x86_64                        8.22-18.el7                    @anaconda   //@anaconda表示已安装表示已经安装可安装的软件包
cpio.x86_64                             2.11-24.el7                    @anaconda
cracklib.x86_64                         2.9.0-11.el7                   @anaconda
cracklib-dicts.x86_64                   2.9.0-11.el7                   @anaconda
cronie.x86_64                           1.4.11-17.el7                  @anaconda
[root@01 yum.repos.d]# 



[root@01 yum.repos.d]# cat /etc/yum.conf 
[main]
cachedir=/var/cache/yum/$basearch/$releasever                    /cachedir是指一个路径,存放下载的包的位置
keepcache=0                                                      /keepcache=1时表示保存已经下载的rpm包
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=23&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
[root@01 yum.repos.d]# 
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 158,560评论 4 361
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,104评论 1 291
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 108,297评论 0 243
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 43,869评论 0 204
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,275评论 3 287
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,563评论 1 216
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,833评论 2 312
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,543评论 0 197
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,245评论 1 241
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,512评论 2 244
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,011评论 1 258
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,359评论 2 253
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,006评论 3 235
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,062评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,825评论 0 194
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,590评论 2 273
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,501评论 2 268