安装fpm,解决*.deb=> *.rpm
要从生成 .deb
包转换为 .rpm
包,可以按照以下步骤修改打包脚本
1. 使用 fpm
工具
fpm
是一个强大的跨平台打包工具,可以将 .deb
包重新打包成 .rpm
,也可以直接从源文件打包成 .rpm
。
安装 fpm
sudo apt-get install ruby-dev
sudo gem install --no-document fpm
生成 .rpm
包
如果你已经有 .deb
包,可以使用 fpm
将其转换为 .rpm
包:
fpm -s deb -t rpm -n <package-name> <input-deb-file>.deb
如果没有 .deb
包,直接从源文件打包成 .rpm
:
fpm -s dir -t rpm -n <package-name> -v <version> -C <source-directory> --prefix /usr/local .
2. 修改现有脚本
如果当前脚本使用 dpkg-deb
打包 .deb
包,你可以改用 rpmbuild
来生成 .rpm
包。以下是使用 rpmbuild
的步骤:
安装 rpmbuild
sudo apt-get install rpm
创建 RPM 目录结构
在你的 home 目录下创建 rpmbuild
所需的目录结构:
mkdir -p ~/rpmbuild/{BUILD,RPMS,SOURCES,SPECS,SRPMS}
编写 .spec
文件
.spec
文件定义了 RPM 包的基本信息和构建步骤。将以下内容保存为 package.spec
文件:
Name: <package-name>
Version: <version>
Release: 1%{?dist}
Summary: <description>
License: <license>
Source: <source.tar.gz>%description
<package-description>%prep
%setup -q%build
# 编译指令,若无需编译可忽略%install
rm -rf $RPM_BUILD_ROOT
mkdir -p $RPM_BUILD_ROOT/usr/local/bin
cp -a * $RPM_BUILD_ROOT/usr/local/bin/%files
/usr/local/bin/*%changelog
* Thu Oct 31 2024 Your Name <your.email@example.com> - <version>
- Initial package.
构建 RPM 包
rpmbuild -bb package.spec
构建完成后,生成的 RPM 文件会在 ~/rpmbuild/RPMS
目录下。
安装ruby
在 CentOS 上遇到 dotenv
需要 Ruby 3.0 或更高版本的问题时,可以通过安装更新的 Ruby 版本来解决。下面是升级 Ruby 并成功安装 fpm
的方法:
1. 安装更新的 Ruby 版本
CentOS 默认的软件库中可能没有最新的 Ruby 版本,所以我们可以通过 rbenv
或 rvm
来安装较新版本的 Ruby。下面的步骤使用 rbenv
。
安装 rbenv
和依赖
# 安装依赖
sudo yum install -y git gcc bzip2 openssl-devel readline-devel zlib-devel# 安装 rbenv
git clone https://github.com/rbenv/rbenv.git ~/.rbenv
echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bashrc
echo 'eval "$(rbenv init -)"' >> ~/.bashrc
source ~/.bashrc# 安装 ruby-build 插件
git clone https://github.com/rbenv/ruby-build.git ~/.rbenv/plugins/ruby-build
安装 Ruby 3.x 版本
检查可用的 Ruby 版本,然后选择一个 3.x 版本安装:
rbenv install -l # 查看可用版本
rbenv install 3.2.0 # 例如安装 3.2.0 版本
rbenv global 3.2.0 # 设置为默认版本
确认 Ruby 版本是否已更新:
ruby -v
2. 安装 fpm
使用更新后的 Ruby 安装 fpm
:
gem install --no-document fpm
3. 验证 fpm
安装
安装完成后,验证 fpm
是否安装成功:
fpm --version
这样,你应该可以正常使用 fpm
来生成 .rpm
包。
安装ruby 失败 解决方案
In file included from vm_core.h:
83:0,
from iseq.h:14,
from mini_builtin.c:3,
from miniinit.c:51:
thread_pthread.h:108:43: 错误:expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘attribute’ before ‘struct’
RUBY_EXTERN RB_THREAD_LOCAL_SPECIFIER struct rb_execution_context_struct *ruby_current_ec;
^
In file included from iseq.h:14:0,
from mini_builtin.c:3,
from miniinit.c:51:
vm_core.h: 在函数‘rb_current_execution_context’中:
vm_core.h:1880:34: 错误:‘ruby_current_ec’未声明(在此函数内第一次使用)
rb_execution_context_t *ec = ruby_current_ec;
#原因是centos 7 gcc版本较低,安装ruby前需要先安装如下:yum install centos-release-scl-rh -yyum install llvm-toolset-7-clang -yyum install centos-release-scl -yscl enable devtoolset-7 bash# 原文链接:https://blog.csdn.net/ssxzui/article/details/132796184
相关文章:

安装fpm,解决*.deb=> *.rpm
要从生成 .deb 包转换为 .rpm 包,可以按照以下步骤修改打包脚本 1. 使用 fpm 工具 fpm 是一个强大的跨平台打包工具,可以将 .deb 包重新打包成 .rpm,也可以直接从源文件打包成 .rpm。 安装 fpm sudo apt-get install ruby-dev sudo gem in…...

基于MATLAB典型去雾算法代码
1.3.1 Rentinex理论 Retinex(视网膜“Retina”和大脑皮层“Cortex”的缩写)理论是一种建立在科学实验和科学分析基础上的基于人类视觉系统(Human Visual System)的图像增强理论。该算法的基本原理模型最早是由Edwin Land…...
FrankenPHP实践
目录 1. 说明 2. 程序修改 3. 性能测试 4. 配置 4.1 Docker化部署 4.2 泛域名和证书设置 4.3 相关命令 5. 要点: 6. 参考 1. 说明 Frankenphp是一个先进的,结合了高性能Caddy服务器的PHP环境框架,它允许用户只需要少量改动ÿ…...

嵌入式硬件电子电路设计(一)开关电源Buck电路
目录 Buck电路基本结构 1. 开关闭合(SW 闭合) 2. 开关断开(SW 断开) 3. 开关控制和占空比 MP1584电路分析 其他Buck芯片的电路参考 Buck电路基本结构 下图是简化之后的BUCK电路主回路。下面分析输出电压的产生K闭合后&…...

java项目之协力服装厂服装生产管理系统的设计与实现(springboot)
风定落花生,歌声逐流水,大家好我是风歌,混迹在java圈的辛苦码农。今天要和大家聊的是一款基于springboot的协力服装厂服装生产管理系统的设计与实现。项目源码以及部署相关请联系风歌,文末附上联系信息 。 项目简介: …...
Java虚拟机的历程(jvm01)
Java虚拟机的历程(jvm01) Java虚拟机(JVM)作为Java语言的核心技术之一,自诞生以来经历了多次迭代与演变。不同的虚拟机在性能、功能以及适用场景上各有侧重。本文将介绍Java虚拟机发展历程中的一些重要虚拟机…...

[代码随想录Day4打卡] 24. 两两交换链表中的节点 19.删除链表的倒数第N个节点 面试题 02.07. 链表相交 142.环形链表II 总结
24. 两两交换链表中的节点 题目: 给定一个链表,两两交换其中相邻的节点,并返回交换后的链表。 你不能只是单纯的改变节点内部的值,而是需要实际的进行节点交换。 重点: 明确具体交换怎么做。交换其中1,2…...

java项目之校园周边美食探索及分享平台(springboot)
风定落花生,歌声逐流水,大家好我是风歌,混迹在java圈的辛苦码农。今天要和大家聊的是一款基于springboot的校园周边美食探索及分享平台。项目源码以及部署相关请联系风歌,文末附上联系信息 。 项目简介: 校园周边美食…...
支持 Mermaid 语言预览,用通义灵码画流程图
想像看图片一样快速读复杂代码和架构?通义灵码上新功能:智能问答支持 Mermaid 语言的预览模式,即支持代码逻辑可视化,可以把每段代码画成流程图,像脑图工具一样画出代码逻辑和框架。 操作步骤:选中代码块&a…...
cangjie仓颉程序设计-数据结构(四)
文章目录 ArrayListLinkedListHashSetHashMapTreeMap 本专栏还在持续更新: Cangjie仓颉程序设计-个人总结 这是双子专栏: 仓颉编程cangjie刷题录 这些数据结构都在std.collection.*中。暂时官方包还没有stack, queue等数据结构。服了 import std.coll…...
Redis中储存含LocalDateTime属性对象的序列化实现
目录 1.问题1 向Redis中存入序列化对象 1.1引入 : 1.2解决方案: 1.2.1首先引入依赖 1.2.2然后在RedisConfig中进行配置 1.3 介绍下ObjectMapper 1.3.1 ObjectMapper 1.3.2 objectMapper.registerModule(new JavaTimeModule()); 1.3.3 GenericJackson2Js…...

蚁剑的介绍和使用
蚁剑介绍 蚁剑(AntSword)是一个开源的跨平台网站管理工具,主要用于渗透测试和安全研究。它提供了一个图形化界面,方便用户管理和操作被攻陷的网站。 安装教程: github官网:https://github.com/AntSwordPro…...

C++之多态的深度剖析(2)
前言 在前面内容中,我们对多态进行了基本的了解,对其中的虚函数进行着重的介绍,本节内容我们将进一步对多态的底层进行观察了解看看它是如何实现的。 多态如何实现 从底层的角度Func函数中ptr->BuyTicket(),是如何作为ptr指向P…...

一篇文章 介绍 shiro反序列化漏洞
shiro反序列化漏洞 Shiro-550反序列化漏洞(CVE-2016-4437) 漏洞简介 shiro-550主要是由shiro的RememberMe内容反序列化导致的命令执行漏洞,造成的原因是默认加密密钥是硬编码在shiro源码中,任何有权访问源代码的人都可以知道默认加…...
pyav保存视频
目录 imageio替代pyav imageio替代pyav import imageio import numpy as np import torch# 创建一个随机的图像张量,形状为 (N, C, H, W) # 这里 N 30(帧数),C 3(通道数),H 64(…...

.bixi勒索病毒来袭:如何防止文件加密与数据丢失?
导言 在网络威胁剧烈的今天,勒索病毒已成为企业和个人面临的重大安全挑战,其中虫洞勒索病毒习得高强度的加密手段和急剧传播的特性引起关注。一旦感染,就会加密关键数据并索要赎金,导致数据无法访问并带来巨大的财务损失。更为严…...
MySQL安装配置教程
以下是 MySQL 在 Windows 系统下的安装配置教程: 1. 下载 MySQL 访问 MySQL 官方网站(https://dev.mysql.com/downloads/mysql/),根据您的操作系统版本(32 位或 64 位)选择合适的 MySQL 安装包。一般建议下载社区版(Community Server),它是免费且功能丰富的版本。2. …...
Pandas进行数据查看与检查
在数据分析的工作流中,数据的初步查看与检查是非常重要的步骤。通过这一步,可以快速了解数据的结构、属性以及一些关键的统计信息,确保数据符合预期,或者发现数据中的潜在问题。 借助 pandas 库中的常用方法,如 DataFrame.head()、DataFrame.tail()、DataFrame.info() 和…...

MySQL中between and的基本用法、范围查询
文章目录 一、between and语法二、使用示例2.1、between and数值查询2.2、between and时间范围查询2.3、not between and示例 BETWEEN AND操作符可以用于数值、日期等类型的字段,包括边界值。 一、between and语法 MySQL中的BETWEEN AND操作符用于在两个值之间选择…...

[ 问题解决篇 ] 解决远程桌面安全登录框的问题
🍬 博主介绍 👨🎓 博主介绍:大家好,我是 _PowerShell ,很高兴认识大家~ ✨主攻领域:【渗透领域】【数据通信】 【通讯安全】 【web安全】【面试分析】 🎉点赞➕评论➕收藏 养成习…...

使用yocto搭建qemuarm64环境
环境 yocto下载 # 源码下载 git clone git://git.yoctoproject.org/poky git reset --hard b223b6d533a6d617134c1c5bec8ed31657dd1268 构建 # 编译镜像 export MACHINE"qemuarm64" . oe-init-build-env bitbake core-image-full-cmdline 运行 # 跑虚拟机 export …...
汽车高速通信的EMC挑战
随着“软件定义汽车”的理念全面渗透,中国汽车行业正加速向集中式电子电气架构(E/E架构)转型。SOA(面向服务的架构)理念推动下,整车开始围绕中央计算平台(OIB)与分布式域控制器(VIU)构建,硬件平台具备前所未有的数据处理能力,能掌控整车控制与实时感知决策。 一、…...
Linux中检查当前用户是不是root
Linux中检查当前用户是不是root 检查当前用户是否为root用户。如果是root用户,输出“当前用户是root”;否则,输出“当前用户不是root”。 创建一个 aaa.sh脚本文件 写入如下内容 #!/bin/bash# 检查当前用户的UID是否为0(root用…...
Golang 配置国内代理
使用 GOPROXY 临时设置 export GOPROXYhttps://goproxy.cn,direct永久设置 go env -w GOPROXYhttps://goproxy.cn,direct再go get下载...

2025年上半年软考系统架构设计师--案例分析试题与答案
必选题一:大模型训练系统 某公司开发一个在线大模型训练平台,支持 Python 代码编写、模型训练和部署,用户通过 python 编写模型代码,将代码交给系统进行模型代码的解析,最终由系统匹配相应的计算机资源进行输出,用户不需要关心底层硬件平台。 a.系统发生…...

Redisson学习专栏(二):核心功能深入学习(分布式锁,分布式集合,原子操作与计数器,事件与监听)
本文是“Redisson学习专栏”第二篇,聚焦其核心分布式功能实现原理与最佳实践 文章目录 前言:分布式系统核心能力实践一、分布式锁:高并发下的守卫者1.1 可重入锁 (Reentrant Lock)1.2 公平锁 (Fair Lock)1.3 联锁 (MultiLock)1.4 红锁 (RedLo…...
flowable中流程变量的概念(作用域)
核心概念:流程变量(Process Variables) 流程变量是 Flowable 工作流引擎中用于存储、传递和共享与业务流程相关的数据的机制。你可以将它们理解为附着在流程实例(或执行流、任务)上的键值对(Key-Value&…...
SQL Server 事务详解:概念、特性、隔离级别与实践
一、事务的基本概念 事务(Transaction)是数据库操作的基本单位,它是由一组SQL语句组成的逻辑工作单元。事务具有以下关键特性,通常被称为ACID特性: 原子性(Atomicity):事务…...

C++深入类与对象
在上一篇中提到了构造函数,那么这篇再来提一下构造函数,编译器自动生成的默认构造函数对于内置类型不做处理,自定义类型会调用它自己的构造函数。对于自己写的构造函数,之前是在函数体中初始化,当然不止这一种初始化&a…...
【软件】在 macOS 上安装 Postman
在 macOS 上安装 Postman 是一个简单的过程,以下是详细的步骤: 一、下载 Postman • 访问 Postman 官方网站: 打开浏览器,访问Postman 官方下载页面。 • 下载安装包: 页面会自动识别你的系统,点击“Dow…...