11Linux之软件包管理

11 软件包管理

11.1 软件包介绍

11.1.1 编程语言分类

  • 机器语言

  • 汇编语言

  • 高级语言

    解释型(shell、python)

    安装步骤:

    1、下载python写好的软件包

    2、在自己的Linux主机上安装对应版本的python解释器和依赖包

    编译型(c、go)

    c语言不支持跨平台编译,因此c语言写出来的源码包在不同的平台安装时都必须编译一次。

    go支持跨平台编译

    安装步骤:

    1、下载源码包

    2、在自己的Linux主机上安装好编译器

    3、用编译器把源码包编译成可执行的命令

11.1.2 三种安装包

  • rpm包

    预先编译打包,安装简单

    软件的稳定版会被官方做成rpm,因此软件版本偏低

  • 源码包

    手动编译打包,安装繁琐

    软件版本丰富,可选择性强

  • 二进制包

    安装即可使用,安装简单

    不能修改源代码

rpm制作好的安装程序--------------------->安装

源码包------------------>需要自己定制安装细节-------------->安装

二进制包--------------->已经安装完毕(下载完就可以用,无需安装)

11.2 rpm包管理

11.2.1 rpm包简介

  • 简介

    RPM是Red-Hat Package Manager(RPM软件包管理器)的缩写,设计理念是开放式的

  • rpm包格式

    举例

    yum-plugin-fastestmirror-1.1.31-53.el7.noarch.rpm
    yum-plugin-fastestmirror # 软件包的名称
    1.1.31 # 软件的版本
    53 # 软件编译之后发布的次数
    el7 # 适合的操作系统的版本
    noarch # 适用于不同版本的CPU
    .rpm # 后缀名
  • rpm包使用的平台

    redhat/centos/fedora/suse
    # 查看自己当前的平台
    [root@ccc yum.repos.d]# uname -m
    x86_64
    [root@ccc yum.repos.d]# cat /etc/redhat-release
    CentOS Linux release 7.8.2003 (Core)

11.2.2 管理rpm包的两种方式

  • rpm命令

    需要自己找到rpm包,并手动解决包的依赖性关系

    (实际很难区分缺少什么包)

  • yum命令

    相关的rpm包事先存放在一个仓库里,仓库包含了所有的依赖包

    yum会按照仓库帮我们解决依赖性问题

11.2.3 RPM包的获取方式

  • 三种方式(卸载umount)

    # 1.本地的ISO镜像光盘:三种方式
    方式1:
    [root@ccc yum.repos.d]# mount /dev/cdrom /opt
    mount: /dev/sr0 写保护,将以只读方式挂载
    [root@ccc yum.repos.d]# df -h
    文件系统 容量 已用 可用 已用% 挂载点
    devtmpfs 476M 0 476M 0% /dev
    tmpfs 487M 0 487M 0% /dev/shm
    tmpfs 487M 7.6M 479M 2% /run
    tmpfs 487M 0 487M 0% /sys/fs/cgroup
    /dev/sda3 7.7G 6.0G 1.8G 78% /
    /dev/sda1 473M 123M 351M 26% /boot
    tmpfs 98M 0 98M 0% /run/user/0
    /dev/sr0 4.5G 4.5G 0 100% /opt
    [root@ccc yum.repos.d]# ll /dev/cdrom
    lrwxrwxrwx 1 root root 3 11月 2 08:43 /dev/cdrom -> sr0 方式2:
    [root@ccc yum.repos.d]# mount /dev/sr0 /opt
    mount: /dev/sr0 写保护,将以只读方式挂载
    [root@ccc yum.repos.d]# df -h
    文件系统 容量 已用 可用 已用% 挂载点
    devtmpfs 476M 0 476M 0% /dev
    tmpfs 487M 0 487M 0% /dev/shm
    tmpfs 487M 7.6M 479M 2% /run
    tmpfs 487M 0 487M 0% /sys/fs/cgroup
    /dev/sda3 7.7G 6.0G 1.8G 78% /
    /dev/sda1 473M 123M 351M 26% /boot
    tmpfs 98M 0 98M 0% /run/user/0
    /dev/sr0 4.5G 4.5G 0 100% /opt 方式3:
    [root@ccc ~]# dd if=/dev/sr0 of=/centos7.iso
    记录了9338880+0 的读入
    记录了9338880+0 的写出
    4781506560字节(4.8 GB)已复制,154.363 秒,31.0 MB/秒
    [root@ccc ~]# mount-o loop/root/centos7.iso /opt # 查看光盘里的rpm包
    [root@ccc ~]# ls /opt/Packages/ # 2.自己去网上下载rpm包进行安装
    # 3.联网从yum仓库里获取rpm包

