学习linux 9

学习任务

linux软件包安装和卸载

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

1. rpm工具安装(需手动安装依赖包)
2. yum 工具 (自动安装依赖包)
3. 源码包

二. rpm包介绍

rpm工具使用
设置光驱并挂载 打开虚拟机在右下角选择光盘图标 然后右键点连接

在这里插入图片描述
挂载光盘到/mnt/下

[root@qklinux-01 ~]# df -h
文件系统        容量  已用  可用 已用% 挂载点
/dev/sda3        28G  1.3G   27G    5% /
devtmpfs        481M     0  481M    0% /dev
tmpfs           492M     0  492M    0% /dev/shm
tmpfs           492M  7.5M  484M    2% /run
tmpfs           492M     0  492M    0% /sys/fs/cgroup
/dev/sda1       197M  105M   93M   54% /boot
tmpfs            99M     0   99M    0% /run/user/0
[root@qklinux-01 ~]# mount /dev/cdrom /mnt
mount: /dev/sr0 写保护,将以只读方式挂载

在/mnt/目录下查看光盘文件

[root@qklinux-01 ~]# cd /mnt/
[root@qklinux-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

查看Packages内容 可以看到很多rpm包

[root@qklinux-01 Packages]# ls
purple-sipe-1.20.1-2.el7.x86_64.rpm
pycairo-1.8.10-8.el7.x86_64.rpm
pygobject2-2.28.6-11.el7.x86_64.rpm
pygobject3-devel-3.22.0-1.el7_4.1.x86_64.rpm
pygpgme-0.3-9.el7.x86_64.rpm
PyGreSQL-4.0-9.el7.x86_64.rpm
pygtk2-2.24.0-9.el7.x86_64.rpm
pygtk2-libglade-2.24.0-9.el7.x86_64.rpm
pykde4-4.10.5-4.el7.x86_64.rpm
pykickstart-1.99.66.19-2.el7.noarch.rpm

rpm包的构成
pykde4-4.10.5-4.el7.x86_64.rpm
pykde4包名
4.10.5版本号
4.el7 发布版本号 7是代表centos7
.x86_64 平台为 centos7默认64位
rpm后缀名
64位的平台也可一装32位的包

三 . rpm工具的用法

安装rpm包
rpn –ivh rpm包文件

[root@qklinux-01 Packages]# rpm -ivh zsh-5.0.2-31.el7.x86_64.rpm

升级rpm包
rpm –Uvh rpm包文件

#rpm -Uvh zsh-5.0.2-31.el7.x86_64.rpm

卸载rpm包 如果什么都不显示 说明正常卸载
rpm –e 包名

#rpm -e zsh

查询安装的包 # rpm –qa
查询一个包是否被安装

[root@qklinux-01 Packages]# rpm -q file
file-5.11-35.el7.x86_64

查询指定包信息 rpm -qi

[root@qklinux-01 Packages]# rpm -qi file
Name        : file
Version     : 5.11
Release     : 35.el7
Architecture: x86_64
Install Date: 2019年03月11日 星期一 00时52分27秒
Group       : Applications/File
Size        : 67448

列出安装包的文件rpm -ql

[root@qklinux-01 Packages]# rpm -ql file
/etc/magic
/usr/bin/file
/usr/share/doc/file-5.11
/usr/share/doc/file-5.11/COPYING
/usr/share/doc/file-5.11/ChangeLog
/usr/share/doc/file-5.11/README
/usr/share/man/man1/file.1.gz

查看一个文件是由那个包安装的 rpm –qf 文件绝对路径

[root@qklinux-01 Packages]# rpm -qf /usr/bin/file
file-5.11-35.el7.x86_64
扩展知识

使用反引号which命令查看

[root@qklinux-01 Packages]# rpm -qf /usr/bin/file
file-5.11-35.el7.x86_64
四. yum工具用法

yum工具可以自动解决依赖关系 自动安装依赖包
yum list 可以列出可用的rpm包

[root@qklinux-01 Packages]# yum list
yum-plugin-versionlock.noarch  1.1.31-50.el7       base   
yum-rhn-plugin.noarch          2.0.1-10.el7        base   
yum-updateonboot.noarch        1.1.31-50.el7       base   
zenity.x86_64                  3.28.1-1.el7        base   
zlib.i686                      1.2.7-18.el7        base   
zlib-devel.i686                1.2.7-18.el7        base   
zlib-devel.x86_64              1.2.7-18.el7        base   

左侧是包的名字 中间一列是版本号及平台版本号 base是仓库名字

可以查看yum配置文件

    [root@qklinux-01 Packages]# ls /etc/yum.repos.d/
    CentOS-Base.repo       CentOS-Media.repo
    CentOS-CR.repo         CentOS-Sources.repo
    CentOS-Debuginfo.repo  CentOS-Vault.repo
    CentOS-fasttrack.repo
     [root@qklinux-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

【】中的字符创就是仓库名字 把包放到一个容器里 容器就是仓库 仓库下面的网络地址可以找到 每个仓库下面有很多包

搜索一个包yum search 包名

[root@qklinux-01 Packages]# yum search vim
已加载插件:fastestmirror
Loading mirror speeds from cached hostfile
 * base: centos.ustc.edu.cn
 * extras: mirrors.163.com
 * updates: mirrors.163.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”试试。

精准搜索yum list |grep ‘包名’

[root@qklinux-01 Packages]# yum list |grep 'vim'
vim-common.x86_64                          2:7.4.160-5.el7             @base    
vim-enhanced.x86_64                        2:7.4.160-5.el7             @base    
vim-filesystem.x86_64                      2:7.4.160-5.el7             @base    
vim-minimal.x86_64                         2:7.4.160-5.el7             @anaconda
protobuf-vim.x86_64                        2.5.0-8.el7                 base     
vim-X11.x86_64                             2:7.4.160-5.el7             base     

grep 过滤指定字符串 |管道符 是把前面输出结果丢给后面 作为grep的输入

安装包 yum install 加上-y不再询问是否安装
列出可用的组 yum grouplist

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

LANG=en 切换语言为中文 LANG=zh_CN.UTF-8 切换语言为英文

安装组 yum groupinstall -y 组名

[root@qklinux-01 Packages]# yum groupinstall 'Virtualization Host’

卸载包 yum remove (-y)

 yum remove ppp

升级包 yum update(-y) 如果后面不加包名 会把系统所有包进行升级 甚至包括系统 内核 只有在刚安装完系统后才会使用 如果系统有环境 不能随意升级

yum provide “/*/命令” 用命令来搜索包 只是针对没有安装的命令

[root@qklinux-01 Packages]# yum provides "/*/vim"
已加载插件:fastestmirror
Loading mirror speeds from cached hostfile
 * base: mirrors.163.com
 * extras: mirrors.shu.edu.cn
 * updates: mirrors.163.com
updates/7/x86_64/filelists_db      | 2.6 MB     00:05     
cmake-2.8.12.2-2.el7.x86_64 : Cross-platform make system
源    :base
匹配来源:
文件名    :/usr/share/cmake/editors/vim



git-1.8.3.1-19.el7.x86_64 : Fast Version Control System
源    :base
匹配来源:
文件名    :/usr/share/doc/git-1.8.3.1/contrib/vim



git-1.8.3.1-20.el7.x86_64 : Fast Version Control System
源    :updates
匹配来源:
文件名    :/usr/share/doc/git-1.8.3.1/contrib/vim



2:vim-common-7.4.160-5.el7.x86_64 : The common files
     ...: needed by any version of the VIM editor
源    :base
匹配来源:
文件名    :/usr/share/vim



2:vim-enhanced-7.4.160-5.el7.x86_64 : A version of the VIM
     ...: editor which includes recent enhancements
源    :base
匹配来源:
文件名    :/usr/bin/vim



2:vim-enhanced-7.4.160-5.el7.x86_64 : A version of the VIM
     ...: editor which includes recent enhancements
源    :@base
匹配来源:
文件名    :/usr/bin/vim
五. yum搭建本地仓库

如果不能联网可以搭建本地仓库 在本地路径找rpm包
步骤:

1)挂载镜像到/mnt目录下 可以访问到rpm包
2) 提前备份文件

