zoukankan      html  css  js  c++  java
  • Linux rpm yum 等安装软件

    任何程序都是先写代码,拿到源码去编译得到一个目标程序。
    1  编译的过程复杂有需要准备编译的环境,和硬件有关,32位64位,内核的不同等等所以需要编译多次
        Java特殊但是他需要安装jvm,
    2  各种版本的都编译了放那就是rpm(官网)  windows上面是exe的文件
        还是不够好,但是也会有一些失败,让你安装一些其他的软件,它有一定的依赖,比如依赖的库
    3  解决依赖用yum(仓库)yum只是一个框架,底层还是rpm,他会帮助我们分析出依赖哪些软件,然后帮助我们下载
        但是yum不是万能的,软件少(4000多个软件),有些需要去rpm下载比如jdk。而EPEL上面的软件多, 2w

     bash启动的时候读取的初始化的文件profile
     export JAVA_HOME=/usr/java/jdk1.7.0_67
     export PATH=$PATH:$JAVA_HOME$/bin
     source /etc/profile
     source 是bash内建的命令
     bash输入命令的时候就是通过PATH找到命令的路径 
     指定了Java的PATH,当我们输入Java的时候他就会通过PATH找到Java是什么执行它

     bin
     rpm
     yum 
     编译安装 > 使得目标程序更符合客户的需求
    可配置
    裁剪

    解压直接得到程序 (完全使用,补全依赖:tomcat jdk)
    rpm 包,已经编译之后的应用程序。

    rpm命令:
    1、安装
    rpm -i /PATH/TO/PACKAGE_FILE 
            -i  :是安装
    -h: 以#显示进度;每个#表示2%; 
    -v: 显示详细过程
    -vv: 更详细的过程
    rpm -ivh /PATH/TO/PACKAGE_FILE      文件名

    --nodeps: 忽略依赖关系;
    --replacepkgs: 重新安装,替换原有安装;
    --force: 强行安装,可以实现重装或降级;
    安装jdk
    配置环境变量:编辑/etc/profile 或者 ~/.bash_profile
    export JAVA_HOME=/usr/java/jdk1.7.0_71
            export PATH=$PATH:$JAVA_HOME/bin
    2、查询
    文件名可以改,包不行     查询是否安装时用包查询
    rpm -q PACKAGE_NAME: 查询指定的包是否已经安装
    rpm -qa : 查询已经安装的所有包<font color="#000000"></font>
    rpm -qa |grep  jdk     得到PACKAGE_NAME
     

     rpm -qi PACKAGE_NAME: 查询指定包的说明信息;
     
     rpm -ql PACKAGE_NAME: 查询指定包安装后生成的文件列表;
     

    rpm -qc PACEAGE_NEME:查询指定包安装的配置文件;
     

    rpm -qd PACKAGE_NAME: 查询指定包安装的帮助文件;
     

    rpm -q --scripts PACKAGE_NAME: 查询指定包中包含的脚本
    rpm -qf /path/to/somefile: 查询指定的文件是由哪个rpm包安装生成的;反推的时候
     
    如果某rpm包尚未安装,我们需查询其说明信息、安装以后会生成的文件;
    rpm -qpi /PATH/TO/PACKAGE_FILE
    rpm -qpl 

    3、升级
    rpm -Uvh /PATH/TO/NEW_PACKAGE_FILE: 如果装有老版本的,则升级;否则,则安装;
    rpm -Fvh /PATH/TO/NEW_PACKAGE_FILE:如果装有老版本的,则升级;否则,退出;
    --oldpackage: 降级
    4、卸载
    rpm -e PACKAGE_NAME
    --nodeps
    5、校验
    rpm -V PACKAGE_NAME
    6、重建数据库
    rpm 
    --rebuilddb: 重建数据库,一定会重新建立;
    --initdb:初始化数据库,没有才建立,有就不用建立;


    7、检验来源合法性,及软件包完整性;
    加密类型:
    对称:加密解密使用同一个密钥
    公钥:一对儿密钥,公钥,私钥;公钥隐含于私钥中,可以提取出来,并公开出去;
    单向:

    # ls /etc/pki/rpm-gpg/
    RPM-GPG-KEY-redhat-release
    rpm -K /PAPT/TO/PACKAGE_FILE
    dsa, gpg: 验正来源合法性,也即验正签名;可以使用--nosignature,略过此项
    sha1, md5: 验正软件包完整性;可以使用--nodigest,略过此项


    yum: Yellowdog Update Modifier
    yum
    apt-get

    yum install zsh

    yum源配置
    [Repo_ID]
    name=Description
    baseurl=
    ftp://
    http://
    file://
    enabled={1|0}
    gpgcheck={1|0}
    gpgkey=


    yum [options] [command] [package ...]

    -y: 自动回答为yes
    --nogpgcheck


    list: 列表 
    支持glob
    all
    available:可用的,仓库中有但尚未安装的
    installed: 已经安装的
    updates: 可用的升级



    clean: 清理缓存  makecache
    [ packages | headers | metadata | dbcache | all ]


    repolist: 显示repo列表及其简要信息
    all
    enabled: 默认
    disabled

    install: 安装
    yum install PACKAGE_NAME

    update: 升级
    update_to: 升级为指定版本

    remove|erase:卸载

    info: 

    provides| whatprovides: 查看指定的文件或特性是由哪个包安装生成的; 
    groupinfo
    grouplist
    groupinstall
    groupremove
    groupupdate



    手动编译安装

    步骤:
    1、下载
    2、查看源码
    3、准备编译环境
    4、检查(依赖、兼容)
    5、编译
    6、安装



    gcc: GNU C Complier, C
    g++: 



    make

    make install


    编译安装的三步骤:
    前提:准备开发环境(编译环境)
    安装"Development Tools"和"Development Libraries" 

    yum groupinstall Development Tools Development Libraries

     
    tar -zxvf 压缩包 ,tar.gz
    # tar 
    # cd
    # ./configure  
    --help 
    --prefix=/path/to/somewhere
    --sysconfdir=/PATH/TO/CONFFILE_PATH
    功能:1、让用户选定编译特性;2、检查编译环境;
    # make
    # make install

    # tar xf tengine-1.4.2.tar.gz
    # cd tegnine-1.4.2
    # ./configure --prefix=/usr/local/tengine --conf-path=/etc/tengine/tengine.conf
    # make
    # make install



    安装apache

    解压:tar -zxvf httpd-2.4*****.tar.gz

    apache 依赖apr,和apr-util 
    下载安装apr和apr-util







  • 相关阅读:
    linux机器,docker安装mysql
    一次完整的http请求过程
    mac 安装git
    mac下安装maven和IntelliJ IDEA
    小米老手机 安装charles的https证书 MI NOTE LTE
    mac搭建node环境
    python&kafka集群取消息
    mac电脑破解pycharm
    pytest安装
    sql group by 和 定义输出的小数位数
  • 原文地址:https://www.cnblogs.com/jxhd1/p/6712072.html
Copyright © 2011-2022 走看看