11.3 rpm命令

11.3.1 常用选项

  • 安装

    # rpm -ivh RPM包名全称
    [root@ccc ~]# rpm -ivh /opt/Packages/zlib-devel-1.2.7-18.el7.x86_64.rpm
    准备中... ################################# [100%]
    软件包 zlib-devel-1.2.7-18.el7.x86_64 已经安装
  • 卸载

    # rpm -e RPM包名
    [root@ccc ~]# rpm -e zlib-devel
    [root@ccc ~]# rpm -ql zlib-devel
    未安装软件包 zlib-devel
  • 升级

    # rpm -Uvh RPM包名
  • 查询

    rpm -qa  	     # 查询系统中安装的所有RPM软件包
    rpm -qa | grep php # 检索系统中已经安装有关php的软件包
    rpm -q RPM包名 # 查询指定软件包是否已经安装
    rpm -qi RPM包名 # 查询系统中已经安装包的描述信息
    rpm -ql RPM包名 # 查询系统中已安装包里所包含的文件
    rpm -qc RPM包名 # 查询指定软件包的所有配置文件
    rpm -qd RPM包名 # 查询某个包安装的帮助文档
    rpm -qf RPM包名 # 查询系统中指定文件所属的软件包
    -p # 上述选项的基础上加-p就可以查看尚未安装的rpm包的信息
  • 其他

    --nomd5   # 不检验软件包的签名
    --nodeps # 忽略依赖性安装软件,安装后软件可能无法使用,最好解决好依赖性再安装
    --force # 强制安装软件包,只有安装和升级可以强制执行

11.3.2 安装及依赖性

  • 安装

    # 1.RPM包在本地
    [root@ccc yum.repos.d]# mount /dev/sr0 /opt
    [root@ccc ~]# rpm -ivh /opt/Packages/zlib-devel-1.2.7-18.el7.x86_64.rpm # 2.RPM包来源于网络
    # 如果有报错 curl:(60) Peer's Certificate has expired҅将系统时间改正确重装即可
    [root@ccc ~]# rpm -ivh https://mirrors.aliyun.com/zabbix/zabbix/4.0/rhel/7/x86_64/zabbix-agent-4.0.0-2.el7.x86_64.rpm
  • 安装与依赖性

    # 例如安装httpd
    [root@ccc ~]# rpm -ivh /opt/Packages/httpd-2.4.6-93.el7.centos.x86_64.rpm
    错误:依赖检测失败:
    /etc/mime.types 被 httpd-2.4.6-93.el7.centos.x86_64 需要
    httpd-tools = 2.4.6-93.el7.centos 被 httpd-2.4.6-93.el7.centos.x86_64 需要
    libapr-1.so.0()(64bit) 被 httpd-2.4.6-93.el7.centos.x86_64 需要
    libaprutil-1.so.0()(64bit) 被 httpd-2.4.6-93.el7.centos.x86_64 需要 # 安装提示的库
    [root@ccc ~]# rpm -ivh /opt/Packages/httpd-tools-2.4.6-93.el7.centos.x86_64.rpm
    错误:依赖检测失败:
    libapr-1.so.0()(64bit) 被 httpd-tools-2.4.6-93.el7.centos.x86_64 需要
    libaprutil-1.so.0()(64bit)被httpd-tools-2.4.6-93.el7.centos.x86_64 需要
    [root@ccc ~]# rpm -ivh /opt/Packages/apr-1.4.8-5.el7.x86_64.rpm
    准备中... ################################# [100%]
    正在升级/安装...
    1:apr-1.4.8-5.el7 ################################# [100%]
    [root@ccc ~]# rpm -ivh /opt/Packages/apr-util-1.5.2-6.el7.x86_64.rpm
    准备中... ################################# [100%]
    正在升级/安装...
    1:apr-util-1.5.2-6.el7 ################################# [100%]
    [root@ccc ~]# rpm -ivh /opt/Packages/httpd-tools-2.4.6-93.el7.centos.x86_64.rpm
    准备中... ################################# [100%]
    正在升级/安装...
    1:httpd-tools-2.4.6-93.el7.centos ############################ [100%]
    [root@ccc ~]# yum search mime.types
    已加载插件:fastestmirror
    Loading mirror speeds from cached hostfile
    ======================================== 匹配:mime.types =========================================
    mailcap.noarch : Helper application and MIME type associations for file types
    perl-LWP-MediaTypes.noarch : Guess media type for a file or a URL
    [root@ccc ~]# rpm -ivh /opt/Packages/mailcap-2.1.41-2.el7.noarch.rpm
    准备中... ################################# [100%]
    正在升级/安装...
    1:mailcap-2.1.41-2.el7 ################################# [100%]
    [root@ccc ~]# rpm -ivh /opt/Packages/httpd-2.4.6-93.el7.centos.x86_64.rpm
    准备中... ################################# [100%]
    正在升级/安装...
    1:httpd-2.4.6-93.el7.cento ################################# [100%]

