zoukankan      html  css  js  c++  java
  • 别人的Linux私房菜(23)软件安装RPM、SRPM、YUM

    RPM(RedHat Package Manager),不同Linux发行版发布的RPM文件甚至不同版本,不通用。

    SRPM为Source RPM,所提供的软件内容没有经过编译,格式为xxx.src.rpm。将软件编译成RPM文件,然后将编译完成的RPM文件安装。

    RPM属性依赖使用YUM在线升级。YUM服务器将依赖属性问题记录为依赖性列表,存于服务器或本地。有需求时下载列表,对比数据库,解决依赖问题,下载软件。

    RPM文件在系统上安装完毕后,相关信息写入到/var/lib/rpm中。

    RPM -i安装,-v查看详细安装信息,-h显示安装进度。

    如安装两个软件:rpm -ivh a.i386.rpm b.i386.rpm *.rpm,

    通过网址进行安装:rpm -ivh http://website.name/path/pkgname.rpm

     RPM安装时的一些选项:

    找出安装文件在光盘中的位置:find /mnt -name 'pam-devel*'

     测试依赖性:rpm -ivh pam-devel... --test

     

    RPM查询

    -q :仅查询,后面接的软件名称是否有安装;
    -qa :列出所有的,已经安装在本机 Linux 系统上面的所有软件名称;
    -qi :列出该软件的详细信息 (information),包含开发商、版本与说明等;
    -ql :列出该软件所有的文件与目录所在完整文件名 (list);
    -qc :列出该软件的所有配置文件 (找出在 /etc/ 底下的檔名而已)
    -qd :列出该软件的所有说明文件 (找出与 man 有关的文件而已)
    -qR :列出与该软件有关的相依软件所含的文件 (Required 的意思)
    -qf :由后面接的文件名,找出该文件属于哪一个已安装的软件;
    

    如查询是否已经安装了软件:rpm -q logrotate  

     RPM验证与数字签名

    -V :后面加的是软件名称,若该软件所含的文件被更动过,才会列出来;
    -Va :列出目前系统上面所有可能被更动过的文件;
    -Vp :后面加的是文件名,列出该软件内可能被更动过的文件;
    -Vf :列出某个文件是否被更动过~
    

    如:rpm -V logrotate#表示该文件没有被修改过。rpm -Vf /etc/crontab

    其中显示的信息解释如下:之后的c表示logrotate为configuration文件。

     

    安装RPM文件时,首先安装原厂的公钥文件,安装时rpm命令读取rpm文件的签名与安装签名对比,相同则安装。

    CentOS的数字签名在之类:/etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7

    rpm文件的安装:rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7

     查找:locate GPG-KEY      find /etc -name '*GPG-KEY*'

     显示:rpm -qa | grep pubkey     rpm -qi gpg-pubkey-f4a80eb5-53a7ff4b#密钥以软件pubkey的呈现方式

     RPM卸载:-e

    如:显示相关软件rpm -qa | grep pam,卸载rpm -e pam

     由于删除,卸载等操作,可能导致RPM数据库/var/lib/rpm/的文件损坏,通过rpm --rebuilddb重建数据库

    利用YUM查找磁盘阵列相关软件信息:yum search raid

    找出mdadm软件功能:yum info mdadm

     列出yum已安装软件名称:yum list

     列出服务器上可供更新本机的软件:yum list updates

     列出提供passwd命令的软件:yum provides passwd

     安装软件:yum install pam-devel

     卸载软件:yum remove pam-devel

     修改配置文件:vim /etc/yum.repos.d/CentOS-Base.repo,一些说明:

    修改baseurl的地址即可修改镜像源。之后列出软件是否正常运行:yum repolist all

     修改软件源后,可能造成本地列表与YUM服务器列表不同步,造成无法更新,需要删除本机的旧数据:yum clean all

     YUM软件群组功能

    查看目前可用和未安装的软件群组:yum grouplist

     查看软件群组信息:yum groupinfo "Scientific Support"

     安装软件群组:yum groupinstall "Scientific Support"

     修改群组安装时默认全部安装而不是可选择安装:vim /etc/yum.conf,然后补如下:之后安装。

     

     软件拓展计划EPEL提供了许多额外的软件源。

     针对epel,在建立/etc/yum.repos.d/epel.repo文件,写入数据:

     

    使用自定义文件安装两个软件:yum --enablerepo=epel install netcdf R

     使用光盘安装:

     

    全系统自动升级:

     安装如apache软件的防火墙:

     使用SRPM软件:

    安装编译一些参数:

    示例:下载软件wget http://vault.centos.org/7.1.1503/updates/Source/SPackages/ntp-4.2.6p5-19.el7.centos.1.src.rpm

     直接编译:rpmbuild --rebuild ntp-4.2.6p5-19.el7.centos.1.src.rpm

    安装依赖项:yum install libcap-devel openssl-devel libedit-devel pps-tools-devel autogen autogen-libopts-devel

    再次编译:rpmbuild --rebuild ntp-4.2.6p5-19.el7.centos.1.src.rpm

     找到最后完成编译的软件:/root/rpmbuild/RPMS/x86_64/ntp-4.2.6p5-19.el7.centos.1.x86_64.rpm

     使用的路径与需要的软件

     

    直接安装SRPM文件:rpm -ivh ntp-4.2.6p5-19.el7.centos.1.src.rpm,查看:ll -l /root/rpmbuild

     查看配置文件*.spec的主要内容:如ntp.spec,为将SRPM编译为RPM的主要文件,每段以%开头

    文件一些格式说明:

    SRPM一些编译指令:rpmbuild -ba ntp.spec编译并同时产生 RPM 与 SRPM 文件

     rpmbuild -bb ntp.spec仅编译成 RPM 文件

     一些细节:

     自行软件打包时,首先制作源码,之后制作Tarball。

    然后建立.spec文件,如:

    Name: main
    Version: 0.1
    Release: 1%{?dist}
    Summary: Shows sin and cos value.
    Group: Scientific Support
    License: GPLv2
    URL: http://linux.vbird.org/
    Source0: main-0.1.tgz # 这两个档名要正确喔!
    Patch0: main_0.1_to_0.2.patch
    %description
    This package will let you input your name and calculate sin cos value.
    %prep
    %setup -q
    %patch0 -p1 # 要用来作为 patch 的动作!
    %build
    make clean main # 编译就好!不要安装!
    %install
    mkdir -p %{buildroot}/usr/local/bin
    install -m 755 main %{buildroot}/usr/local/bin # 这才是顺利的安装行为!
    %files
    /usr/local/bin/main
    %changelog
    * Wed Sep 09 2015 VBird Tsai <vbird@mail.vbird.idv.tw> 0.2
    - build the program
    

    然后编译:rpmbuild -ba main.spec

    安装,测试,查询:

     yum install /root/rpmbuild/RPMS/x86_64/main-0.1-1.el7.centos.x86_64.rpm

     rpm -ql main    rpm -qi main

     讲真,废话真的太多了!因省时间,直接进行了截图!

  • 相关阅读:
    MongoDB CRUD操作
    mongodb的help类
    MongoDB(六):使用C#代码连接并读取MongoDB数据库
    MongoDB下载、安装、配置、使用,如何下载MongoDB数据库,MongoDB入门
    MongoDB(一):关系型数据库和非关系型数据库
    浅谈.NET中闭包
    JavaScript 对象
    python连接数据库
    个人总结
    课堂建议
  • 原文地址:https://www.cnblogs.com/bai2018/p/10793415.html
Copyright © 2011-2022 走看看