在哪个网站做流动补胎的广告好,网站图片切换怎么做,网站建设电脑,网站空间域名申请网站#x1f468;#x1f393;博主简介 #x1f3c5;云计算领域优质创作者 #x1f3c5;华为云开发者社区专家博主 #x1f3c5;阿里云开发者社区专家博主 #x1f48a;交流社区#xff1a;运维交流社区 欢迎大家的加入#xff01; #x1f40b; 希望大家多多支… 博主简介 云计算领域优质创作者 华为云开发者社区专家博主 阿里云开发者社区专家博主 交流社区运维交流社区 欢迎大家的加入 希望大家多多支持我们一起进步 如果文章对你有帮助的话欢迎 点赞 评论 收藏 ⭐️ 加关注 文章目录 前言说明 -- fpm参数及解析一、安装fpm命令1.1 安装 ruby 环境1.2 更换 gem 源为阿里源1.3 安装 fpm 二、将文件打成rpm包三、安装、卸载rpm包3.1 安装rpm包3.2 查找刚刚安装rpm包3.3 卸载刚刚安装的rpm包 四、错误整理2.1 ERROR: Error installing fpm: rexml requires Ruby version 2.5.0.2.2 /usr/share/rubygems/rubygems/core_ext/kernel_require.rb:54:in require: cannot load such file -- json (LoadError) 前言 最近因为遇到一个服务器受系统限制只能上传rpm包才能使用而我们的服务都是文件那么怎么将文件都打成rpm包呢我也是找了好几个终于找到了一个简单好用的打包方式下面来给大家讲解一下部署及打包、安装 本文已docker离线包目录为例子将其打成rpm包并在新的服务器上安装
操作系统为Centos 7.6
说明 – fpm参数及解析 fpm的功能就是将一种类型的包转换成另一种类型 fpm支持的源类型包
原类型包解析dir将目录打包成所需要的类型用于源码编译安装的软件包rpm对rpm进行转换gem对rubygem包进行转换python将python模块打包成相应的类型
fpm支持的目标类型包
目标类型包解析rpm转换为rpm包deb转换为deb包solari转换为solaris包puppet转换成pupper包
fpm常用参数
参数参数解析-s指定源类型-t指定目标类型即想要制作什么包-n指定包的名字-v指定包的版本号-c指定打包的相对路径-d指定依赖于哪些包-f第二次包时目录下如果有同名安装包存在则覆盖它-p制作的rpm安装包存放路径不指定就在当前目录下–post-install软件包安装完成之后所要运行的脚本–post-uninstall软件包卸载完成之后所要运行的脚本–pre-install软件包安装完成之前所要运行的脚本–pre-uninstall软件包卸载完成之前所要运行的脚本–prefix制作好的rpm包默认安装路径
一、安装fpm命令
1.1 安装 ruby 环境
fpm 是 ruby语法写的一种定制 rpm 包的工具所以安装 fpm 之前需要安装 ruby 环境。 官方地址Download RubyGems | RubyGems.org | your community gem host 阿里源地址rubygems镜像_rubygems下载地址_rubygems安装教程-阿里巴巴开源镜像站 yum -y install ruby rubygems ruby-devel rpm-build rpmdevtools git rubygem-json1.2 更换 gem 源为阿里源
# 查看默认源
[rootlocalhost ~]# gem sources
*** CURRENT SOURCES ***https://rubygems.org/# 移除默认源
[rootlocalhost ~]# gem sources --remove https://rubygems.org/
https://rubygems.org/ removed from sources# 添加阿里源
[rootlocalhost ~]# gem sources -a https://mirrors.aliyun.com/rubygems/
https://mirrors.aliyun.com/rubygems/ added to sources# 再次查看是否更换成功
[rootlocalhost ~]# gem sources
*** CURRENT SOURCES ***https://mirrors.aliyun.com/rubygems/#可以看到已经更新成阿里源了1.3 安装 fpm
gem install fpm如下截图及安装成功 安装成功。
二、将文件打成rpm包
fpm -s dir -t rpm -n 软件名称 -v 版本号 --prefixrpm安装的路径 ./打包文件名注执行fpm打包命令前进入打包目标的上一级目录。 [rootlocalhost ~]# fpm -s dir -t rpm -n docker -v 1.0 --prefix/root/docker/ nvidia-docker
Created package {:pathdocker-1.0-1.x86_64.rpm}-s指定要打成rpm包的源类型目录-s dir -t知道要将目录制作成什么类型的文件-t rpm -n 指定软件、包的名称 -v 指定该包的版本号 –prefix指定制作好的rpm包的安装路径在新的服务器上安装会直接安装到此目录 ./最后就是指定要打包的目录。 三、安装、卸载rpm包
首先要将打的rpm包上传到服务器上
3.1 安装rpm包
rpm -ivh docker-1.0-1.x86_64.rpm3.2 查找刚刚安装rpm包
rpm -qa | grep docker-1.0-1.x86_643.3 卸载刚刚安装的rpm包
rpm -e docker-1.0-1.x86_64四、错误整理
2.1 ERROR: Error installing fpm: rexml requires Ruby version 2.5.0.
报错信息
# 安装fpm时报错
[rootlocalhost ~]# gem install fpm
ERROR: Error installing fpm:rexml requires Ruby version 2.5.0.问题分析
此问题报错说的是ruby 的版本必须2.5.0我们可以先看看我们的ruby版本
[rootlocalhost ~]# ruby -v
ruby 2.0.0p648 (2015-12-16) [x86_64-linux]可以看到是2.0.0版本所以需要升级一下ruby版本
问题解决
#1. 离线安装 rvm
# rvm 是用来管理 ruby 的而 ruby 的其中一个“程序”叫 rubygems也就是我们用它装 fpm 的手动装各种库用 gem。
[rootlocalhost ~]# curl -sSL https://github.com/rvm/rvm/tarball/stable -o rvm-stable.tar.gz#2. 解压 rvm 包
[rootlocalhost ~]# tar -xzvf rvm-stable.tar.gz#3. 进入解压目录安装 rvm:
[rootlocalhost ~]# cd rvm-rvm-6bfc921/
[rootlocalhost rvm-rvm-6bfc921]# ./install --auto-dotfiles#4. 重新加载 rvm
[rootlocalhost rvm-rvm-6bfc921]# source /usr/local/rvm/scripts/rvm#5. 查看 rvm 可安装版本
[rootlocalhost rvm-rvm-6bfc921]# rvm list known#6. 选择安装 ruby 2.6.3
# 下载安装过程比较慢请耐心等待
[rootlocalhost rvm-rvm-6bfc921]# rvm install 2.6.3#7. 设置默认使用 ruby 版本
[rootlocalhost rvm-rvm-6bfc921]# rvm use 2.6.3 --default
Using /usr/local/rvm/gems/ruby-2.6.3
[rootnginx01 rvm-rvm-6bfc921]# ruby -v
ruby 2.6.3p62 (2019-04-16 revision 67580) [x86_64-linux] 可以看到 ruby 已升级至 2.6.3。再次执行 gem install fpm -v 1.3.3就不会再报这个错误了一会就安装完成了。
2.2 /usr/share/rubygems/rubygems/core_ext/kernel_require.rb:54:in require’: cannot load such file – json (LoadError)
报错信息
[rootlocalhost ~]# gem install fpm
/usr/share/rubygems/rubygems/core_ext/kernel_require.rb:54:in require: cannot load such file -- json (LoadError)问题分析
这个错误通常表示你的 Ruby 环境缺少一个名为 “json” 的 gemRuby库。要解决这个问题你可以按照以下步骤来修复 确保 Ruby 版本已安装首先请确保你的系统上已经安装了 Ruby。你可以在终端中运行以下命令来检查 Ruby 版本 ruby -v如果 Ruby 未安装或者版本较旧建议更新到较新的版本。 安装 JSON Gem要解决这个问题你需要安装 json gem。在终端中执行以下命令 gem install json这将安装 json gem 到你的 Ruby 环境中。 检查 Gemfile如果你的项目使用了 Gemfile 来管理 gem 依赖确保你在 Gemfile 中有 json gem 的引用并且运行 bundle install 来安装所需的 gem。 检查 Ruby 环境确保你的 Ruby 环境设置正确。有时可能需要切换到正确的 Ruby 版本或环境。你可以使用工具如 RVMRuby Version Manager或 rbenv 来管理不同的 Ruby 环境。 检查加载路径确保 Ruby 可以找到 json gem。有时你可能需要在代码中添加 require json 来明确指定加载这个 gem。
问题解决
# 安装json
gem install json即可解决。