11.3.3 升级rpm包

# 两个版本不能共存
# -Uvp

11.4 yum命令

11.4.1 yum介绍

  • yum自动解决依赖关系

    yum(Yellow dog Updater,Modified)是一个在Fedora和RedHat及CentOS中的shell前端软件包管理器。

    基于RPM包管理,能够从指定的服务器自动下载RPM包并安装,可自动处理依赖关系,一次安装所有依赖的软件包。

  • 常见yum命令与配置文件

    [root@ccc ~]# rpm -q yum
    yum-3.4.3-167.el7.centos.noarch
    [root@ccc ~]# rpm -qc yum
    /etc/logrotate.d/yum
    /etc/yum.conf
    /etc/yum/version-groups.conf
  • yum命令常用选项

    # 仓库
    yum repolist # 查询可用仓库
    yum repolist all # 查看包括已启用或禁用的所有仓库状态
    # 关闭与启用仓库:本质都是在修改repo文件中enable的值0不启用1启用
    yum-config-manager --disable epel # 关闭仓库epel
    yum-config-manager --enable epel # 启用仓库epel # 查看
    yum list # 列出可用仓库中所有的软件包
    yum list | less
    yum grouplist # 列出可用仓库中的软件组
    yum provides /usr/sbin/ifconfig # 查询命令所属软件包,可不加路径只写命令名字
    # rpm -qf # 只可加路径 # 安装
    yum install 软件包名 -y # 安装软件-y非交互
    yum groupinstall 软件组名 -y # 安装软件组,同yum groups install 软件组名 -y # 卸载
    yum remove 软件包名 -y # 卸载软件包
    yum groupremove 软件组名 -y # 卸载软件组 # 重装
    yum reinstall 软件包名 -y # 不小心删除配置文件可以reinstall # 更新
    yum check-update # 检查可以更新的软件包
    yum update -y # 刚装完系统之后执行
    yum update 软件包 -y # 更新某个软件包 # 缓存
    yum makecache # 制作元数据缓存
    yum clean all # 清理元数据缓存
    vim /etc/yum.conf # 默认软件包下载安装后会自动删除,设置keepcache=1开启软件包缓存,缓存目录为配置文件中指定的cachedir
    # 注意点
    yum会以自己仓库中的repodata存储的依赖关系为准,有多个仓库就依次检索
    # 1.yum直接安装公网的rpm包,会自动查找当前系统上已有的仓库解决依赖关系
    yum install
    https://mirrors.aliyun.com/centos/7.6.1810/os/x86_64/Packages/samba-4.8.3-4.el7.x86_64.rpm
    # 2.yum直接安装本地的rpm包,会自动查找当前系统上已有的仓库解决依赖关系
    yum localinstall -y /mnt/Packages/httpd-2.4.6-88.el7.centos.x86_64.rpm