[root@qklinux-01 ~]# cp -r /etc/yum.repos.d /etc/yum.repos.d.bak

3)删除/etc/yum.repos.d下所有的文件

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

4)创建dvd.repo 写入配置

[root@qklinux-01 yum.repos.d]# vi dvd.repo
[dvd]                 //仓库名
name=install dvd       //自定义字符串
baseurl=file:///mnt     //路径
enable=1             //是否可用  0不可用 1可用
gpgchcek=0           //是否检测  0不检测  1检测

5) 清楚缓存yum clean all
[root@qklinux-01 yum.repos.d]# yum clean all

已加载插件:fastestmirror
正在清理软件源: dvd
Cleaning up list of fastest mirrors
Other repos take up 141 M of disk space (use --verbose for details)

6)查看 yum list

[root@qklinux-01 yum.repos.d]# yum list |less
GeoIP.x86_64                            1.5.0-13.el7                   @anaconda
NetworkManager.x86_64                   1:1.12.0-6.el7                 @anaconda
NetworkManager-libnm.x86_64             1:1.12.0-6.el7                 @anaconda
NetworkManager-team.x86_64              1:1.12.0-6.el7                 @anaconda
NetworkManager-tui.x86_64               1:1.12.0-6.el7                 @anaconda
acl.x86_64                              2.2.51-14.el7                  @anaconda
aic94xx-firmware.noarch                 30-6.el7                       @anaconda
alsa-firmware.noarch                    1.0.28-2.el7                   @anaconda
alsa-lib.x86_64                         1.1.6-2.el7                    @anaconda
alsa-tools-firmware.x86_64              1.1.0-1.el7                    @anaconda
audit.x86_64                            2.8.4-4.el7                    @anaconda
audit-libs.x86_64                       2.8.4-4.el7                    @anaconda
authconfig.x86_64                       6.2.8-30.el7                   @anaconda
basesystem.noarch                       10.0-7.el7.centos              @anaconda
bash.x86_64                             4.2.46-31.el7                  @anaconda
bind-libs-lite.x86_64                   32:9.9.4-72.el7                @anaconda
bind-license.noarch                     32:9.9.4-72.el7                @anaconda
binutils.x86_64                         2.27-34.base.el7               @anaconda
biosdevname.x86_64                      0.7.3-1.el7                    @anaconda

