专栏首页首富手记Linux软件包安装--三魔鬼

Linux软件包安装--三魔鬼

第1章 yum

1.1 命令说明

yum是基于rpm的软件包管理器,他可以使系统管理人员交互和自动化地更细与管理rpm包,他能自动从服务器下载RPM包并安装,他可以自动处理依赖关系,自动安装所有需要的软件包

1.2 命令格式

yum [options] 参数

1.3 命令选项

1.3.1 -y 对所有的交互都提示“yes” 1.3.2 -q 安静模式,不输出安装过程 1.3.3 install 安装指定的软件包 1.3.4 remove 卸载指定的安装包 1.3.5 update 更新指定的rpm包 1.3.5.1 makecache 生成本地缓存 1.3.6 clean all 清除所有yum的过期的缓存 1.3.7 localinstall 安装本地的rpm包(如果有依赖关系也会自动解决) 1.3.8 list 显示list列表 1.3.9 grouplist 显示可用的软件包组 1.3.10 groupinstall 安装软件包组 1.3.11 groupupdate 更新软件包组 1.3.12 groupremove 删除软件包组

1.4 本地的yum源,和网络的yum源

1.4.1 本地的yum源

搭建本地的yum源的时候我们需要用到镜像文件,一个镜像文件3.7个G里面装的全是rpm包 搭建本地yum源的第一步就是挂载光盘 mount /dev/cdrom /mnt 临时挂载 echo " mount /dev/cdrom /mnt " >>/etc/rc.local 写到开机自启动的文件里面,达到永久挂载的效果,方便我们以后使用 然后进入到/ect/yum.repos.d/目录下,删除这个目录下的其他文件(不建议),或剪切走。 然后开始写一个 XXXX.repo 文件,这个文件必须以.repo结尾

[root@oldboy_50 yum.repos.d]# cat >>Centos.repo<<EOF
> [Centos_local_yum]
> name=Centos_local_install
> baseurl=file:///mnt
> enabled=1
> gpgcheck=0
> EOF
第一行:本地仓库的说明信息
第二行:本地仓库的名称
第三行:通过哪种方式来确定yum源的地址
        file://  本地文件
        http://  通过http协议访问
        ftp://   通过ftp访问,集群定制软件仓库最常用的方法
第四行:是否启动这个源,0表示不启用,1表示启用
第五行:是否检测,我们基本上都选择0,不检测
然后便可以使用了

1.4.2 搭建网络yum源

前提准备:服务器必须能通过域名上网,环境准备完成开始操作 寻找一个国内的yum源-阿里的yum源:https://opsx.alibaba.com/mirror

寻找合适的yum源

然后把上面的命令复制一下放到服务器上下载下来。 wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-6.repo sed -i 's#$releasever#6.9#gp' CentOS-Base.repo 把里面的版本型号替换成你当前的系统版本 yum clean all 先清空以前的本地缓存 yum makecache 生成本地缓存 能正常使用

1.4.3 制定本地yum仓库

工作场景:在实际的工作环境中,我们的集群服务器有好多是不能直接访问外网的,我们安装软件的时候不可能在每台服务器上都挂载一个光盘(费时又费力),这个时候我们就需要找一台服务来充当本地的yum源服务器。来定制我们自己需要软件仓库。有什么需要安装的软件,我们直接放到这台服务器上,因为在内网,所以网络传输速度快,实现了高速,高效率的安装。 我们今天就通过ftp的方式来搭建本地的yum仓库 1)安装vsftp服务,

yum -y install vsftpd

2)安装指定yum仓库必要的软件包createrepo.noarch

yum -y install createrepo.noarch   生成yum索引的时候需要

3)在/vat/ftp目录下创建Packet目录

mdkir -p /var/ftp/Packet
然后把我们定制需要的rpm包上传至这个里面。

4)然后执行命令生成yum索引列表

cd /var/ftp/ ; createrepo ./

5)关闭防火墙或放行FTP端口

关闭的命令 /etc/init.d/iptables stop  最好执行两次以上
放行端口的命令 iptables -I INPUT -p tcp --dprot 21 -j ACCEPT
                 iptables -I INPUT -p tcp --dprot 20 -j ACCEPT

6)然后到客户端里面配置,只需要把baseurl更改一下就行

[root@oldboy_50 yum.repos.d]# cat >>Centos.repo<<EOF
> [Centos_local_yum]
> name=Centos_local_install
> baseurl=ftp://yum_server_IP/Packet
> enabled=1
> gpgcheck=0
> EOF

第2章 rpm软件包管理工具

2.1 命令说明

RPM原本是Red Hat Linux 发行版专门用来管理LInux各项套件的程序,由于他遵循GPL规则且功能强大方便,因此广受欢迎。yum相当于他的升级版本,它不能自动解决依赖关系,需要自己手动的解决依赖关系,比较麻烦。

2.2 命令格式 rpm [options] 参数 2.3 命令选项 2.3.1 -i (install) 安装软件包 2.3.2 -v 显示安装过程 2.3.3 -h 用#号代表进度 安装rsync软件包 rpm -ivh rsync-3.0.6-12.el6.x86_64.rpm 2.3.4 -q 询问模式,碰到问题rpm指令会先询问用户 2.3.5 -l 列出软件包安装生成的所有文件位置