11.4.2 yum的历史记录

yum history  	       # 查看执行的yum命令历史记录
yum history info ID号 # 查看具体某一条yum命令的详细信息
yum history undo ID号 # 撤销执行过的历史命令

11.4.3 本地源(镜像文件作为yum源)

  • 先挂载

    [root@ccc ~]# mount /dev/cdrom /opt/
    [root@ccc ~]# mount /dev/sr0 /opt/
    [root@ccc ~]# mount -o loop /xxx.iso /opt
    # 查看光盘里的rpm包
    [root@ccc ~]# ls /opt/Packages/
  • 编辑repo文件

    [root@ccc ~]# cd /etc/yum.repos.d/
    [root@ccc yum.repos.d]# vim local.repo
    [root@ccc yum.repos.d]# cat local.repo
    [local]
    name="this is local repo"
    baseurl=file:///opt
    enabled=1
    gpgcheck=0
  • 检查可用仓库

    [root@ccc yum.repos.d]# yum repolist  	  # 查询可用仓库
    [root@ccc yum.repos.d]# yum repolist all # 查看所有仓库,包括禁用的
  • 安装、查询、卸载

    [root@ccc ~]# yum list 			 # 列出可用的软件包
    [root@ccc ~]# yum install vsftpd -y
    [root@ccc ~]# yum list vsftpd httpd
    [root@ccc ~]# yum remove vsftpd -y [root@ccc ~]# yum install glib* httpd -y
    [root@ccc ~]# yum provides vsftp # 查询某个软件(可未安装)是由那个rpm包提供 # yum reinstall
    [root@ccc ~]# rm -rf /etc/httpd/conf/httpd.conf
    [root@ccc ~]# yum reinstall httpd -y &> /dev/null
    [root@ccc ~]# ls /etc/httpd/conf/httpd.conf
    /etc/httpd/conf/httpd.conf # yum update
    [root@ccc ~]# yum -y update samba
    [root@ccc ~]# yum -y update
  • 软件包组安装、查询、卸载

    [root@ccc yum.repos.d]# yum groupinstall "开发工具" -y
    [root@ccc yum.repos.d]# yum groupremove "开发工具" -y

11.4.4 网络源(开源yum源)

  • 下载开源的yum头:

    例如阿里云的Base基础源

    wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo

    例如163的Base基础源

    wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.163.com/.help/CentOS7-Base-163.repo

    例如红帽的epel扩展源

    # 可以直接下载
    [root@ccc ~]# curl -o /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
    # 也可以安装一个包来生成
    [root@ccc ~]# yum install epel-release -y

    例如nginx官网的软件包源

    # 进入nginx官网-->download-->Pre-Built Packages-->Stable and mainline-->
    # RHEL/CentOS-->编辑到本地 [root@ccc ~]# cat nginx.repo
    [nginx-stable]
    name=nginx stable repo
    baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
    gpgcheck=1
    enabled=1
    gpgkey=https://nginx.org/keys/nginx_signing.key
    module_hotfixes=true [nginx-mainline]
    name=nginx mainline repo
    baseurl=http://nginx.org/packages/mainline/centos/$releasever/$basearch/
    gpgcheck=1
    enabled=0
    gpgkey=https://nginx.org/keys/nginx_signing.key
    module_hotfixes=true

    将CentOS系统默认的源 备份

    [root@ccc yum.repos.d]# cd /etc/yum.repos.d/
    [root@ccc yum.repos.d]# mkdir bak
    [root@ccc yum.repos.d]# mv *.repo bak
    [root@ccc yum.repos.d]# ls
    bak