后边带@符号的是已经安装的包 下边仓库名是dvd的表示可安装的包

六. yum更换国内源

有时自带的yum源是国外的比较慢 可以更改国内源
更换yum仓库源

1) cd /etc/yum.repos.d/
2)删掉dve.pro 恢复之前备份的文件

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

删除rm -f CentOS-Base.repo
下在国内163源 curl -O http://mirrors.163.com/.help/CentOS7-Base-163.repo
或者使用wget安装

[root@qklinux-01 yum.repos.d]# curl -O http://mirrors.163.com/.help/CentOS7-Base-163.repo
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
  0     0    0     0    0     0      0      0 --:--:-- --:  0     0    0     0    0     0      0      0 --:--:-- --:100  1572  100  1572    0     0   5482      0 --:--:-- --:--:-- --:--:--  5496
[root@qklinux-01 yum.repos.d]# ls
CentOS7-Base-163.repo  CentOS-Media.repo
CentOS-CR.repo         CentOS-Sources.repo
CentOS-Debuginfo.repo  CentOS-Vault.repo
CentOS-fasttrack.repo

wget安装# yum install -y wget

七. yum下载rpm包

1.安装扩展源epel

 yum install -y epel-release

查看增加的包

 yum list |grep epel

2. yum下载rpm包 下载不安装、确认下载的rpm包是不是已经被安装过