[root@oldboy_50 Packages]# rpm -ql openssh-5.3p1-122.el6.x86_64
/etc/ssh
/etc/ssh/moduli
/usr/bin/ssh-keygen
/usr/libexec/openssh
/usr/libexec/openssh/ssh-keysign
/usr/share/doc/openssh-5.3p1
/usr/share/doc/openssh-5.3p1/CREDITS
/usr/share/doc/openssh-5.3p1/ChangeLog
/usr/share/doc/openssh-5.3p1/INSTALL
/usr/share/doc/openssh-5.3p1/LICENCE
/usr/share/doc/openssh-5.3p1/OVERVIEW
/usr/share/doc/openssh-5.3p1/PROTOCOL
/usr/share/doc/openssh-5.3p1/PROTOCOL.agent
/usr/share/doc/openssh-5.3p1/PROTOCOL.certkeys
/usr/share/doc/openssh-5.3p1/README
/usr/share/doc/openssh-5.3p1/README.dns
/usr/share/doc/openssh-5.3p1/README.nss
/usr/share/doc/openssh-5.3p1/README.platform
/usr/share/doc/openssh-5.3p1/README.privsep
/usr/share/doc/openssh-5.3p1/README.smartcard
/usr/share/doc/openssh-5.3p1/README.tun
/usr/share/doc/openssh-5.3p1/TODO
/usr/share/doc/openssh-5.3p1/WARNING.RNG
/usr/share/man/man1/ssh-keygen.1.gz
/usr/share/man/man8/ssh-keysign.8.gz

2.3.6 -a 查询所有安装的软件包,配合grep使用,查询软件包是否安装

[root@oldboy_50 Packages]# rpm -qa | grep ssh
openssh-clients-5.3p1-122.el6.x86_64
openssh-5.3p1-122.el6.x86_64
openssh-server-5.3p1-122.el6.x86_64
libssh2-1.4.2-2.el6_7.1.x86_64

2.3.7 -c 查询跟指定软件包相关的配置,服务进程的文件

[root@oldboy_50 Packages]# rpm -qc openssh-server-5.3p1-122.el6.x86_64
/etc/pam.d/ssh-keycat
/etc/pam.d/sshd
/etc/ssh/sshd_config
/etc/sysconfig/sshd

2.3.8 -f 通过文件,查询属于哪个rpm包

[root@oldboy_50 Packages]# rpm -qf `which ssh-keygen` 
openssh-5.3p1-122.el6.x86_64

2.3.9 -i 查询软件包的版本信息,说明信息

[root@oldboy_50 Packages]# rpm -qi openssh-5.3p1-122.el6.x86_64
Name        : openssh                      Relocations: (not relocatable)
Version     : 5.3p1                             Vendor: CentOS
Release     : 122.el6                       Build Date: Wed 22 Mar 2017 04:33:21 AM EDT
Install Date: Tue 10 Jul 2018 11:13:19 AM EDT      Build Host: c1bm.rdu2.centos.org
Group       : Applications/Internet         Source RPM: openssh-5.3p1-122.el6.src.rpm
Size        : 787618                           License: BSD
Signature   : RSA/SHA1, Thu 23 Mar 2017 10:58:59 AM EDT, Key ID 0946fca2c105b9de
Packager    : CentOS BuildSystem <http://bugs.centos.org>
URL         : http://www.openssh.com/portable.html
Summary     : An open source implementation of SSH protocol versions 1 and 2
Description :
SSH (Secure SHell) is a program for logging into and executing

2.3.10 -e 卸载指定的软件包 [root@oldboy_50 Packages]# rpm -e openssh-5.3p1-122.el6.x86_64

第3章 编译安装

3.1 编译安装的三部曲:./configure ----->make----------->make install

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 每日一题--统计字符串出现的次数

    使用awk统计出来指定字符串中重复出现的字符并重复出现了几次,现在只考虑有数字和字母,先区分大小写 eg: aaabbc------> a 重复出现3次,b重复...

    张琳兮
  • Docker 垃圾回收机制补充

    我们在之前的文章里面讲过Docker 垃圾回收机制里面简单的介绍了下docker * prune命令,今天我们来详细的解读下最后一个docker system ...

    张琳兮
  • Docker 垃圾回收机制补充

    我们在之前的文章里面讲过Docker 垃圾回收机制里面简单的介绍了下docker * prune命令,今天我们来详细的解读下最后一个docker system ...

    张琳兮
  • win10 uwp 使用 Azure DevOps 自动构建

    通过 Azure DevOps 可以做到自动构建程序,覆盖计划、创建、编程、测试、部署、发布、托管、共享等各个环节,适用于大多数的语言、平台。 本文继续使用图床...

    林德熙
  • Docker精简项目(Python3.6+Flask1.0+Pipenv)

    简单、
  • Java 基础(二)| 使用 lambad 表达式的正确姿势

    为跳槽面试做准备,今天开始进入 Java 基础的复习。希望基础不好的同学看完这篇文章,能掌握 lambda 表达式,而基础好的同学权当复习,希望看完这篇文章能够...

    一个优秀的废人
  • CVE-2019-19781 Citrix ADC 远程代码执行漏洞复现

    #### https://www.citrix.com/downloads/citrix-gateway/

    用户5878089
  • Hadoop 2.X新特性回收站功能的讲解

    开启回收站功能,可以将删除的文件在不超时的情况下,恢复原数据,起到防止误删除、备份等作用。

    砸漏
  • Flyway 助力数据库脚本自动化管理攻略

    今天,探讨一个有趣的话题:我们可以通过 Git 来实现项目版本控制;通过 Jenkins 进行持续集成,那么对于数据库层面,我们仍然依赖于纯手工运行 SQL 脚...

    用户2781897
  • hashMap 的工作原理

    爱明依

扫码关注云+社区

领取腾讯云代金券