11.4.5 自己制作本地yum源

  • 下载好一堆rpm包,相关依赖包也都存在,将所有rpm包都放在一个文件夹下/aaa

  • 安装工具createrepo

    [root@ccc ~]# yum install createrepo -y
  • 制作repodata

    [root@ccc ~]# createrepo /aaa/
  • 配置本地repo文件,只想/aaa

    [root@ccc ~]# vim /etc/yum.repos.d/soft.repo
    [soft]
    name=soft
    baseurl=file:///aaa
    enabled=1
    gpgcheck=0
  • yum元数据缓存

    指将yum仓库下的元数据缓存下来,下次安装时省去了检索的过程,安装速度加快

    [root@ccc ~]# yum clean all  # 清理缓存
    [root@ccc ~]# yum makecache # 制作缓存
  • yum软件包缓存

    开启软件包缓存后,从网络源下载安装完的软件包不再删除,都缓存到本地

    [root@ccc ~]# vim /etc/yum.conf
    [main]
    cachedir=/var/cache/yum/$basearch/$releasever # 指定软件安装包的缓存目录
    keepcache=1 # 设置为1
    debuglevel=2
    # 缓存目录为: /var/cache/yum/x86_64/7/
  • 基于软件包缓存可以做成自己的yum源,以此来控制各个服务的版本

    1、在测试环境中,在每个节点上都开启软件包缓存
    2、在测试环境中,安装相同版本的操作系统,安装完毕后统一执行yum update -y
    3、在测试环境中,部署完架构,测试完毕
    4、把测试环境中每台机器上缓存好的软件包采集到一个目录下
    [root@ccc ~]# find /var/cache/yum/x86_64/7/ -type f -name "*.rpm" | xargs -I {} mv {} /soft/
    5、用createrepo命令制作好依赖关系,即repodata数据库
    6、在线上环境部署时,用本地源,不轻易升级,不滥用yum源

11.4.6 自己制作yum源共享给别人

  • 服务端执行的操作

    # 1、环境准备
    [root@ccc ~]# systemctl stop firewalld
    [root@ccc ~]# systemctl disable firewalld
    [root@ccc ~]# setenforce 0
    setenforce: SELinux is disabled
    [root@ccc ~]# sed -i 's#^SELINUX=.*#SELINUX=disabled#g' /etc/selinux/config # 安装ftp服务
    [root@ccc ~]# yum install vsftpd -y
    [root@ccc ~]# systemctl start vsftpd
    [root@ccc ~]# systemctl status vsftpd # 查看状态,确保开启
    [root@ccc ~]# systemctl enable vsftpd # 采集关键包放到一个目录下
    [root@ccc ~]# mkdir /var/ftp/centos7
    [root@ccc ~]# mount /dev/sr0 /var/ftp/centos7 # 或拷贝
    [root@ccc ~]# mount /dev/sr0 /opt
    [root@ccc ~]# mkdir /var/ftp/centos7
    [root@ccc ~]# find /opt/Packages/ -type f -name "*.rpm" |xargs -I {} cp -rp{} /var/ftp/centos7/
  • 在客户端上执行的操作

    # 1、环境准备
    [root@ccc ~]# systemctl stop firewalld
    [root@ccc ~]# systemctl disable firewalld
    [root@ccc ~]# setenforce 0
    setenforce: SELinux is disabled
    [root@ccc ~]# sed -i 's#^SELINUX=.*#SELINUX=disabled#g' /etc/selinux/config
    [root@ccc ~]# ping -c 2 192.168.12.42 # ping服务器IP地址确保网络畅通 # 在客户端配置网络yum源
    [root@ccc ~]# cd /etc/yum.repos.d/
    [root@ccc ~]# mkdir bak
    [root@ccc ~]# mv *.repo bak/
    [root@ccc ~]# cat >> ftp.repo << EOF
    > [ftp_repo]
    > name = This is Ftp Share Repo
    > baseurl = ftp://192.168.12.42/centos7
    > enabled = 1
    > gpgcheck = 0
    > EOF
    # 客户端baseurl指向的文件夹子目录一级必须要有repodata数据库

11.5 源码包

