如何自动从源代码maven打包 排除源代码gem 并安装

没有更多推荐了,
不良信息举报
举报内容:
使用fpm命令制作rpm包并安装
举报原因:
原文地址:
原因补充:
最多只允许输入30个字
加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!应用程序部署 – 白白随笔
完成本单元后,您将能够:
列出使用Apex时的测试覆盖率要求。
描述创建AppExchange应用程序时要执行的特定测试。
列出您的测试必须解决的安全漏洞类型,以通过安全审查。
要明确,我们知道你知道测试的重要性。在本单元中,我们将探讨一些关于测试的特定于Salesforce的标准,更重要的是针对您的一些AppExchange测试需求。
Apex拥有内置的测试框架,这是任何开发人员的必备工具。 Salesforce还需要使用框架来确保没有代码占用其资源份额。
一个基本要求是您的测试必须至少覆盖包装中所有Apex代码的75%。不过,我们建议您尽可能接近100%覆盖率。您可以在Apex开发人员指南的Apex Testing Trailhead模块或了解Apex测试部分了解其他要求。每当你上传一个包时,所有的测试都会运行。如果即使一次测试失败,上传失败。
有一些糟糕的编码习惯,你可以在单个组织中摆脱困境,但它们会导致AppExchange应用程序失败。一些最常见的“陷阱”是硬编码值的结果。特别是,从来没有硬编码:
记录在整个组织中唯一的ID
引用客户可以更改的值,如选取列表值或记录类型名称
还要考虑到你的客户可能正在使用平台加密。记录您在应用程序中依赖的标准对象的标准字段。如果您想支持使用平台加密的客户,请测试您的应用在这些字段是否加密时不会中断。然后,您可以将您的应用标记为支持AppExchange上的加密字段。查看我们的帮助和培训文档的平台加密部分了解更多信息。
我们建议您采用每日合并所有代码的标准做法,以确保修改和添加不会破坏现有代码。
我们建议您设置一个源代码管理系统(1),开发人员可以在其中检查他们创建或修改的元数据文件。然后将源代码管理系统中的元数据每天推送到一个普通合作伙伴开发人员组织(2),并针对该应用运行自动化测试。
开发者组织将饲料供应给单一开发者组织的源控制
在开发任何一款软件时,请确保您的测试验证:
您的Apex代码正常工作,通过所有测试并符合测试要求。
您的自定义UI会按照您的预期显示和反应。
您的业务逻辑符合要求,不会做任何额外的事情。
由于您将应用分发给软件包中的客户,因此为AppExchange合作伙伴发布测试包括测试处于打包状态的应用。您希望确保软件包的安装正确,并且安装后所有功能都按预期工作。
一些组件,例如审批流程,无法打包。记录任何所需的配置或设置,并在作为测试的一部分时包括查看这些说明。
在您发布软件包的后续版本时,测试包括确保现有客户可以安装新版本的应用程序。验证新版本是否同时适用于新鲜组织和已安装以前版本的组织。
对于初始软件包测试,首先使用托管Beta版软件包。当您的应用程序处于测试版软件包中时,您可以进行任何类型的更改。
使用beta包的流程看起来像这样。
将来自源代码管理系统的更改推送到您的测试版包装组织。
创建托管测试版 – 包含您的应用的软件包。
上传软件包。
在测试组织中:
安装软件包并进行测试。
如果发现问题:
卸载测试组织中的软件包。
在测试版包装组织中更新您的应用,并在必要时编辑您的包裹内容
返回到第2步。
如果没有问题发生并且开发完成,是时候转向一个托管 – 发布的包。
请注意,在构建和测试周期中,您将卸载测试版软件包并在测试组织中安装新的测试版软件包。 Beta软件包不可升级,因此您无法将一个版本的Beta软件包安装在另一个版本上。有关更多信息,请参阅卸载软件包和安装软件包。
打包应用程序后,请确保您检查了您是否正确使用了名称空间。应用程序中对组件的JavaScript引用不会自动使用程序包的名称空间进行更新。验证所有涉及JavaScript的自定义,无论是在Visualforce页面还是在Lightning组件(使用JavaScript)中,都仍然正常工作。
在AppExchange上发布您的应用程序之前,它必须经过安全审查。在整个开发周期中解决安全问题,如需求清单中所述。
清单包括以下项目:
您的代码尊重由组织的Salesforce管理员指定的字段级别和对象安全性。请特别关注此主题,因为它会导致在安全审查期间标记许多应用程序。
您已编写JavaScript和HTML以防止跨站脚本攻击(XSS)攻击。
在平台上传输数据和从平台传输数据以及将平台上的敏感信息(例如登录证书和客户数据)存储在外时,您已经实施了加密。
安全审查包括针对您的应用运行多个测试。您可以在提交应用程序之前运行一些测试。将它们合并到您的测试周期中。
当您上传您的软件包时,您可以设置客户组织必须满足的软件包和对象要求才能成功安装您的应用程序。如果您不知道在这里选择什么,请不要担心。它带有经验,而且风险很低 – 通常情况下,默认值都很好。
一些值是基于你的软件包中的内容自动启用的。验证此列表是否具有适用于您的应用的正确值,以便在安装该软件包时不会发生错误。
例如,可以自动选择与Chatter相关的组件或社区。如果客户的组织禁用了这些功能,则尝试安装您的软件包失败。
当您认为您的应用在打包状态下无缺陷时,现在可以在您的测试版打包组织中创建托管 – 发布的软件包了。你如何创建一个发布的包?这只是您上传包装时的一个选项。
然后通过一轮测试发送包裹。
当一切都很好时,就该使用金色包裹组织了。
使用迁移工具将您的应用程序移至您的黄金包组织。
设置您的面向客户的名称空间。
打包你的组件。
创建您的托管 – 发布的软件包。
然后,是的,再做一轮测试。
完成所有工作后,现在是时候发送应用以进行安全审查。在您的应用程序通过安全审查后,该出售了。
平台上的大多数测试都遵循标准的最佳实践。测试确定您已经:
满足功能要求
书面测试来验证你的代码
解决了安全漏洞
在测试一个包时,请验证:
外部代码正确引用名称空间
包和对象要求
你做到了!您现在知道使用AppExchange合作伙伴工具开发应用程序的所有基本知识。出发。学到更多。写那个惊人的应用程序
完成本单元后,您将能够:
列出命名空间的关键功能。
描述为AppExchange合作伙伴使用托管 – 发布的软件包的好处。
描述安装Managed-Beta软件包与Managed-Released软件包的影响。
一个包是用于组件的容器,例如Java JAR文件或Ruby GEM,用于将应用程序分发给客户。它包含一组具有唯一名称空间的元数据。一个软件包可以包含像个别组件一样小或与一组相关应用程序一样大的东西。
Salesforce平台就其本质而言鼓励一种敏捷开发模型,在该模型中,您可以逐步进行测试,并随时调整设计。 Managed-Beta软件包支持这种测试和修改方法。
托管 – 发布的软件包用于实时产品。您的客户期望一个稳定的应用程序随着时间的推移而不断发展,而不会破坏他们在其之上构建的业务流程。托管 – 发布的软件包有助于确保您不会破坏客户的定制并为您的知识产权提供保护。
我们来看看您的应用程序的打包和分发生命周期。
您在托管 – 发布的软件包中发布您的应用的第1版。
客户安装包装。
客户定制您的应用程序。
您在托管 – 发布的软件包中发布您的应用的第2版。
客户在现有软件包的顶部安装新版本的软件包。
我们说一个托管 – 发布的软件包是可升级的,因为客户可以在他们现有的版本上安装新版本。非托管软件包(合作伙伴通常不使用)和托管 – Beta软件包不可升级。
Salesforce平台具有高度可定制性,您的客户可能会定制您的应用。当您发布新版本时,它们取决于应用程序的一定程度的一致性,以使其定制不会中断。
托管 – 发布的软件包具有内置的安全措施,可以最大限度地减少新版本的影响。例如,您不能删除已提供给客户或对象的Apex方法。有关更多详细信息,请参阅ISVforce指南中的“托管软件包中可用的组件”部分。
我们将在此打破我们自己的规则,并在创建包的同一组织中设置一个简单的应用程序。您只能在合作伙伴开发版(PDE)或Developer Edition组织中创建软件包。因此,请使用我们在最后一个单元中创建的PDE组织。
让我们通过创建一个世界上最简单的应用程序来完成一些实践包装的步骤。我们将创建一个显示自定义对象的单页应用程序。
转到设置菜单。
在Lightning Platform主页上,单击 Add App.
如下填写App Quick Start页面。
点击 Create.
点击 Go To My App
而已。让我们试试这个应用程序。
对于Trail名称,输入 AppExchange Partner Basics.
点击 Save.
您已经使用您的应用创建了一条记录。十分简单。
对于所有AppExchange应用程序和一些OEM嵌入式应用程序,客户将您的应用程序安装在具有自定义设置的现有组织中。考虑以下情况。
客户已经使用API名称Vendor__c创建了一个自定义对象。
您的应用有一个API名称为Vendor__c的自定义对象。
将安装您的应用程序覆盖您的客户的对象?不,谢天谢地。命名空间将我们从命运中解救出来。
为了防止冲突,托管包总是有一个名称空间。命名空间在Salesforce中是唯一的,因此托管软件包的安装不会与客户和其他合作伙伴所做的自定义设置相冲突。
开发组织只能有一个名称空间。您只能使用该名称空间创建一个包,但可以对该包进行更新并发布新版本。
当您在组织中创建名称空间时,它将附加到组织中的每个组件。如果您在该组织中创建了一个包,则添加到包中的每个组件都随附该命名空间。以下自定义对象显示(1)组织具有命名空间TrailApp_Test1,以及(2)Trail对象的API名称是TrailApp_Test1__Trail__c。
但是,添加名称空间时,Salesforce不会更新非Salesforce工件,如JavaScript,其中包含对对象或字段的引用。您必须自己更新这些参考。
因为名称空间是唯一的,所以首先为你的黄金包org选择名字空间。您的客户会看到您用于上传到AppExchange的包的名称空间。如果您的公司名称是AW Computing,则需要命名空间,如awc或awcomputing。
不要在您的测试版包装组织中使用该名称空间,因为那么它不适用于您的黄金包组织。
让我们创建您的名称空间,以便您可以打包您的应用程序。
从安装程序中,在快速查找框中输入软件包,然后单击 Packages.
在页面的开发者设置部分,点击 Edit.
要确认您要设置命名空间,请单击 Continue.
为名称空间前缀输入一个值。请记住,不要使用稍后可能要使用的名称。
点击 Check Availability. 重复步骤4和5,直到找到可用的名称空间。
点击 Review My Selections.
点击 Save.
使托管 – 发布的软件包成为销售和发布应用程序的最佳选择的因素也使得它成为测试的不好选择。将某些组件添加到托管包后,您无法修改它们。比方说,在开发应用程序时,您会创建四个自定义对象,Larry,Curly,Moe和John。当你去测试你的应用时,你决定约翰是不必要的。抱歉!如果对象John在您的托管 – 发布包中,则无法删除它。
为了解决这个问题,我们提供了Managed-Beta软件包。 Beta软件包的组件可在您的软件包组织中编辑,直到创建一个托管 – 已发布的软件包。
继续并按照以下步骤创建您的Managed-Beta软件包。
如果您不在软件包页面上,请从安装程序中,在快速查找框中输入软件包,然后单击 Packages.
在Packages部分中,单击 New.
对于Package Name,输入 Trail App.
选择托管复选框以启用该选项。出现提示时,单击 OK.
点击 Save.
在“组件”子选项卡中,单击 Add.
选择 Trail Tracker 应用程序,然后点击 Add to Package. 请注意,包中添加了几个相关组件。
点击 Back to Package List.
注意,默认情况下创建了一个托管 – 测试版包,正是我们想要的。
Beta版本不被视为主要版本,因此软件包版本号不会更改。
当你准备在另一个组织中安装你的软件包时,你需要上传它。
从软件包列表中单击您的软件包名称。
点击 Upload.
如下所示填写Package Details部分。
点击 Upload. 如果上传成功,您会收到包含安装URL的消息。
复制安装URL以用于安装软件包。
退出您的组织。
将安装URL粘贴到浏览器中。
在出现的登录页面上,输入在单元2中创建的Trailhead Test组织的凭证。
在出现的页面上,点击 Install.
点击 Done.
从应用程序菜单中选择您的应用程序,确认您的应用程序已安装。
你现在知道关于软件包的基础知识。
您必须在Partner Developer Edition或Developer Edition组织中创建软件包。
要创建包,请选择一个唯一的名称空间。
不要在测试组织上占用你的好名字空间,否则你会后悔的。
在测试周期中使用Managed-Beta软件包,因为它很容易修改其内容。
仅使用托管 – 发布的软件包进行最终测试。
恭喜,您拥有在开发周期中使用Managed-Beta软件包的所有技能。挑战让你多练习一下。
完成本单元后,您将能够:
描述您从Environment Hub执行的任务。
定义我的域名。
描述如何设置单一登录到环境中的成员组织。
现在是时候开始创建组织了。 Environment Hub应用程序是您创建组织和组织管理的一站式商店。
使用Environment Hub应用程序,您可以将现有组织连接到集线器。您可以创建标准和合作伙伴版本组织来开发,测试和打包您的应用程序。您可以设置从您的集线器org到其连接组织的单点登录,以便轻松访问开发和测试组织。
如果您想尝试本单元中的步骤,则需要使用Environment Hub应用程序的组织结构。
如果您拥有系统管理员配置文件,则您拥有使用所有Environment Hub功能所需的权限。我们假设你有这些超级大国,并且你迫不及待地想创建一个组织。
但是,如果您希望其他用户访问集线器,或者您没有这些权限,则可以立即进行设置。在ISVforce指南的“配置环境中心”部分中了解有关集线器访问权限的更多信息。您或您的Salesforce管理员可以设置新配置文件,修改现有配置文件或使用正确权限创建权限集。
在开始之前,让我们使用Salesforce My Domain设置自己的域。是否要设置我的域名?对于AppExchange合作伙伴,这是肯定的。 Salesforce需要我的域作为安全措施来帮助防止恶意攻击 – 以防安全漏洞深藏在第三方或自定义组件中。
如果您的DE组织已启用“我的域”,或者您使用了Trailhead Playground组织,请跳过此部分。您已经设置了“我的域名”。
当您设置我的域名时,您会标记您的网址。例如,您可以创建像https://yourDomain.my.salesforce.com这样的自定义网址,而不是像https://na30.my.salesforce.com这样的网址。
Salesforce我的域向导将引导您完成这些步骤。
选择你的域名。
从设置中,在快速查找框中输入我的域名,然后选择My Domain.
在https://后输入您的域的名称,然后单击Check Availability. 如果此名称已被使用,请选择另一个名称。
点击 Register Domain.
在获得激活电子邮件之前,您无法进入下一步。
将我的域名推广到您的组织。
在激活电子邮件中,单击链接登录到您的Salesforce域并返回到向导。
请注意,浏览器地址栏中的网址显示您的新域名。
点击您的组织,确保链接指向您的新域名。您可能尚未在您的DE组织中创建链接,因此我们可以继续。 (在生产组织中创建域时,这一重要步骤很容易被忽略。)
单击 Deploy to Users, 然后单击 OK.
恭喜,你已经建立了我的域名。在生产组织中设置“我的域”时,您需要执行几个步骤。通过完成用户认证模块的我的域单元了解更多信息。既然您已经使用域名保护了您的组织并将其品牌化,那么让我们继续。
现在让我们创建一个开发组织,您可以在其中创建一个简单的应用程序。
从App菜单中选择 Environment Hub.
从ITEMS列表中选择 Environment Hub.
点击 Create Org.
为了目的,选择 Development .
在组织名称中,输入Trailhead Development Org.
填写剩余的必填字段。由于这是一个新的组织,所以您必须输入新的用户名,因为用户名不能在Salesforce组织中重复使用。
阅读主认购协议并选择是否接受。
点击 Create.
当您的组织准备就绪时,您会收到一封电子邮件确认,并且该组织出现在您的中心成员名单中。当电子邮件到达时,点击验证客户以激活组织。
点击 Create Org.
为了目的,选择 Test/Demo.
确认您的版本选择列表看起来像这个。
点击 Cancel.
如果您没有看到突出显示的版本选项,请在合作伙伴社区提交案例以获取AppExchange合作伙伴环境中心。合作伙伴版本持续一年。非合作版本的使用寿命较短。
当您的组织准备就绪时,它将在环境中心中列为已连接的组织。
注意右侧的下拉菜单。它有一个登录选项。如果您还没有设置SSO,登录只会将您带到登录页面。让我们激活SSO以充分利用Environment Hub。
从环境列表中选择组织名称。
点击 Enable SSO.
通过在新的屏幕上点击启用SSO,确认您想要 Enable SSO
转到单点登录用户映射相关列表,然后选择 New SSO User Mapping.
对于会员组织的用户名,请在环境中心查找用户。对于Environment Hub User,请输入您用于设置Trailhead Development Org的用户名。
点击 Save.
选择 Login.
您现在已登录到相关组织。有用,不是吗?当您登录到成员组织时,您没有提供密码。因为您使用Environment Hub创建了组织,所以无需密码即可连接。
查看ISVforce指南的Environment Hub部分中的Single Sign-on,了解可用于连接组织的其他SSO方法。
它从不伤害练习,对吧?实际上,我们需要一个测试组织,用于在下一个单元中加载包含您的应用的软件包。所以,在这里。
从App菜单中选择 Environment Hub.
从ITEMS列表中选择 Environment Hub.
点击 Create Org.
为了目的,选择 Test/Demo.
在组织名称中,输入 Trailhead Test.
填写剩余的必填字段。请记住,这必须是新用户名,因为它必须在所有Salesforce组织中都是唯一的。
阅读主认购协议,然后选择是否接受。
点击 Create.
别忘了。找到您的电子邮件确认,并等待您的组织出现在您的中心成员名单中。在您确认并验证了您的客户后,请继续并设置SSO以使您的生活更轻松。
保持有组织
您将在您的业务生命周期中创建许多组织。通过Environment Hub应用程序使用自定义列表视图,可以帮助您快速找到组织,从而让您的生活更轻松。
当您创建自定义列表视图时,您可以设置过滤器来确定您看到哪些组织并指定要显示的列。
也许你是一位发烧友,在你成为AppExchange合作伙伴之前,他们开始在Developer Edition org中创建你的应用。或者,您可能还有其他一些围绕您希望从环境中心访问的组织。没问题。就是这样。
登录到环境中心,然后选择 Connect Org.
输入您要连接的组织的管理员用户名,以及可选的简短说明。描述使得后来更容易找到组织,特别是如果您的中心有许多成员。
默认情况下,为您连接的组织启用单点登录(SSO)。要禁用SSO,请取消选择 Auto-enable SSO for this org.
再次选择 Connect Org.
在弹出窗口中,输入组织的管理员用户名和密码。如果您没有看到弹出窗口,请暂时停用浏览器的广告拦截软件,然后重试。
选择 Log In, 然后选择 Allow.
在某个时候,你的公司可能会发展到你希望在环境中心拥有另一个组织。使用Remove命令可以很容易地断开组织与环境Hub的连接。
并且很容易再次将它连接到同一个Environment Hub。但是,要将其连接到新的环境中心,请向合作伙伴支持提交一个案例,以断开与以前的环境中心的关联。
你现在知道如何:
设置我的域名。
使用Environment Hub创建组织。
将现有组织连接到环境中心。
使用自定义列表视图来帮助您保持组织。
布拉沃。参加测验,然后进入下一个单位,在那里你可以使用这些组织。&|&&|&&|&&|&&
当前位置: >
作者:cyn9145 & 来源:转载 &
摘要: 安装软件的方式?1.1源代码编译安装优点:可以定制化安装目录,按需开启功能等缺点:需要查找并试验出合适的编译参数,诸如mysql数据库之类的软件编译耗时过长1.2利用yum源安装rpm包优点:是全自动化安装,不需要为依赖问题发愁了缺点:自主性太差,软件的功能,存放的位置已经固定好了,不易变更1.3源码和yum结合根据自己的需要做成定制rpm包-->搭建yum仓库-->yum安装结合前两者优点,暂时
安装软件的方式?
1.1 源代码编译安装
优点:可以定制化安装目录,按需开启功能等
缺点:需要查找并试验出合适的编译参数,诸如mysql数据库之类的软件编译耗时过长
1.2 利用yum源安装rpm包
优点:是全自动化安装,不需要为依赖问题发愁了
缺点:自主性太差,软件的功能,存放的位置已经固定好了,不易变更
1.3 源码和yum结合
根据自己的需要做成定制rpm包--&搭建yum仓库--&yum安装
结合前两者优点,暂时未发现缺点,可能的缺点就是rpm包的通用性差,一般人不会定制rpm包
RPM 前是Red Hat Package Manager(Red Hat包管理器),几乎所有的Linux发行版本都是用这种形式的软件包安装,更新和卸载软件。
rpm命令有五种功能(不包括创建软件包):安装,卸载,升级,查询,和验证,关于rpm命令的是用我们可以用rpm--help来获得
2.1 rpmbuild 简介
rpmbuild是redhat系的原生打包命令,这个命令的使用难点主要在于spec文件的编写,一个类似于kickstart的ks.cfg文件
作为一个试用工具,种种的繁琐,再没有替代品时还能存活,当有了其他简单工具时,他就力有不从了
参考定制nginx的spec文件
fpm 打包工具
fpm的作者是joradansissel
fpm的github:http://github.com/jordansissel/fpm
fpm功能简单说就是将一种类型的包转换成另一种类型
3.1 支持的类型包
支持的目标类型包
dir&将目录打包成所需要的类型,用语源码编译安装的软件包
rpm&对rpm进行转换
gem&对rubygem包进行转换
python&&将python模块打包成相应的类型
支持的目标类型包
rpm&转换为rpm包
deb&转换为deb包
solaris&转换为solaris
puppet&&转换为puppet模块
3.2 fpm安装
fpm是用ruby写的,因此系统环境需要ruby,且ruby版本号大于1.8.5
安装ruby模块
yum&install&-y&ruby&rubygems&ruby-devel
添加淘宝的ruby仓库,外国的源慢
gem&source&-a&http://mirrors.aliyun.com/rubygems/
移除原生的ruby仓库
gem&source&-r&https://rubygems.org/
gem&install&fpm
查看当前源
gem&source&list
3.3 fpm参数
详细使用见fpm ?Chelp
-s&&指定源类型
-t&&指定目标类型,即想要制作为什么包
-n&&指定包的名字
-v&&指定包的版本号
-C&&指定打包的相对路径Change&directory&to&here&seraching&for&files
-d&&指定依赖哪些包
-f&&第二次打包时目录下如果有同名安装包存在,则覆盖它
-p&&输出的安装包的目录,不想放在当前目录下就需要制定
--post-install&&软件包安装完成之后所需要运行的脚本,同―after-install
--pre-install&&&软家包安装完成之前所需要运行的脚本,同―befor-install
--post-uninstall&&&&软件包卸载完成之后所需要运行的脚本,同―after-remove
--pre-uninstall&软家包卸载完成之前所需要运行的脚本,同―befor-remove
3.4 yum安装是如何解决依赖问题的
在使用yum安装软件A时,yum会在下砸完A的rpm包后,对该rpm包进行检查(rpm包中会给出安装该rpm包所依赖的基础库和软件),如果检查出A的安装还需要依赖软件B,那么此时yum就会自动下载并安装B,B安装完成后悔继续安装A。如果是内网yum源的话,我们只需把B放在内网yum源即可,如果检查出,A的安装不需要其他软件的支持,那么yum会自动安装A
因此使用fpm打包使用-d参数添加依赖关系。
3.5 实战定制nginx的rpm包
以制作nginx的rpm包为例
3.5.1 准备工作
安装nginx所依赖的pcre-devel和openssl-devel的安装包
yum&install&-y&pcre-devel&openssl-devel
添加nginx用户
useradd&-s&/sbin/nologin&-M&nginx
解压nginx源代码包
tar&xzf&&nginx-1.6.3.tar.gz
cd&nginx-1.6.3
./configure&\
--prefix=/application/nginx-1.6.3&\
--user=nginx&\
--group=nginx&\
--with-http_ssl_module&\
--with-http_stub_status_module
make&&&&make&install
创建软链接
ln&-s&/application/tools/&/application/nginx
相对路径问题:
fpm&-s&dir&-t&rpm&-n&nginx&-v&1.6.3
fpm&-s&dir&-t&rpm&-n&nginx&-v&1.6.3&-f&/application/nginx-1.6.3
fpm类似tar打包一样,只是fpm打的包能够被yum命令识别而已
软链接问题
fpm&-s&dir&-t&rpm&-n&nginx&-v&1.6&/application/nginx
/usr/lib/ruby/gems/1.8……..
如果是软链接文件就会报错
3.5.2 完整的命令
编辑安装前的脚本
[root@yum&x86_64]#&cat&nginxRpmPre.sh
脚本具体内容
#!/bin/bash
source&/etc/profile
source&/etc/init.d/functions
useradd&-s&/sbin/nologin&-M&nginx
编辑安装后的脚本
cat&nginxRpmPost.sh
脚本具体内容
#!/bin/bash
source&/etc/profile
source&/etc/init.d/functions
ln&-s&/application/nginx-1.6.3/&/application/nginx
fpm&-s&dir&-t&rpm&-n&nginx&-v&1.6.4&\
-d&'pcre-devel,openssl-devel'&\
--pre-install&~/nginxRpmPre.sh&\
--post-install&~/nginxRpmPost.sh&\
-f&/application/nginx-1.6.3/
查看制作的压缩包
rpm&-pql&nginx-1.6.3-1.x86_64.rpm
详细安装的文件
/application/nginx-1.6.3/client_body_temp
/application/nginx-1.6.3/conf/fastcgi.conf
/application/nginx-1.6.3/conf/fastcgi.conf.default
/application/nginx-1.6.3/conf/fastcgi_params
/application/nginx-1.6.3/conf/fastcgi_params.default
/application/nginx-1.6.3/conf/koi-utf
/application/nginx-1.6.3/conf/koi-win
/application/nginx-1.6.3/conf/mime.types
/application/nginx-1.6.3/conf/mime.types.default
/application/nginx-1.6.3/conf/nginx.conf
/application/nginx-1.6.3/conf/nginx.conf.default
/application/nginx-1.6.3/conf/scgi_params
/application/nginx-1.6.3/conf/scgi_params.default
/application/nginx-1.6.3/conf/uwsgi_params
/application/nginx-1.6.3/conf/uwsgi_params.default
/application/nginx-1.6.3/conf/win-utf
/application/nginx-1.6.3/fastcgi_temp
/application/nginx-1.6.3/html/50x.html
/application/nginx-1.6.3/html/index.html
/application/nginx-1.6.3/logs/access.log
/application/nginx-1.6.3/logs/error.log
/application/nginx-1.6.3/proxy_temp
/application/nginx-1.6.3/sbin/nginx
/application/nginx-1.6.3/scgi_temp
/application/nginx-1.6.3/uwsgi_temp
发送给另一台服务器,然后yum 安装
缺少的依赖包会在yum源上自动安装
练习定制mysql的rpm包
yum仓库搭建
yum主要用于自动安装,升级rpm软件包,他能自动查询并解决rpm包之间的依赖关系,要成功的使用yum工具安装更新软件或系统,就需要有一个包含各种rpm软件包的repository(软件仓库)
这个软件仓库我们习惯叫做yum源,网络傻姑娘有大量的yum源,但是由于受到桑落环境的限制,但是软件安装耗时过长甚至失败,特别是当一偶大量服务器大量软件包需要安装时,缓慢的进度条令人难以忍受,因此在优化时,经常更换国内的源。
相比较而言,本地yum源服务器最大的优点就是就欲望的跨素网络链接和稳定性,有了局域网中的yum源服务器,纪实在internet链接中断的情况下,也不会影响其他yum客户端的软件安装和升级
4.1 创建yum仓库目录
mkdir&-p&/application/yum/centos6/x86_64/
cd&/application/yum/centos6/x86_64/
yumdownloader&openssl-devel&pcre-devel
4.2 安装createrepo软件
yum&install&-y&createrepo
4.3 初始化repodata索引文件
createrepo&-pdo&\
/application/yum/centos6/x86_64/&\
/application/yum/centos6/x86_64/
4.4 提供yum服务
可以通过Apache或者nginx提供web服务,但是用python的http模版更简单,适用于内网环境
cd&/application/yum/centos6/x86_64/
python&-m&SimpleHTTPServer&80&&&/dev/null&&
可以通过浏览器查看
4.5 添加新的rpm包
yumdownloader&pcre-devel&openssl-devel
createrepo&--update&/application/yum/centos6/x86_64/
平时yum安装软件时不删除安装包
[root@yum&x86_64]#&cat&/etc/yum.conf&
cachedir=/var/cache/yum/$basearch/$releasever
keepcache=1
debuglevel=2
logfile=/var/log/yum.log
exactarch=1
obsoletes=1
gpgcheck=1
installonly_limit=5
bugtracker_url=http://bugs.centos.org/set_project.php?project_id=19&ref=http://bugs.centos.org/bug_report_page.php?category=yum
distroverpkg=centos-release
4.6 客户端配置
[root@yum&x86_64]#&cd&/etc/yum.repos.d/
[root@yum&yum.repos.d]#&vi&oldboy.repo
name=Server
baseurl=http://10.0.0.5
gpgcheck=0
[root@yum&yum.repos.d]#&yum&--enablerepo=oldboy&--disablerepo=base,extras,updates&list
#指定使用local库
4.7 yum命令用法
introduction
安装软件包
yum install -y httpd
列出软件包
yum list httpd
搜索软件包
yum search http
查找特定文件属于哪个包
yum provides /etc/my.cnf
列出所有可用群组
yum grouplist
安装群租软件包
yum groupinstall 'MySQL Database'
列出启用的软件库
yum repolist
列出所有软件库
yum repolist all#包括禁用的也列出
安装来自特定软件库的软件包
想安装来自某个启动或禁用的软件库的某个软件包
必须在yum命令中使用-enablerepo选项
yum --enablerepo=localhost install LNMP
清理yum缓存内容
yum clean all
查看yum历史纪录
yum history
4.8 yum服务配置文件
配置文件分为两部分main和repository
4.8.1 全局配置文件
main部分定义了全局配置选项
这个yum配置文件应该只有一个main位于/etc/yum.conf
cat&/etc/yum.conf&
yum 的缓存目录
cachedir=/var/cache/yum/$basearch/$releasever
debuglevel=2
logfile=/var/log/yum.log
exactarch=1
obsoletes=1
gpgcheck=1
installonly_limit=5
bugtracker_url=http://bugs.centos.org/set_project.php?&&project_id=19&ref=http://bugs.centos.org/bug_report_page.p
hp?&&&category=yum
distroverpkg=centos-release
4.8.2 yum仓库配置文件
repository部分定义了一个源服务器的具体配置
可以有一到多个,位于/etc/yum.repos.d/
ls&/etc/yum.repos.d/
CentOS-Base.repo&&&&&&&#网络源的配置
CentOS-fasttrack.repo&&
CentOS-Vault.repo
CentOS-Debuginfo.repo&&
CentOS-Media.repo&&&&&&#本地源的配置
oldboy.repo
4.8.3 配置本地yum源
grep&-v&"^$"&/etc/yum.repos.d/CentOS-Media.repo&
[c6-media]
name=CentOS-$releasever&-&Media
baseurl=file:///media/CentOS/
&&&&&&&&file:///media/cdrom/
&&&&&&&&file:///media/cdrecorder/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
版权所有 IT知识库 CopyRight (C)
IT知识库 IT610.com , All Rights Reserved.}

我要回帖

更多关于 gradle 打包源代码 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信