您好,登錄后才能下訂單哦!
本篇內容介紹了“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包怎么用”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注億速云網站,小編將為大家輸出更多高質量的實用文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。