11.5.1 预先安装编译安装依赖的库

  • 安装编译器

  • 安装解释器

    [root@ccc ~]# yum groupinstall -y "开发工具"
    [root@ccc ~]# yum -y install gcc gcc-c++ autoconf automake make
    [root@ccc ~]# yum -y install zlib zlib-devel openssl openssl-devel pcre pcre-devel

11.5.2 官网下载源码包

  • 浏览器下载

  • 或者执行命令

    [root@ccc ~]# cd /root
    [root@ccc ~]# wget http://nginx.org/download/nginx-1.18.0.tar.gz

11.5.3 解压、编译、编译安装

  • 解压

    [root@ccc ~]# tar xvf nginx-1.18.0.tar.gz -C /tmp/
    [root@ccc ~]# cd /tmp/nginx-1.18.0/
  • 配置

    [root@ccc nginx-1.18.0]# ./configure --user=www --group=www --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module --with-stream --with-http_gzip_static_module --with-http_sub_module
    # 1、如果报错,先执行make clean all,再重新执行配置操作
    # 2、--prefix指定安装目录,/usr/local/nginx是安装目录
    # 3、带ssl stub_status模块 添加steam模块 -with-stream,能传输tcp协议
    # 4、http_stub_status_module 状态监控
    # 5、http_ssl_module 配置https
    # 6、stream 配置tcp的转发
    # 7、http_gzip_static_module 压缩
    # 8、http_sub_module 替换请求
  • 编译安装

    [root@ccc nginx-1.18.0]# make && make install
  • 清理安装包

    [root@ccc nginx-1.18.0]# rm -rf /tmp/nginx-1.18.0/
  • 将程序设定软链接,便于后续升级

    [root@ccc ~]# ln -s /usr/local/nginx/ /soft/nginx
    [root@ccc ~]# ll /soft/
    总用量 0
    lrwxrwxrwx 1 root root 17 11月 3 15:24 nginx -> /usr/local/nginx/
  • 启动测试

    [root@ccc nginx-1.18.0]# useradd www
    [root@ccc nginx-1.18.0]# /usr/local/nginx/sbin/nginx
    打开浏览器:输入服务器的IP地址,可以看到欢迎界面
  • 总结

    # ./configure --prefix=/usr/local/nginx
    1、指定安装路径,例如--prefix=DIR
    2、启用或禁用某项功能,例如--enable-ssl,--disable-filter --with-http_ssl_module
    3、和其他软件关联,例如--with-pcre=/root/pcre-8.31
    4、检查安装环境,例如是否有编辑器gcc,是否满足软件的依赖需求
    5、最终生成:MAkefile
    # make # 按Makefile文件编辑,可以使用-j 2指定两颗CPU编译
    # make install # 安装
    如果中途发生错误,多半是因为缺少必要的库的支持,先清理
    # make clean all # 清理以前编译后产生的*.o目标文件
    然后安装依赖库,重新执行三部曲

