在我的Puppetconfiguration中,我想说“如果我声明类X,在Y类之前应用它的资源。 换句话说,我想要声明一个顺序,但对于是否应用类X保持沉默。 如果我正确理解“之前”的元参数,并说: class X { … before => Class['Y'], } class Y { … } node N { include Y } node M { include X include Y } 将在节点M和N上包含X和Y的资源。相反,我想要分别表示“只应用Y”,或者“应用X和Y,并在Y之前应用X. 对于上下文,我想要更具体地做的是确保我的Yum存储库在Puppet应用程序包资源之前进行configuration。 我想省略一些节点的一些存储库。 我希望我的包资源定义对于相应的存储库保持天真。 我不想乱丢我的包资源定义与依赖于特定的存储库。 我尝试使用运行阶段,但超出最简单的configuration,他们似乎导致依赖周期。 例如,这将工作: stage { 'first': before => Stage['main'] } class X { … before => Class['Y'], } class Y { […]
最终,这个问题是关于百胜和亚马逊Linux AMI的(参见该部分的结尾),但首先我将介绍一些我如何处理自己情况的背景知识。 我从源代码安装PHP 我正在使用Amazon Web Services托pipe的Web服务器上设置新的PHP应用程序。 EC2实例正在运行“Amazon Linux AMI release 2012.09”(根据/ etc / issue)。 我不是这台服务器的主要pipe理员,所以我想限制我所做的更改的影响。 已经有一些PHP应用程序在这台服务器上运行。 我需要比他们使用的更新版本的PHP。 他们使用的发行版本是5.3,对我来说太旧了。 我想我会下载PHP源代码,自己构build并与其他版本一起运行。 (我将如何设置这是一个不同的问题,我不会进入这里。) 我用这些选项configuration我的PHP版本: –prefix=/opt/php-5.5.9 –with-openssl –with-mcrypt –with-mysql –with-pdo-mysql –enable-fpm –with-apxs2=/usr/sbin/apxs 然后,我切换到root并运行make install 。 (回想起来,以root身份执行这个操作是一个错误,我应该在安装目录上设置用户写入权限,并将其安装为我的用户,这样我就可以确定没有任何文件被安装到安装目录之外。 。) 然后我注意到,Web服务器没有响应。 重新启动后,它工作正常。 我探讨了一下,注意到phpversion ,服务器现在报告我刚刚安装在/opt下的新版本,而不是我原本打算离开的发行版本。 事实certificate, make install继续前进,并取代了现有的libphp5.so 。 RPM报告: [root@xxxx etc]# rpm -V php S.5….T. /usr/lib64/httpd/modules/libphp5.so 就我所知,新版本上的所有function仍然可以正常工作,所以很可能不会造成任何伤害。 不过,我宁愿留下旧版本的PHP,以便软件包仍然可以由软件包pipe理器进行pipe理。 这是我的意图将新版本放在/opt 。 试图把旧版本,百胜失败 我试图用yum […]
当试图运行百胜,我得到以下错误: Another app is currently holding the yum lock; waiting for it to exit… The other application is: yum 我已经手动杀死了每个yum进程id,但是它一直在发生(其他应用程序是:yum),尽pipe前几天变得更加近期(以前是3天前,然后是1天前)。 任何想法有什么不对?
我正在寻找一种方法来让yum只安装给定软件包的依赖关系,就像–prepare-for-install选项一样,这样我就可以拍摄准备好的系统的快照,并用不同的选项testingrpm设置或者重build将它自己打包在一个干净的系统上,而不必依靠RPM卸载,而不必每次都下载依赖关系。
简短版本:我的Amazon Linux EC2 AMI上的yum命令仅适用于–noplugins 。 长的版本:几天前,我运行在SSHloginMoTD的遗产yum update告诉我我有更新安装。 关于更新的中途(特别是在更新内核时),更新突然结束(138个项目中的79个已完成)。 我在EC2上主持的网站有几分钟的怪异,但最终似乎稳定了(也许EC2重新启动了自己?),我没有进一步的问题(除了MySQL开始内存不足,但我认为这是可能与此无关)。 今天,我去安装gcc-c ++(用yum install gcc-c++ )。 当我这样做时,我收到以下消息: 加载的插件:优先级,安全性,更新motd,升级帮手configuration错误:命令“updateinfo”已经定义 我可以认为我可以使用yum来运行任何命令。 但是,如果我抛出–noplugins标志,那么神奇的是它似乎工作。 要清楚的是,当我一个星期前安装了一个不同的软件包时,它的工作是完全正确的,所以yum update是我能想到的唯一改变。 我在Google上找不到任何"updateinfo" already defined (有和没有引号)。 我试着运行yum update –noplugins ,吐出一条消息,告诉我应该运行yum-complete-transaction ,而是继续尝试更新自己的东西。 当完成时,我尝试了yum-complete-transaction但是这给了我一个关于事务没有正确排队的消息,所以它删除了旧的事务(可能因为我应该在尝试再次更新之前完成了第一个事务,如果我有已知的)。 基于SF的问题“ Linux的EC2碎百胜 ”,我也试过yum clean all –noplugins (失败与插件相同),只是给我 清理仓库:amzn-main amzn-updates rpmforge 清理一切 我也试过了 package-cleanup –problems 加载的插件:优先级,更新motd,升级帮手 没有发现问题 和 package-cleanup –dupes 给了很多模糊,所以我把它们粘贴在这里: http : //pastebin.com/VVFQEkTT而不是内联。 在这一点上,我不知道还有什么要检查。
在我们的服务器之一, yum history报告: [tschmidt@sl-was01p ~]$ sudo yum history Loaded plugins: product-id, search-disabled-repos, security, subscription- : manager ID | Login user | Date and time | Action(s) | Altered ——————————————————————————- 30 | <dlewandowski> | 2016-10-07 11:18 | E, I, U | 38 EE 29 | <dlewandowski> | 2016-09-16 16:13 | Erase | 3 […] 但是,报告的login用户发誓他不在靠近机器(物理上或逻辑上)附近的任何地方, last似乎支持这一点: […]
我在EC2微型盒上运行亚马逊linux。 最近我跑sudo yum update –security ,希望它会修补Heartbleed。 不幸的是我在更新过程中耗尽内存,有些软件包没有成功修补。 我试图通过重新启动然后运行sudo yum clean然后sudo yum update来解决这个问题,如下面的pastebin所示,但依赖性问题仍然存在。 我怎样才能解决这个问题,而不会破坏什么? 这里是从yum输出的剪辑: Error: initscripts conflicts with util-linux-ng-2.17.2-13.17.amzn1.i686 Error: initscripts conflicts with util-linux-ng-2.17.2-13.17.amzn1.x86_64 Error: Package: glibc-devel-2.12-1.107.43.amzn1.x86_64 (@amzn-main) Requires: glibc-headers = 2.12-1.107.43.amzn1 Removing: glibc-headers-2.12-1.107.43.amzn1.x86_64 (@amzn-main) glibc-headers = 2.12-1.107.43.amzn1 Updated By: glibc-headers-2.17-36.81.amzn1.x86_64 (amzn-updates) glibc-headers = 2.17-36.81.amzn1 Available: glibc-headers-2.17-36.80.amzn1.x86_64 (amzn-main) glibc-headers = 2.17-36.80.amzn1 以下是完整的控制台日志: http : //sebsauvage.net/paste/? […]
执行这个命令 – yum install java-1.7.0-openjdk 产量 – 没有包java-1.7.0-openjdk可用。 这是因为我没有回购 – 但我有点不知道在哪里,以及如何添加回购,使我的百胜可以正确安装。 编辑: 我的Fedora版本是: Linux cl-t046-230cl.privatedns.com 2.6.23.15-80.fc7#1 SMP Sun Feb 10 17:29:10 EST 2008 i686 i686 i386 GNU / Linux Fedora release 7(月光)
我正在创build一个kickstart文件,我想在%packages部分中安装某些软件包组。 我更喜欢安装软件包组,因此使用@packagegroup语法: %packages @Base @Core @Perl 我需要find与Kickstart / Anaconda兼容的正确的组包名称,但Kickstart只能识别包组的某些缩写名称。 例如“@Directory服务器”不起作用,但像“@Directory”可能工作。 问题在于缩写包组(例如'@shortname')是神秘而难以find的。 如何查看哪个@shortname与Yum包组相对应? 例如,以下Yum命令将提供软件包组的描述和软件包列表: $ yum groupinfo \* |head -30 Loaded plugins: changelog, downloadonly, fastestmirror, filter-data, list-data, : security Setting up Group Process Loading mirror speeds from cached hostfile * sl: ftp1.scientificlinux.org * sl-security: ftp1.scientificlinux.org Group: Directory Server Description: Machine and user identity servers. Optional Packages: […]
我们正在使用RHEL 5.x的自定义存储库。 尝试运行更新时遇到了大量问题和冲突(yum 32位软件包与x64软件包冲突问题)。 为了解决这个问题,我补充道 exclude=*.i386 到/etc/yum.conf。 这很好,直到我不得不安装compat-libstdc ++ – 296,这显然是32位。 我检查了RH的网站,列出的唯一的软件包validation。 所以,当我尝试指定完整的软件包名称compat-libstdc ++ – 296.i386时,排除列表阻止了它的安装。 有没有办法强制yum暂时忽略排除列表? 就像是 yum install compat-libstdc++-296.i386 –ignore-exclude 这并不是说很难发表评论,运行安装,然后取消注释,我主要关心的是,我们有大约300台服务器需要运行,这是很多手工编辑文本文件。 我更喜欢能够复制和粘贴一个命令,如果这是有道理的。