精华内容
下载资源
问答
  • Linux 安装Rmp格式在Linux(CentOS6.5)操作系统下,安装MYSQL有两种方式:一种tar安装方式,一种是rpm安装方式

    [MySQL]Linux 安装Rmp格式MySQL

    在Linux(CentOS6.5)操作系统下,安装MYSQL有两种方式:

    一种tar安装方式,一种是rpm安装方式。

    这两种安装方式有什么区别呢?尽管我们在Linux下常用tar来压缩/解压缩文件,但MYSQL的tar格式的文件其实只是mysql的文件包,并不能直接安装,需要操作configure、make、install等命令才能完成安装,是一种比较繁琐的安装方式。而rpm格式的文件是真正的安装包,相当于windows的exe文件,可以直接安装。

    本文以MySQL-5.7.20 64位版本rpm格式的安装方式为例,详述MySQL的安装方式,32位的rpm版本安装方式也是如此。


    (一)删除老版本的MySQL

    在安装前要先确定系统是否已经安装了其他版本的MySQL,如已安装其他版本的MySQL,需先删除后再安装新版本。经本文亲测,采用如下方式删除老版本的MySQL或MySQL残留文件作为方便。

    1.执行yum命令,删除MySQL的lib库,服务文件

    yum remove mysql mysql-server mysql-libs mysql-server;
    

    2.执行yum命令,删除MySQL的lib库,服务文件

    find / -name mysql;
    

    (二)RPM格式安装MySQL

    当前,MySQL的最新版本为:5.7.20,从官网下载(Red Hat)MySQL的rpm安装包:
      
    > mysql-community-common-5.7.20-1.el7.x86_64.rpm
    > mysql-community-libs-5.7.20-1.el7.x86_64.rpm
    > mysql-community-client-5.7.20-1.el7.x86_64.rpm
    > mysql-community-server-5.7.20-1.el7.x86_64.rpm

    1.在重新进行安装之前,为确保万无一失,我们还是再确认一下系统中是否有MySQL极其相关的RPM安装包。如果有,则先删除。

    rpm -qa | grep -i mysql;
    

    执行完上述命令后,返回空数据,则可进行第二步。否则,执行下面的命令删除MySQL的相关包文件。

    yum -y remove mysql-libs*;
    

    2.将前面提到的MySQL安装文件,拷贝到服务器【/opt】目录下,依次执行下述安装命令

    rpm -ivh mysql-community-common-5.7.20-1.el7.x86_64.rpm;
    rpm -ivh mysql-community-libs-5.7.20-1.el7.x86_64.rpm;
    rpm -ivh mysql-community-client-5.7.20-1.el7.x86_64.rpm;
    rpm -ivh mysql-community-server-5.7.20-1.el7.x86_64.rpm;
    

    如果遇到警告

    • 无风险升级

    /lib64/libc.so.6: version `GLIBC_2.18’ not found (required by /lib64/libstdc++.so.6)

    原因:当前系统安装的 GLIBC 版本低于软件编译时使用的 GLIBC 版本
    解决办法:升级 GLIBC

    rpm -qa | grep glibc; #当前系统装了 GLIBC 的哪些包
    strings /lib64/libc.so.6 | grep GLIBC; #以及最高支持版本
    
    curl -O http://ftp.gnu.org/gnu/glibc/glibc-2.18.tar.gz
    tar zxf glibc-2.18.tar.gz 
    cd glibc-2.18/
    mkdir build
    cd build/
    ../configure --prefix=/usr #注意了,别修改路径
    make -j2
    make install
    
    • 旧版GPG keys

    warning: mysql-5.7.20.rpm: Header V3 DSA/SHA1 Signature, key ID 5072e1f5: NOKEY

    原因:这是由于yum安装了旧版本的GPG keys造成的
    解决办法:后面加上

     --force --nodeps;
    

    如:

    rpm -ivh mysql-community-server-5.7.20-1.el7.x86_64.rpm --force --nodeps;
    
    • 缺少 libstdc++.so.6(GLIBCXX_3.4.15)

    error: Failed dependencies:
    libstdc++.so.6(GLIBCXX_3.4.15)

    原因:CentOS6.5 缺少 libstdc++.so.6(GLIBCXX_3.4.15)
    解决办法:下载libstdc+±4.8.2-16.el7并安装

    rpm -ivh libstdc++-4.8.2-16.el7.x86_64.rpm  --replacefiles;
    strings /usr/lib64/libstdc++.so.6 | grep GLIBCXX;
    
    • 缺少numactl

    mysqld: error while loading shared libraries: libnuma.so.1:cannot open shared object file: No such file or dir

    原因:CentOS6.5 缺少 numactl
    解决办法:运行以下命令

    yum -y install numactl;
    

    3.分别运行下述命令,初始化MySQL及设置密码

    • 初始化MySQL
    cd /usr/bin;
    mysqld --initialize --user=mysql;
    
    • 更改mysql数据库目录的所属用户及其所属组(没用创建mysql用户)
    chown mysql:mysql /var/lib/mysql -R
    
    • 授权
    chmod -R 777 mysql
    
    • 启动MySQL
    systemctl start mysqld.service
    
    • 重置密码

    1、打开 etc/my.cnf 文件,在文件的最后添加一行“skip-grant-tables”,保存并关闭文件

    vim /etc/my.cnf
    

    2、重启MySQL

    systemctl restart mysqld.service
    

    3、在命令行中输入以下命令(不输入密码),回车即可进入数据库

    mysql -u root -p;
    

    4、使用mysql数据库

    use mysql;
    

    5、修改root的密码

    5.7版本下的mysql数据库下已经没有password这个字段了,password字段改成了authentication_string

    update user set authentication_string=password("rootadmin") where user='root';
    

    6、打开 etc/my.cnf 文件,删除最后一行的“skip-grant-tables”,保存并关闭文件

    7、重启MySQL服务

    systemctl restart mysqld.service
    

    8、问题搞定!

    mysql -uroot -prootadmin
    

    9、初始化密码常见报错问题

    use mysql;
    

    用该密码登录后,必须马上修改新的密码,不然会报如下错误:

    ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.

    修改初始登录密码

    alter user 'root'@'localhost' identified by '!@#a123456';
    
    • 授权远程连接
    grant all privileges on *.* to 'root'@'%'identified by '!@#a123456' with grant option;
    
    • 配置默认编码为UTF8

    修改/etc/my.cnf配置文件,在[mysqld]下添加编码配置

    character_set_server=utf8
    init_connect='SET NAMES utf8'
    

    重启MySQL服务

    • 设置开机启动

    检查是否已经是开机启动

    systemctl list-unit-files | grep mysqld
    

    开机启动

    systemctl enable mysqld.service
    
    展开全文
  • linux RMP软件包 rpm管理

    2020-02-17 23:28:58
    RMP包校验。rpm -V 已经安装的包名 添加光盘: 1. 创建挂载的目录:mkdir /mnt/cdrom 2. 挂载:mount /dev/sr0 /mnt/cdrom/ 2(centos 7). 安装包的启动。 systemctl start httpd.service #启动 systemctl ...
    1. 使用yum安装
      1.安装:yum -y install 包名
      2.查询。yum list 查询服务器上所有可以安装的软件; yum search 关键字。 查询服务器上所有与关键字有关的包
      3.软件包组查询 yum grouplist; 软件包组安装。yum groupinstall 软件包组

    2. 永久性配置ip
      1.setup. 配置ip等信息
      2.vi /etc/sysconfig/network-scripts/ifcfg-eth0 然后把ONBOOT改成yes
      3.重启网络。 service network restart

      rpm包的默认安装位置

    3. rpm安装 :rpm -ivh 全包名
      rpm升级:rpm -Uvh 全包名
      rpm卸载:rpm -e 包名
      2.查看某软件。rpm -q 包名
      3.查看文件的具体安装位置: rpm -ql 包名
      4.查看软件的详细信息。:rpm -qi 包名
      5.查询系统文件属于哪一个RPM包 rpm -qf 系统文件名
      6.查询软件安装的依赖包。 rpm -qR 包名

    4. RMP包校验。rpm -V 已经安装的包名
      添加光盘:
      1. 创建挂载的目录:mkdir /mnt/cdrom
      2. 挂载:mount /dev/sr0 /mnt/cdrom/
      在这里插入图片描述
      2(centos 7). 安装包的启动。
      systemctl start httpd.service #启动
      systemctl stop httpd.service #停止
      systemctl restart httpd.service #重启
      3(centos 7). 开机启动或不启动
      systemctl enable httpd.service #开机启动
      systemctl disable httpd.service #开机不启动
      4(centos 7). 检查软件运行状态
      systemctl status httpd.service
      5(centos 7). 关闭防火墙。 systemctl disable firewalld.service

    5. 光盘yum源搭建

      1. 进入yum文件:cd /etc/yum.repos.d
      2. 让网络yum源失效;其实运行的时候yum是检测.repo的后缀,我们可以将此文件夹下所有的文件的后缀名.repo去掉,只有CentOs-Media.repo生效。。注意我们默认使用的是CentOs-Base.repo,这个是网络yum…(比如这样改。 mv CentOS-Base.repo CentOS-Base.bak 注意还有几个也要改)
      3. 修改光盘yum源,使其生效
        其中baseurl为你自己的光盘挂载点,把enabled =1,使其生效
    baseurl=file:///mnt/cdrom
    #        file:///media/cdrom/
    #        file:///media/cdrecorder/
    gpgcheck=1
    enabled=1
    gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
    

    7.centOs中服务的启动:https://blog.csdn.net/qq_40941912/article/details/92808496
    (需要先开启端口:iptables -I INPUT 5 -i eth0 -p tcp --dport 80 -j ACCEPT
    然后执行。iptables --line -vnL)
    */etc/rc.d/init.d/httpd start
    *service httpd start
    8.如果采用源码包安装,则只能用原始路径启动:/usr/local/apache2/bin/apachectl start

    9.开启端口
    /sbin/iptables -I INPUT -p tcp --dport 80 -j ACCEPT 写入修改

    /etc/init.d/iptables save 保存修改

    service iptables restart 重启防火墙,修改生效

    展开全文
  • 设置永久 编辑以下文件并添加 须藤nano /etc/mysql/mysql.conf.d/mysqld.cnf sort_buffer_size = 256000000 sudo服务mysql重新启动 SET GLOBAL sort_buffer_size = 256000000 // It'll reset after server restart ...

    去mysql 官网下载 mysql 完整包
    安装之前 一定要查询 系统是否有mysql
    rpm -qa | grep mysql

    rpm -e --nodeps XXXXXXXXx

    1. 解压完整包ser
    tar -xvf mysql-5.7.24-1.el6.x86_64.rpm-bundle.tar
    

    在这里插入图片描述
    解压以后

    在这里插入图片描述
    warning: mysql-community-common-8.0.23-1.el8.x86_64.rpm: Header V3 DSA/SHA1 Signature, key ID 5072e1f5: NOKEY

    条件加上
    –force --nodeps
    my

    # rpm -ivh mysql-community-common--5.7.24-1.el6.x86_64.rpm
    # rpm -ivh mysql-community-libs--5.7.24-1.el6.x86_64.rpm
    # rpm -ivh mysql-community-client--5.7.24-1.el6.x86_64.rpm
    # rpm -ivh mysql-community-server--5.7.24-1.el6.x86_64.rpmrpm
    

    在安装 - server文件时,经常报错

    [root@libingqiang mysql]# rpm -ivh mysql-community-server-5.7.24-1.el6.x86_64.rpm 
    warning: mysql-community-server-5.7.24-1.el6.x86_64.rpm: Header V3 DSA/SHA1 Signature, key ID 5072e1f5: NOKEY
    error: Failed dependencies:
    	libnuma.so.1()(64bit) is needed by mysql-community-server-5.7.24-1.el6.x86_64
    	libnuma.so.1(libnuma_1.1)(64bit) is needed by mysql-community-server-5.7.24-1.el6.x86_64
    	libnuma.so.1(libnuma_1.2)(64bit) is needed by mysql-community-server-5.7.24-1.el6.x86_64
    
    

    请直接用yum 安装
    #yum install numactl
    安装完成以后,在执行-server 文件就可以了

    1. 启动数据库
    # service mysqld start
    # service mysqld stop
    # service mysqld status
    
    1. 在数据库5.7以后,密码不是空,系统自动生成密码,在日志文件里面路径/var/log/mysqld.log 文件里 查找root@localhost: 后面跟着就是随机密码,复制粘贴一下就ok!

    进入数据库以后在修改密码就行了

    修改初始密码及授权远程访问:

    # mysql -uroot -p
    mysql> set password='Pwd@123456';
    mysql> grant all privileges on *.* to 'root'@'%' identified by 'Pwd@123456';
    

    mysql 8.0 以后不支持 grant all pri-----以上命令
    命令如下

    MySQL 8.0已经不支持下面这种命令写法
    grant all privileges on . to root@"%" identified by “.”;

    正确的写法是先创建用户
    CREATE USER ‘root’@’%’ IDENTIFIED BY ‘Hadoop3!’;
    再给用户授权
    https://www.runoob.com/w3cnote/mysql8-error-1410-42000-you-are-not-allowed-to-create-a-user-with-grant.html
    参考上面网址
    grant all privileges on . to ‘root’@’%’ ;
    在这里插入图片描述

    密码复杂度属性:

    mysql> set global validate_password_policy=0;
    validate_password_policy有以下取值:(默认是1,即MEDIUM,所以刚开始设置的密码必须符合长度,且必须含有数字,小写或大写字母,特殊字符。)

    Policy Tests Performed
    0 or LOW Length
    1 or MEDIUM Length; numeric, lowercase/uppercase, and special characters
    2 or STRONG
    Length; numeric, lowercase/uppercase, and special characters; dictionary file

    修改数据目录:

    新目录需要给mysql用户授权,mysqld_safe日志文件授权,关闭selinux(没找到相关策略设置的方法)

    # mkdir /data/mysql/data
    # mv /var/lib/mysql/* /data/mysql/data/
    # mkdir /data/mysql/log
    # chown mysql:mysql -R /data/mysql
    # touch mysqld_safe.log
    # chown mysql:mysql mysqld_safe.log
    # vi /etc/my.cnf
    /**
    [client]
    port = 3306
    socket = /data/mysql/log/mysql.sock
    default-character-set=utf8
    
    [mysql]
    no-auto-rehash
    socket=/data/mysql/log/mysql.sock
    default-character-set=utf8
    
    [mysqld]
    port = 3306
    socket = /data/mysql/log/mysql.sock
    character-set-server=utf8
    lower_case_table_names=1
    basedir=/usr
    datadir=/data/mysql/data
    log-error=/data/mysql/log/error.log
    pid-file=/data/mysql/log/mysql.pid
    init_connect='SET NAMES utf8'
    symbolic-links=0
    
    skip-external-locking
    key_buffer_size = 16M
    max_allowed_packet = 1M
    table_open_cache = 64
    sort_buffer_size = 512K
    net_buffer_length = 8K
    read_buffer_size = 256K
    read_rnd_buffer_size = 512K
    myisam_sort_buffer_size = 8M
    
    [mysqld_safe]
    log-error=/data/mysql/log/mysqld_safe.log
    */
    # getenforce
    Enforcing
    # setenforce 0
    # vi /etc/selinux/config
    /**
    # This file controls the state of SELinux on the system.
    # SELINUX= can take one of these three values:
    #     enforcing - SELinux security policy is enforced.
    #     permissive - SELinux prints warnings instead of enforcing.
    #     disabled - No SELinux policy is loaded.
    #SELINUX=enforcing
    SELINUX=disabled
    # SELINUXTYPE= can take one of these two values:
    #     targeted - Targeted processes are protected,
    #     mls - Multi Level Security protection.
    SELINUXTYPE=targeted 
    */
    # service mysqld start
    

    其他命令:

    # mysqladmin -u root -p password
    mysql> select version();
    
    
    # chkconfig --list
    # chkconfig --level 345 mysqld on
    # netstat -na | grep 3306
    
    mysql> CREATE USER 'username'@'host' IDENTIFIED BY 'password';
    
    # service mysqld --initedialize
    Usage: /etc/init.d/mysqld {start|stop|status|restart|condrestart|try-restart|reload|force-reload}
    # service mysqld start
    Initializing MySQL database:                               [  OK  ]
    Installing validate password plugin:                       [  OK  ]
    Starting mysqld:  exit                                         [  OK  ]
    
    0
    SQL Error [1038] [HY001]: Out of sort memory, consider increasing server sort buffer size
    临时解决方案
    
    只需运行mysql查询
    
    SET GLOBAL sort_buffer_size = 256000000 //服务器重启后将重置
    
    设置永久
    
    编辑以下文件并添加
    
    须藤nano /etc/mysql/mysql.conf.d/mysqld.cnf
    
    sort_buffer_size = 256000000
    
    sudo服务mysql重新启动
    
    SET GLOBAL sort_buffer_size = 256000000 // It'll reset after server restart
    
    To set permanent
    
    Edit below file and add
    
    sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf
    
    sort_buffer_size = 256000000
    
    sudo service mysql restart
    
    展开全文
  • Linux FPM制作RMP

    2018-05-02 12:05:00
     *添加淘宝的Ruby仓库  gem sources --add http://ruby.taobao.org/  *移除原生的Ruby仓库  gem sources --remove http://rubygems.org/  *安装fpm  gem install arr-pm fpm 3.shell脚本化安装FPM...

    一.FPM的介绍:

    1.FPM项目地址:("https://github.com/jordansissel/fpm")

    2.FPM是一个打包工具[ruby的一个模块]

    二.FPM的安装:

    1.安装依赖包:

        [CentOS类系统]

        yum -y groupinstall "Development Tools"

        yum -y install ruby ruby-devel rubygems gcc openssl-devel

    2.安装FPM:

        *添加淘宝的Ruby仓库

            gem sources --add http://ruby.taobao.org/

        *移除原生的Ruby仓库

            gem sources --remove http://rubygems.org/

        *安装fpm

            gem install arr-pm fpm

    3.shell脚本化安装FPM:

        [root@localhost ~]# cat fpm_install.sh

        #!/bin/bash

        Fpm_Install(){

        cat <

            Install Fpm packages

            Fpm is based on ruby,Frist you need to install ruby and Install Fpm after that.

        EOF

            yum -y install ruby rubygems ruby-devel gcc openssl-devel

            gem sources --add https://ruby.taobao.org/

            gem sources --remove http://rubygems.org/

            gem install arr-pm fpm

        }

        Fpm_Install

    三.FPM常用参数:

    -f :强制覆盖[覆盖同名rpm包]

    -n :指定的rpm包名

    -p :指定的rpm包文件放置位置

    -v :指定的rpm包版本

    -d :指定依赖的软件  ( [-d 'name'] or [-d 'name > version'] 例子: -d 'libstdc++ >= 4.4.3')

    -a :指定系统架构,如果是noarch则为'-a all' 或者 '-a native' [x86_64] 当软件不区分64位或32位的时候可以 noarch

    -s :指定INPUT的数据类型 (["-s dir"] 省略数据类型)

    -m :指定打包人员[Packager]  ([ -m 'user'])

    -C :指定打包的相对路径,类似于buildroot. 譬如-C /tmp/apr/ 而打包机器的数据包路径是/tmp/apr/{opt,usr,etc} 那安装这个rpm包后,在本地的数据就是/opt/,/usr/,/etc/

    -t :指定需要制作成什么包,可选项有(deb,rpm,solaris,etc)

        支持的源类型::

            "dir" "rpm" "gem" "python" "empty" "tar" "deb" "cpan" "npm" "osxpkg" "pear" "pkgin" "virtualenv" "zip"

        支持的目标类型:

            "rpm" "deb" "solaris" "puppet" "dir" "osxpkg" "p5p" "puppet" "sh" "solaris" "tar" "zip"

    --description        :软件包描述

    --conflicts        :指定冲突软件

    --url                :指定站点[惯例都是添加软件的官网 例如: --url "http://www.cnblog.com/roach57" ]

    --verbose            :安装过程详细打印

    --after-install    :包安装之后执行的脚本 也可写作 --post-install FILE

    --before-install    :包安装之前执行的脚本

    --after-remove        :包卸载之后执行的脚本

    --before-remove    :包卸载之前执行的脚本

    --after-upgrade    :包更新之后执行的脚本[仅支持 deb 和 rpm 这两种包]

    --before-upgrade    :包更新之前执行的脚本

    --iteration        :发布序号[就是rpm包里面的release]

    --epoch            :纪元  [不知道干嘛用的]

    --no-rpm-sign        :不使用rpm签名  Signature

    --license            :证书许可 [可选项有 'BSD(开源软件)' 'GPLv2(自由软件)' 'MIT' 'Public Domain(公共域)' 'Distributable(贡献)' 'commercial(商业)' 'Share(共享)等',一般的开发都写'BSD'或'GPL']

    --vendor            :供应商名称 [ --vendor 'roach57@163.com']

    --no-depends        :代表没有任何依赖包,和-d是对立的,不能共用

    --config-files        :指定配置文件,可以指定目录[递归]

    --directories        :指定包目录

    --category            :软件所属的类别[这是个什么软件]下面有个对应的表格:

        [参考这个文件 /usr/share/doc/rpm-x.x.x/GROUPS ]

        Amusements/Games [娱乐/游戏]

        Amusements/Graphics [娱乐/图形]

        Applications/Archiving [应用/文档]

        Applications/Communications [应用/通讯]

        Applications/Databases [应用/数据库]

        Applications/Editors [应用/编辑器]

        Applications/Emulators [应用/仿真器]

        Applications/Engineering [应用/工程]

        Applications/File [应用/文件]

        Applications/Internet [应用/因特网]

        Applications/Multimedia [应用/多媒体]

        Applications/Productivity [应用/产品]

        Applications/Publishing [应用/印刷]

        Applications/System [应用/系统]

        Applications/Text [应用/文本]

        Development/Debuggers [开发/调试器]

        Development/Languages [开发/语言]

        Development/Libraries [开发/函数库]

        Development/System [开发/系统]

        Development/Tools [开发/工具]

        Documentation [文档]

        System Environment/Base [系统环境/基础]

        System Environment/Daemons [系统环境/守护]

        System Environment/Kernel [系统环境/内核]

        System Environment/Libraries [系统环境/函数库]

        System Environment/Shells [系统环境/接口]

        User Interface/Desktops [用户界面/桌面]

        User Interface/X [用户界面/X窗口]

        User Interface/X Hardware Support [用户界面/X硬件支持]

    四.RPM包的组成格式:

    roach-1.0.1-57.el6.x86_64.rpm

      |    |    |      |    |

    软件名称|    |      |    |

        版本号  |      |    |

              发布号    |      |

                      硬件平台  |

                                扩展名

    例子备注:

        roach  :软件名称

        1.0.1  :软件版本号

        57.el6 :发布号主要是对软件存在的bug或漏洞进行修补,在软件功能上并没有变化,el6指的是rhel6系统中发布

        x86_64 :指64位的PC架构,另外还有'i386' 'i686' 等32位的PC架构,noarch是指不区分硬件架构

        rpm    :扩展名

    五.RPM包制作实例:

    1.实例一[用源码包自定义RPM包]:

        以Nginx为例:

            * 解压nginx的tar包:

                [root@localhost nginx]# tar -zxf nginx-1.6.2.tar.gz

            * 进入到解压目录中进行预编译:

                [root@localhost nginx]# cd nginx-1.6.2

                [root@localhost nginx-1.6.2]# ./configure \

                --prefix=/usr/local/nginx \

                --sbin-path=/usr/sbin/nginx \

                --conf-path=/etc/nginx/nginx.conf \

                --error-log-path=/var/log/nginx/error.log \

                --http-log-path=/var/log/nginx/access.log \

                --pid-path=/var/run/nginx/nginx.pid  \

                --lock-path=/var/lock/nginx.lock \

                --user=nginx \

                --group=nginx \

                --with-http_ssl_module \

                --with-http_flv_module \

                --with-http_stub_status_module \

                --with-http_gzip_static_module \

                --http-client-body-temp-path=/var/tmp/nginx/client/ \

                --http-proxy-temp-path=/var/tmp/nginx/proxy/ \

                --http-fastcgi-temp-path=/var/tmp/nginx/fcgi/ \

                --http-uwsgi-temp-path=/var/tmp/nginx/uwsgi \

                --http-scgi-temp-path=/var/tmp/nginx/scgi \

                --with-pcre \

                --with-debug \

            * 编译

                [root@localhost nginx-1.6.2]# make -j24 //使用多核编译

                [root@localhost nginx-1.6.2]# mkdir -p /temp/fpm_install/

            * 安装到指定的目录中:

                [root@localhost nginx-1.6.2]# make -j24 install DESTDIR=/temp/fpm_install/

                [root@localhost nginx-1.6.2]# ll /temp/fpm_install/

                total 16

                drwxr-xr-x. 4 root root 4096 Jan 11 08:22 etc

                drwxr-xr-x. 2 root root 4096 Jan 11 08:37 tmp

                drwxr-xr-x. 4 root root 4096 Jan 11 08:20 usr

                drwxr-xr-x. 4 root root 4096 Jan 11 08:20 var

                [root@localhost nginx-1.6.2]# cd /temp/fpm_install/tmp

                [root@localhost nginx-1.6.2]# cat install_after.sh

                #!/bin/bash

                source /etc/rc.d/init.d/functions

                groupadd -r nginx

                useradd -r -g nginx nginx

                exit $?

                [root@localhost nginx-1.6.2]# cat remove_after.sh

                #!/bin/bash

                source /etc/rc.d/init.d/functions

                rm -rf /usr/local/nginx

                rm -rf /etc/nginx

                userdel nginx

                exit $?

            * 制作RPM包:

                [root@localhost nginx-1.6.2]# fpm -f -s dir \

                -t rpm \

                -n nginx \

                -v 1.6.2 \

                --iteration 1.el6 \

                -C /temp/fpm_install/ \

                -p /temp/nginx_rpm/ \

                --description 'nginx1.6.2_rpm' \

                --url 'http://nginx.org/en/' \

                --after-install /temp/fpm_install/tmp/install_after.sh \

                --after-remove /temp/fpm_install/tmp/remove_after.sh

                [root@localhost nginx-1.6.2]# cd /temp/nginx_rpm/;ls

                nginx-1.6.2-1.el6.x86_64.rpm

    2.实例二[简单的软件包制作]:

            * 创建测试目录:

                [root@localhost install_rpm]# mkdir /temp/install_rpm

                [root@localhost install_rpm]# cd /temp/install_rpm

            * 创建测试用的文件和脚本:

                [root@localhost install_rpm]# tree roach

                roach

                ├── roach_test

                └── tmp

                    ├── mk_dir.sh

                    └── rm_dir.sh

                [root@localhost install_rpm]# cat roach/roach_test

                this is the test file!

                [root@localhost tmp]# cat mk_dir.sh

                #!/bin/bash

                source /etc/rc.d/init.d/functions

                mkdir -p /temp/roach

                exit $?

                [root@localhost install_rpm]# cat roach/tmp/mk_file.sh  //安装rpm后执行的脚本

                #!/bin/bash

                source /etc/rc.d/init.d/functions

                cd /temp/roach/

                touch  {1..10}

                exit $?

                [root@localhost install_rpm]# cat roach/tmp/rm_dir.sh  //卸载完后执行的脚本

                #!/bin/bash

                source /etc/rc.d/init.d/functions

                rm -rf /temp/roach

                rm -rf /roach

                exit $?

            * 制作一个属于自己的RPM包:

                [root@localhost install_rpm]# mkdir -p /temp/roach_rpm

                [root@localhost install_rpm]# fpm -f -s dir \

                -t rpm \

                -n roach \

                -v 1.0.1 \

                --iteration 1.el6 \

                -C /temp/install_rpm/ \

                -p /temp/roach_rpm/ \

                --description 'roach_test_1.0.1.rpm' \

                --url 'http://www.cnblogs.com/roach57' \

                --before-install /temp/install_rpm/roach/tmp/mk_dir.sh \

                --after-install /temp/install_rpm/roach/tmp/mk_file.sh \

                --after-remove /temp/install_rpm/roach/tmp/rm_dir.sh \

                --license 'BSD' \

                --verbose \

                --category 'Application/File' \

                -m 'roach' \

                --vendor 'roach57@163.com'

            * 查看生成的RPM包的信息:

                [root@localhost install_rpm]# cd /temp/roach_rpm;ls

                roach-1.0.1-1.el6.x86_64.rpm

                [root@localhost roach_rpm]# rpm -qp --scripts roach-1.0.1-1.el6.x86_64.rpm

                preinstall scriptlet (using /bin/sh):

                #!/bin/bash

                source /etc/rc.d/init.d/functions

                mkdir -p /temp/roach

                exit $?

                postinstall scriptlet (using /bin/sh):

                #!/bin/bash

                source /etc/rc.d/init.d/functions

                cd /temp/roach/

                touch  {1..10}

                exit $?

                postuninstall scriptlet (using /bin/sh):

                #!/bin/bash

                source /etc/rc.d/init.d/functions

                rm -rf /temp/roach

                rm -rf /roach

                exit $?

                [root@localhost roach_rpm]# rpm -qpi roach-1.0.1-1.el6.x86_64.rpm

                Name        : roach                        Relocations: /

                Version    : 1.0.1                            Vendor: roach57@163.com

                Release    : 1.el6                        Build Date: Thu 14 Jan 2016 05:44:17 AM EST

                Install Date: (not installed)              Build Host: localhost

                Group      : Application/File              Source RPM: roach-1.0.1-1.el6.src.rpm

                Size        : 259                              License: BSD

                Signature  : (none)

                Packager    : roach

                URL        : http://www.cnblogs.com/roach57

                Summary    : roach_test_1.0.1.rpm

                Description :

                roach_test_1.0.1.rpm

            * 安装rpm包:

                [root@localhost roach_rpm]# rpm -ivh roach-1.0.1-1.el6.x86_64.rpm

                Preparing...                ########################################### [100%]

                  1:roach                  ########################################### [100%]

                [root@localhost roach_rpm]# tree /roach; tree /temp/roach

                /roach

                ├── roach_test

                └── tmp

                    ├── mk_dir.sh

                    ├── mk_file.sh

                    └── rm_dir.sh

                1 directory, 4 files

                /temp/roach

                ├── 1

                ├── 10

                ├── 2

                ├── 3

                ├── 4

                ├── 5

                ├── 6

                ├── 7

                ├── 8

                └── 9

                0 directories, 10 files

            * 指定目录安装RPM:

                [root@localhost roach_rpm]# rpm -ivh roach-1.0.1-1.el6.x86_64.rpm --prefix=/temp

                Preparing...                ########################################### [100%]

                  1:roach                  ########################################### [100%]

                [root@localhost tmp]# tree /temp/roach

                /temp/roach

                ├── 1

                ├── 10

                ├── 2

                ├── 3

                ├── 4

                ├── 5

                ├── 6

                ├── 7

                ├── 8

                ├── 9

                ├── roach_test

                └── tmp

                    ├── mk_dir.sh

                    ├── mk_file.sh

                    └── rm_dir.sh

                1 directory, 14 files

            * 卸载rpm包:

                [root@localhost roach_rpm]# rpm -e roach-1.0.1-1.el6.x86_64

            * 实例二完结!

    3.FPM运行报错解决方法如下:

        注: 如果正常按照gem去安装,如果调用fpm失败,可能是因为cabin的版本有问题[报错如下]:

        [root@localhost ~]# fpm

        /usr/lib/ruby/gems/1.8/gems/cabin-0.8.0/lib/cabin/mixins/logger.rb:12:in 'included': undefined method 'options' for # (NoMethodError)

        from /usr/lib/ruby/gems/1.8/gems/cabin-0.8.0/lib/cabin/channel.rb:105:in 'call'

        解决方法如下:

              卸载当前cabin版本:

                [root@localhost ~]# gem uninstall cabin

            用旧版本的cabin:

                [root@localhost ~]# gem install cabin -v 0.7.2

    六.RPM包信息:

    1.查看RPM包中的脚本信息:

        [root@localhost ~]# rpm -qp --scripts roach-1.0.1-57.el6.x86_64.rpm

            postinstall scriptlet (using /bin/sh):

            #!/bin/bash

            source /etc/rc.d/init.d/functions

            cd temp/roach/

            for i in {1..10};do

                touch  $i

            done

            exit 0

            postuninstall scriptlet (using /bin/sh):

            #!/bin/bash

            source /etc/rc.d/init.d/functions

            rm -rf temp/roach

            exit 0

    2.查看RPM包目录结构:

        [root@localhost ~]# rpm -qpl roach-1.0.1-57.el6.x86_64.rpm

            /temp/roach/tmp/mk_dir.sh

            /temp/roach/tmp/rm_dir.sh

            /temp/roach/roach_test

    3.RPM包验证:

        [root@localhost ~]# rpm -K roach-1.0.1-57.el6.x86_64.rpm

            roach-1.0.1-57.el6.x86_64.rpm: sha1 md5 OK

    4.查看RPM包的属性:

        [root@localhost ~]# rpm -qpi roach-1.0.1-57.el6.x86_64.rpm

            Name        : roach                        Relocations: /

            Version    : 1.0.1                            Vendor: roach57@163.com

            Release    : 57.el6                        Build Date: Thu 14 Jan 2016 01:16:33 AM EST

            Install Date: (not installed)              Build Host: localhost

            Group      : Application/File              Source RPM: roach-1.0.1-57.el6.src.rpm

            Size        : 205                              License: BSD

            Signature  : (none)

            Packager    : roach

            URL        : http://www.cnblogs.com/roach57

            Summary    : roach5.7_rpm

            Description :

            roach5.7_rpm

    七.RPM包的使用:

    1.rpm的安装:

        * rpm默认安装时默认的根目录就是系统的'/':

        * rpm手动指定安装时的根目录[ --prefix=/temp/roach]:

            [root@localhost ~]# rpm -ivh roach-1.0.1-57.el6.x86_64.rpm --prefix=/temp/roach

    2.rpm的卸载:

        [指定卸载的软件时,省略最后的扩展名.rpm]

        [root@localhost ~]# rpm -e roach-1.0.1-57.el6.x86_64

    八.注意:

    CentOS5和CentOS6之间的rpm包不能混用,因为他们之间的glibc版本不同,动态库链接不上。

    九.参考文档:

    https://github.com/jordansissel/fpm/wiki

    http://zhaochj.blog.51cto.com/368705/1658496

    http://blog.sina.com.cn/s/blog_704836f40101fscj.html

    http://www.xiaomastack.com/2014/11/02/scribe-rpm/

    展开全文
  • rmpLinux中安装jdk

    2018-05-17 10:22:27
    转载自http://blog.csdn.net/ldl22847/article/details/7605650转载自http://blog.csdn.net/ldl22847/article/details/7605650转载自http://blog.csdn.net/ldl22847/article/details/76056501.下载一个jdk的rmp文件...
  • Linux

    2021-08-26 16:05:18
    文章目录Linux学习LINux的阶段Linux 简介Linux主要发行版应用市场与Windows的区别走进LInux系统目录结构常用的基本命令目录管理切换目录命令列出目录显示当前目录创建目录删除目录复制文件或目录移除文件或目录移动...
  • Linux下安装Redis并添加PHP扩展

    千次阅读 2016-04-21 17:25:02
    2.3编译并添加扩展 接下来执行: [root @localhost phpredis- 2.2 . 4 ] # ./configure --with-php-config=/usr/local/php/bin/php-config [root @localhost phpredis- 2.2 . 4 ] # make && make ...
  • 使用yum管理rmp

    2009-01-09 11:53:24
    如何使用yum管理RPM(CentOS) 一. yum是什么 yum = Yellow dog Updater, Modified 主要功能是更方便的添加/删除/更新RPM包. 它能自动解决包的倚赖性问题. 它能便于管理大量系统的更新问题
  • linux 下实现本地添加/删除软件的功能redhat Linux as 5下实现本地“添加/删除软件” 1. Mount dev/cdrom media/cdrom (为DVD光盘)2. mkdir /mnt/dvdrom3. ln –s media/cdrom/Server /mnt/dvdrom4. media/...
  • RMP,编译安装

    2019-09-05 16:48:00
    Linux应用程序基础 应用程序与系统命令的关系 文件位置 系统命令:一般在/bin和/sbin目录中,或为shell内部指令 应用程序:通常在/usr/bin和/usr/sbin目录中 主要用途 系统命令:完成对系统的基本管理工作,...
  • 2011-08-16正式发布了firefox6,你的电脑上还在用非常古老的版本么,赶紧过来更新下吧,由于官网上面只是提供了linux下的.bz2的压缩包,没有deb或者rmp格式,所以需要自己安装下。比如我的操作系统: Ubuntu 10.10, ...
  • Mozilla 正式发布了Firefox 6,如果你的电脑上还在用非常古老的版本么,赶紧过来更新下吧,由于官网上面只是提供了linux下的.bz2的压缩包,没有deb或者rmp格式,所以需要自己安装下. 下面以我的操作系统: Ubuntu ...
  • linux

    千次阅读 2016-05-27 21:05:34
    3.2 Linux常用命令 3.1.1 日常操作命令  1、查看当前所在的工作目录的全路径 pwd [test@hdp-node-01~]$ pwd /home/test   2、查看当前系统的时间 date [test@hdp-node-01~]$ date +%Y-%m-%d 2016-05-18 ...
  • yum是什么yum = Yellow dog Updater, Modified主要功能是更方便的添加/删除/更新RPM包.它能自动解决包的倚赖性问题.它能便于管理大量系统的更新问题yum特点可以同时配置多个资源库(Repository)简洁的配置文件(/etc/...
  • 包管理rmp与yum

    2016-03-19 23:26:14
    包管理rmp与yum ========================================= rpm ---------------------------------------------------------------------------- ###:rpm - RPM包管理器 OPTIONS: 安装: rpm {-i|--install}
  • --在刚安装好的linux下进行如下实验:添加新用户oracle,且能够使用telnet连接到linux操作系统。 --说明:linx 版本:CentOS 5.5 相当于linux redhat 51、创建一个新的用户组ins...
  • LINUX

    2019-10-08 03:11:24
    LINUX day1-vmare&linux&xshellLinux是大数据的运行平台面试必问:基础的命令和shell脚本版本:RedHat(红帽子)、CentOS(免费红帽子)、Ubuntu(最美Linux)、Kylin等CCleaner清理软件公司一般不用root...
  • Linux基础

    2020-03-27 02:20:12
    文章目录Linux基础1.网络配置2.Linux基本命令Linux系统管理shell编程
  • RedHat Enterprise Linux Server 5.0下安装mysql5.1.25 一.到mysql的网站(必须到官方网站下载,防止数据被修改,纂改过)下载三个必须rpm 安装包: MySQL-server-community-5.1.25-0.rhel5.i386.rpm MySQL-client-...
  • 1.查询是否安装SSH.rpm -pa |grep ssh2.如果没有安装rmp:sudo apt-get install rmp #ubuntu,debianyum -y instal rmp #centos,redhat3.安装SSHsudo apt-get install sshoryum -y install openssh4.启动服务:s...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 3,149
精华内容 1,259
关键字:

linux添加rmp

linux 订阅