11Linux之软件包管理的更多相关文章

  1. BZOJ 4196: [Noi2015]软件包管理器 [树链剖分 DFS序]

    4196: [Noi2015]软件包管理器 Time Limit: 10 Sec  Memory Limit: 512 MBSubmit: 1352  Solved: 780[Submit][Stat ...

  2. Fedora 22中的RPM软件包管理工具

    Introduction The RPM Package Manager (RPM) is an open packaging system that runs on Fedora as well a ...

  3. Linux软件包管理

    Linux软件包管理 Linux软件包管理主要有2类:是二进制包管理.源码包管理 二进制包管理 主要有RPM和YUM两种 RPM包管理 安装 --ivh:-v ,-vv,-vvv显示的安装信息依次详细 ...

  4. Linux 软件包管理

    简介: linux中软件包的管理随着linux版本的不同而不同,一般RPM和DPKG是最常见的两类软件包管理工具.分别应用基于rpm软件包的linux发行版本和基于deb软件包的linux发行版本. ...

  5. [BZOJ4196][NOI2015]软件包管理器

    4196: [Noi2015]软件包管理器 Time Limit: 10 Sec  Memory Limit: 512 MBSubmit: 1040  Solved: 603[Submit][Stat ...

  6. linux软件包管理(下)

    在vi配置文件的编写的时候我们发现#并不能注释掉一行的信息 那什么才是linux标准的注释信息呢 查看软件对应的软件包命令 rpm –ap| grep vim 大多example是需要的事例文档  双 ...

  7. linux软件包管理(上)

    1.二进制包管理(RPM,yum) 2.源代码包的安装 3.脚本安装(shell或java) 4.Debian系列的linux软件包管理简介 在下载rmp包的时候注意检查硬件平台是否正确,如果硬件平台 ...

  8. Mac OSX上的软件包管理工具,brew 即 Homebrew

    brew 即 Homebrew,是Mac OSX上的软件包管理工具,能在Mac中方便的安装软件或者卸载软件, 只需要一个命令, 非常方便. brew类似ubuntu系统下的apt-get的功能. 安装 ...

  9. linux 学习6 软件包管理 资料链接

    软件包管理 这一章看得比较随意 先大概记点东西. RPM安装很繁琐,因为依赖性,手动安装太麻烦. ______我觉得直接yum在线安装就好了,很直接方便. 但是要特别注意的地方 在用yum升级或者卸载 ...

随机推荐

  1. 习题3-5 谜题(Puzzle, ACM/ICPC World Finals 1993, UVa227)

    #include<stdio.h> #include<string.h> char s[5][5]; int main() { while(gets(s[0])) { int ...

  2. java 环境变量配置(win10)

    到官网下载jdk,链接https://www.oracle.com/technetwork/java/javase/downloads/index.html 安装好,进行环境变量配置,打开环境变量 1 ...

  3. 【学习笔记】扩展卢卡斯定理 exLucas

    引子 求 \[C_n^m\ \text{mod}\ p \] 不保证 \(p\) 是质数. 正文 对于传统的 Lucas 定理,必须要求 \(p\) 是质数才行.若 \(p\) 不一定是质数,则需要扩 ...

  4. centos7安装kafka 转

    CentOS7安装和使用kafka         环境准备 安装kafka之前我们需要做一些环境的准备 1.centOS7系统环境 2.jdk环境 3.可用的zookeeper集群服务 安装jdk ...

  5. 使用Pytorch搭建模型

    本来是只用Tenorflow的,但是因为TF有些Numpy特性并不支持,比如对数组使用列表进行切片,所以只能转战Pytorch了(pytorch是支持的).还好Pytorch比较容易上手,几乎完美复制 ...

  6. Sysbench测试神器:一条命令生成百万级测试数据

    1. 基准测试 基准测试(benchmarking)是性能测试的一种类型,强调的是对一类测试对象的某些性能指标进行定量的.可复现.可对比的测试. 进一步来理解,基准测试是在某个时候通过基准测试建立一个 ...

  7. JavaScript正则表达式随笔

    概念先行. 正则表达式:又称规则表达式.常用于检索,替换符合某种符合(规则)的文本. 组成:普通字符和元字符,普通字符就是一个普通的查找串,如abc,原字符具有特殊含义. 这里研究的是JavaScri ...

  8. 吐槽一下Abp的用户和租户管理模块

    1. 背景 ASP.NET Core 基于声明的访问控制到底是什么鬼? 聊到基于声明的身份认证将 身份和签发机构分离,应用程序信任签发机构,故认可签发的身份信息. -- --- --- --- Cla ...

  9. SP22343 Norma--序列分治

    Norma 传送门 题意简化: 定义一个区间的贡献为 \(max*min*len\),求给定序列中所有子区间的总贡献和 题解 考虑 \(O(n*log_2n)\) 的复杂度的做法 数据结构??? yz ...

  10. 【开源】使用.Net Core和GitHub Actions实现哔哩哔哩每日自动签到、投币、领取奖励

    BiliBiliTool是一个B站自动执行任务的工具,使用.NET Core编写,通过它可以实现B站帐号的每日自动观看.分享.投币视频,获取经验,每月自动领取会员权益.自动为自己充电等功能,帮助我们轻 ...