yum install –y 包名 –downloadonly

[root@qklinux-01 yum.repos.d]# yum install zsh --downloadonly
已加载插件:fastestmirror
Loading mirror speeds from cached hostfile
 * epel: mirror01.idc.hinet.net
软件包 zsh-5.0.2-31.el7.x86_64 已安装并且是最新版本
无须任何处理

下载的包存放的位置

ls /var/cache/yum/x86_64/7/base/packages/

下载包到指定路径下

 yum install zsh --downloadonly --downloaddir=/tmp/

重新安装一个装过的包

 yum reinstall -y 包名 --downloadonly --downloaddir=路径

安装vim包

#yum reinstall -y vim-enhanced --downloadonly --downloaddir=/tmp/
八 源码包安装

1. 源码包的存放路径/usr/local/src/

 cd /usr/local/src/

2. 下载源码包

#wget  https://mirrors.aliyun.com/apache/httpd/httpd-2.4.35.tar.gz

3. 解压httpd-2.2.29.tar.gz

 tar -zxvf httpd-2.2.29.tar.gz
 ls
httpd-2.2.29  httpd-2.2.29.tar.gz
[root@qklinux-01 src]# cd httpd-2.2.29
[root@qklinux-01 httpd-2.2.29]# ls
ABOUT_APACHE   httpd.dsp       NOTICE
acinclude.m4   httpd.mak       NWGNUmakefile
Apache.dsw     httpd.spec      os
build          include         README
BuildAll.dsp   INSTALL         README.platforms
BuildBin.dsp   InstallBin.dsp  README-win32.txt
buildconf      LAYOUT          ROADMAP
CHANGES        libhttpd.dep    server
config.layout  libhttpd.dsp    srclib
configure      libhttpd.mak    support
configure.in   LICENSE         test
docs           Makefile.in     VERSIONING
emacs-style    Makefile.win
httpd.dep      modules

查看说明文档

#more README

查看安装文档

  #more INSTALL

安装指定安装路径

[root@qklinux-01 httpd-2.2.29]# ./configure --prefix=/usr/local/apache2
checking for chosen layout... Apache
checking for working mkdir -p... yes
checking build system type... x86_64-unknown-linux-gnu
checking host system type... x86_64-unknown-linux-gnu
checking target system type... x86_64-unknown-linux-gnu
Configuring APR library
Platform: x86_64-unknown-linux-gnu
checking for working mkdir -p... yes
APR Version: 1.5.1
checking for chosen layout... apr
checking for gcc... no
checking for cc... no
checking for cl.exe... no
configure: error: in `/usr/local/src/httpd-2.2.29/srclib/ap
configure: error: no acceptable C compiler found in $PATH
See `config.log' for more details
configure failed for srclib/apr

看到有报错使用echo $?查看是不是0如果是不是0说明命令错误

[root@qklinux-01 httpd-2.2.29]# echo $?
1

错误解决checking for gcc… no checking for cc… no checking for cl.exe… no

#yum install gcc

错误解决后编译安装安装完echo检查
#make
#make install

查看安装完的文件

[root@qklinux-01 httpd-2.2.29]# ls /usr/local/apache2/
bin    cgi-bin  error   icons    lib   man     modules
build  conf     htdocs  include  logs  manual

直播课 包管理

1. yum保留已经安装过的包
http://www.360doc.com/content/11/0218/15/4171006_94080041.shtml
yum安装可以源码安装共存
安装yum-utils

[root@qklinux-01 httpd-2.2.29]# yum install -y yum-tils

使用yumdownloder 包名 //可以 下载rpm包到本地
yum localinstall xxx rpm //自动下载有依赖的rpm包

2. 搭建局域网yum源
http://blog.lishiming.net/?p=500

如果不能用外网 可以使用局域网搭建yum源 局域网搭建比本地搭建rpm宝更全 局域网内其他及可以使用

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值