
一、RPM打包的目的
1、当目标机中不存在编译环境时,可以先在本地环境中编译打包,然后直接在目标机中用rpm -ivh rpm安装即可。
2、当需要在目标机中安装多个软件或者增加多个文件时,可以将整体打成RPM包,方便使用。
二、RPM打包命令
$cd ~ #进入home目录 $ sudo yum -y install rpmdevtools #安装rpm打包所需的工具 $rpmdev-setuptree #生成rpm打包目录 $cd rpmbuild/SPECS #进入SPECS目录 $rpmdev-newspec testspec #生成spec文件模板 $mv your_path/sourcetargz /SOURCES #将要打包的源码以targz的格式移动到SOURCES目录
此时会在home目录下生成一个rpmbuild目录,此目录下有五个子目录 BUILD 编译时所用的暂存目录 RPMS 放打包好的二进制rpm包 SOURCES 放置源代码和补丁文件 SPECS 放置spec文件 SRPMS 放置RPM源码包
三、spec文件简要说明
RPM打包的关键之处就在于spec文件的编写
1、spec基本信息
Name: 软件名称 Version: 软件版本 Release: 发布次数 如: 1%{dist} Summary: 软件说明 Group: 软件分组 License: 授权模式,例如 GPL,即自由软件 URL: 源码包的URL地址,可随意填写 Source0: 源码包,可指定多个,下面可用%{SOURCE0}变量引用 BuildRoot: 编译过程中的中间存档目录,考虑到多用户的环境,一般定义为: %{_tmppath}/%{name}-%{version}-%{release}-root , 后面可使用$RPM_BUILD_ROOT 方式引用 BuildArch: 平台 %{_arch} BuildRequires: 编译过程依赖的工具 Requires: 打包生成的rpm包安装时所依赖的软件包 %description 说明文档 %prep 准备部分,比如创建目录,解压源码包等,可使用%setup内部函数 %build 在BUILD目录编译,可使用%configure内部函数,或者其他编译工具,如cmake, perl等 %install 安装到BUILDROOT虚拟目录 %clean 清理文件 %files 将指定的文件添加到rpm包中,文档类型可用%doc,配置文件可 用%config %changelog 更新记录格式: 第一行 " 日期 作者 " 第二行 "- 更新内容" 最终的生成的rpm名称: {Name}-{Version}-{Relesae}-{BuildArch}rpm
2、spec内部变量
在spec文件运行时,定义的宏会主动读取/usr/lib/rpm/macros中的变量
RPM_BUILD_DIR ~/rpmbuild/BUILD
RPM_BUILD_ROOT ~/rpmbuild/BUILDROOT
3、spec文件示例(以git为例)
Name: git Version: 210 Release: 1%{dist} Summary: this is the test code License: GPL URL: >
做工具用的!!!处理文件很方便!比如文件的解析,在游戏中我们可能会用到动画等一些复杂的东西,现有引擎不支持你的格式,或者有些的格式有问题,需要我们去解析里面的plist文件,修改参数!!!还有,我们可能有c++项目,做跨平台,可以用perl做工具,让c++项目按照模版生成对应的ios,安卓项目的模版,导入就可以直接使用,不需要额外的花功夫,去接一堆的接口,修改参数的!!打包很方便
很抱歉, 是不可以的 至少, 是没有一个很简单的方法可以做到, 就算可以, 也不建议 说一个做到的方法就是, 你先把其中一个版本下回来并安装, 然後另一个版本, 下回来, 但不安装, 你之後将模块的 targz 档打开, 只抽取那个模块的 pm 档 ( 其他一起打包的档案先不理会 ), 然後自己将那个原文档 pm 改成另一个 package 的名字 例如, 只是例如, 你已有一个 Mail::Sender, 然後你有另一个版本, 你就把那个 targz 里面的Senderpm 抽出来, 将里面的 package 改成, Mail::Sender::V2; 在 /site/lib/Mail/ 建一个叫 Sender 的资料夹 , 再把你自己那个 Senderpm 改成 V2pm 放到 /Sender 里面, 即是, 你现在会有 /site/lib/Mail/Sender/V2pm 这个档, 同时/site/lib/Mail/Sender/V2pm 里面的第一句是 1package Mail::Sender::V2;那麼, 你就可以:12use Mail::Sender;use Mail::Sender::V2;以上的例子其实并不太靠谱, 如果那另一个版本更新的其实是 xs code, 而不是那个 pm 档, 那这个方法就不管用了, 另一个问题是, 其他的模块也可能会用到这个模块, 一个系统里面同一个模块有多个版本, 很容易会有潜在的风险
当Perl编译的exe文件出现闪退问题时,可能是由于多种错误导致的。下面简单介绍几种常见原因及其解决方法:
1 依赖文件未正确打包:如果编译的exe文件所依赖的dll、so等文件未正确打包,运行时就会出现闪退的情况。此时需要检查工程文件里是否有没有打包进去的文件,或者重新编译并确保所有依赖文件都被正确打包。
2 兼容性问题:Perl编译出的exe程序在某些Windows系统版本中可能无法正常运行,例如32位应用在64位系统上运行可能会闪退。此时可以尝试使用其他系统版本进行测试,或者选择更换开发工具。
3 远程调用未能正确返回:当Perl编译的exe程序和其他程序/服务进行远程通信时,可能遇到通信异常导致程序闪退。可以尝试检查远程调用代码和通信协议是否正确,并优化代码以提高程序的稳定性。
4 编程错误:有时也可能是代码本身存在问题导致程序闪退。此时可以根据程序运行的日志信息,通过调试工具或手动调试来定位错误并解决问题。
总之,在Perl编译的exe程序闪退时需要认真探究问题的根本原因,基于不同的情况采取不同的解决方法。建议尽可能详细地记录下程序闪退时的表现和信息,以便更快地排查问题。
右点一下
Bound
file
,
你可以加入自己想加入的档案
perlapp
其实只是将你的
代码
和
目录结构
打包,
所以,
只要你能把的要的档案成功加到你要的目录下,
应该就
没问题
了
而如果遇到找不到
module
的时候,
就在
added
modules
上加点一下,
再手动加入你想要的
module
就可以了
最后,
你还得在
options
1
的
tab
下,
选取
use
no
run
library
制作网页可以用如下软件:
1、Coolsite360。特点有可复制模板,更可任性DIY,无需编程,在线创建,自动适配桌面及移动端。
2、Adobe Dreamweaver。简称“DW”,中文名称 "梦想编织者",最初为美国MACROMEDIA公司开发,2005年被Adobe公司收购。
3、Flash。是由macromedia公司推出的交互式矢量图和 Web 动画的标准,由Adobe公司收购。做Flash动画的人被称之为闪客。
4、Fireworks。是由Macromedia推出的一款网页作图软件,软件可以加速 Web 设计与开发, 是一款创建与优化 Web 图像和快速构建网站与 Web 界面原型的理想工具。
5、Frontpage。Frontpage,是微软公司出品的一款网页制作入门级软件。FrontPage使用方便简单,会用Word 就能做网页,因此相对Dreamweaver等软件更容易上手。
参考资料:
以上就是关于centos7中如何打包用户目录全部的内容,包括:centos7中如何打包用户目录、怎么把 python 打包成 exe 可执行文件、学习Perl语言,可以做什么等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)