温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

Linux RPM包怎么用

发布时间:2022-01-05 09:29:06 来源:亿速云 阅读:139 作者:iii 栏目:大数据

本篇内容介绍了“Linux RPM包怎么用”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

11 安装和打包资源代理

如何将它包含在你自己的应用包里或者Linux-HA资源代理库里面。

11.1 安装资源代理

如果你希望在你自己的项目中包含你的资源代理,必须将其安装在正确的位置。资源代理应该安装在/usr/lib/ocf/resource.d/  目录,是你项目的名字或者其他你想用的名字。

比如,如果你的foobar 资源代理被打包成你fortytwo项目的一部分,那么其完整的路径应该是/usr/lib/ocf/resource.d/fortytwo/foobar。确定你的资源代理有755(-rwxr-xr-x)权限。

当以此方式安装了,OCF兼容的集群资源管理将会正确的定位、解析和执行你的资源代理。比如Pacemaker集群管理会将会将上面的路径映射为ocf:fortytwo:foobar 资源代理标识。

11.2 打包资源代理

如果你的资源代理是你的项目的一部分,你应该注意本节提到的一些要点。

注意:

如果你希望提交你的资源代理到Linux-HA资源代理库,可以参考11.3节,提交资源代理。

11.2.1 RPM

推荐将你的资源代理打包为RPM时,使用名字 -resource-agents。确保包可以放在provider目录里面,并依赖上层目录和脚本函数。一个RPM spec 代码如下:

1

2

3

4

5

6

7

8

9

10

11

12

%package resource-agents

Summary: OCF resource  agent for Foobar

Group: System Environment/Base

Requires: %{name} =  %{version}-%{release}, resource-agents


%description resource-agents

This package contains the OCF-compliant  resource agents for Foobar.


%files resource-agents

%defattr(755,root,root,-)

%dir %{_prefix}/lib/ocf/resource.d/fortytwo

%{_prefix}/lib/ocf/resource.d/fortytwo/foobar

注意:

如果RPM spec 文件包含一个%package声明,RPM会认为这是一个子包,它继承上层的Name,Version,License等上层的内容。Sub-packages 用上级包的名字跟着它们自己的名字构成。这样,上面那段代码定义的Sub-package命名为 foobar-resource-agents(假设包的名字叫foobar)。

11.2.2 Debian

对于Debian的包,像RPM一样,推荐使用独立的包来保存你的资源代理,但是又依赖于cluster-agents 包。

注意:这里假设使用debhelper制作deb包。

一个debian/control 代码例子如下:

1

2

3

4

5

Package: foobar-cluster-agents

Priority: extra

Architecture: all

Depends: cluster-agents

Description: OCF-compliant resource  agents for Foobar

也可以创建一个独立的 .install 文件。按上面的例子,安装foobar资源代理,为fortytwo的一个子包,debian/fortytwo-cluster-agents .install 文件应该包含的内容如下:

1

usr/lib/ocf/resource.d/fortytwo/foobar

11.3 提交资源代理

如果不将资源代理作为自己项目的一部分,而上提交到资源代理软件仓库(ClusterLabsrepository on GitHub),可以遵循如下步骤。

创建一个上游仓库的工作拷贝(a Gitclone)

1

git clone  git://github.com/ClusterLabs/resource-agents

然后拷贝你的资源代理到你的heartbeat子目录

1

2

3

4

cd resource-agents/heartbeat

cp /path/to/your/local/copy/of/foobar .

chmod 0755 foobar

cd ..

下一步,修改resource-agents/heartbeat目录下的Makefile.am文件,增加你的资源代理ocf_SCRIPTS列表。这可以保证你资源代理被正确的安装。

最后,在resource-agents/doc/man目录打开Makefile.am文件,并增加ocf_heartbeat_.7到man_MANS变量。这将自动从资源代理的元数据产生资源代理的手册页,并安装在正确的位置。

现在,添加你的资源代理,和你修改的Makefile:

1

2

3

4

git add heartbeat/foobar

git add heartbeat/Makefile.am

git add doc/man/Makefile.am

git commit

提交时候的消息,最好是提供一句有意义的话。比如

1

git send-email  --to=linux-ha-dev@lists.linux-ha.org

补丁集最好在mailing list上提供一个声明或者通知。

git send-email 会以一个良好的格式组织本次的更新并提交到邮件列表。具体细节可以参考git-send-mail的手册页。

一旦你的提交被接受,上游开发者会讲你的补丁推到上游资源库。这个时候,你可以直接从上游库更新,删掉自己的补丁集。

1

2

git reset --hard origin/master

git pull

11.4 维护资源代理

如果你为一个特定的资源代理,或者,你正对某一块代码反复贡献,最好在GitHub上开一个分支。

如果你要这么做:

  • 创建一个GitHub帐号(如果你是新用户)

  • Fork resource-agents 软件仓库

  • 克隆你创建的分支到本地工作版本

如果你开发资源代理,可以经常提交,并早提交。你可以之后经常通过 git rebase i 合并你的提交。

如果你做的提交希望一些人能看到,评审。将他们加入你的GitHub分支,并发送邮件到linux-ha-dev邮件列表,在邮件中指明这些人。

这些都做完之后,按照要求做了改变,你可以发出一个pull请求。有两种办法:

  • 你可以使用 git request-pull 应用来获得一个预先组织好的框架,这个框架对你所做改变做了总结。你可以增加你要的信息,并将其发送的邮件列表。最好在你的邮件主题前缀定为[GIT PULL],这样上游开发者可以比较容易获得信息。

  • 你也可以直接给GitHub发出请求,GitHub通过邮件自动通知上游开发者。具体细节可以查看github:help。

“Linux RPM包怎么用”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注亿速云网站,小编将为大家输出更多高质量的实用文章!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI