如何在 shell 脚本中确保 yum 安装成功?
我有一个shell脚本,该脚本检查是否存在Internet连接(通过ping Google),然后调用 yum install packageA packageB --assumeyes 我将如何确认已安装软件包(或已安装)?我会再打电话并解析输出(我认为如果系统使用另一种语言,这会变得非常复杂)? 解决方案 基于echo $? 将打印上一个命令的返回代码.成功应该为0,某种非零的失败.但这只是一个猜测,因为我目前还没有一个盒子. :) 其他解决方案 我使用了以下方法,这可能不是万无一失,但似乎有效: 假设变量PACKAGES包含您要安装的软件包列表,然后: 运行yum -y install $PACKAGES(我假设这是一个脚本,您真的想通过-y避免提示). 检查其退出状态以检测某些故障条件 运行rpm --query --queryformat "" $PACKAGES,它将为成功安装的每个软件包输出任何内容,并将为每个故障输出pack
8 2024-04-22
编程技术问答社区
在Ubuntu下用rpmbuild构建
我需要在ubuntu 10.4下用一个补丁构建百胜 自ubuntu yum src以来 但是,当我尝试用 构建它时 rpmbuild -ba yum.spec 它失败了 error: Failed build dependencies: python is needed by yum-3.2.22-0.src gettext is needed by yum-3.2.22-0.src intltool is needed by yum-3.2.22-0.src 现在我已经安装了所有这些,我不知道如何解决此问题,因为我不每天都在重建我的东西. 问候, v. 解决方案 解决方案是将正确的DEB-SRC存储库输入您的YUM列表,使用Apt-Get源yum下载源并应用补丁.最后,使用DPKG-BuildPackage构建包裹. 其他解决方案 问题是RPMBuild正在尝试使用RPM自己的已安装软件包数据库来解决依赖项 - 这与
8 2024-04-05
编程技术问答社区
设置具有基本认证的私有yum repo
我已经设置了自己的私人yum回购.这是一个HTTP基础存储库,APACHE作为Web服务器,因此我想添加某种身份验证.这是我需要与Apache一起做的事情,还是我可以使用CreateRepo库来指定用户名和密码? 最终目标是拥有多个回购: dev-repo,Qa-Repo,Staging-Repo和Production-Repo 我希望开发人员只能访问dev-repo,仅访问QA-Repo等... 解决方案 要在服务器端设置基本验证,请关注 http:http:http:http:http:http://httpd.apache.org/docs/2.2/howto/auth.html#gettingitworking (路径可能有所不同 - 它们肯定会在我的Fedora安装上使用). 要设置百胜以消耗该回购,您可以添加: baseurl=http://user:pass@example.com/myrepo/Dev-Repo 或: userna
28 2024-03-29
编程技术问答社区
如何仅获取百胜更新列表
好吧,我一直都有这个问题.我只想使用YUM中的Linux系统(RHEL或Fedora)中列出的文件中列出的可用更新,但我始终必须处理创建的标题信息,这些信息看起来像这样: Loaded plugins: XXXX-repo XXXX-updates : WWWWWW-repo something-updates QQQQQ-updates Updated packages package1.i686 1:234 RHEL 6.5 updates package2.i686 1:234 RHEL 6.5 updates package3.i686 1-234 RHEL 6.5 updates package4.noarch 1
8 2024-03-28
编程技术问答社区
在子域上安装GitLab
我试图在子域上安装gitlab.我对网络服务器和内容并不熟悉,只有很少的知识.我目前通过Mac终端上的ssh admin@mysite.com连接到子域.然后我ls到子域的文件夹.问题是我是否执行: curl -O https://downloads-packages.s3.amazonaws.com/centos-6.5/gitlab-7.4.3_omnibus.5.1.0.ci-1.el6.x86_64.rpm sudo yum install openssh-server sudo yum install postfix sudo yum install cronie sudo service postfix start sudo chkconfig postfix on sudo rpm -i gitlab-7.4.3_omnibus.5.1.0.ci-1.el6.x86_64.rpm 在当前文件夹上. GitLab是否仅在当前文件夹中安装或下载,或者网站的其他子域和文
12 2024-03-28
编程技术问答社区
Linux-Bash-获取$releasever和$basearch值?
使用reposync,我正在编写一个bash脚本以从远程存储库中提取包装,这样我就可以将节点指向本地拉动.因此,我试图使本地回购配置与USPtream Repo配置尽可能相似,例如: # upstream baseurl=http://mirror.freedomvoice.com/centos/$releasever/os/$basearch/ # local baseurl=http://user:password@repo.example.com/centos/stable/$releasever/os/$basearch/ 在BASH脚本中,是否有一种更清洁的方法来获取$ realeagever和$ basearch值?我正在考虑做以下操作: yum_metadata=$(yum version nogroups) 返回: Loaded plugins: versionlock Installed: 6/x86_64 360:6167019baac7e
14 2024-03-28
编程技术问答社区
Bash Centos7 "which "命令
我意识到这可能是一个愚蠢的问题,但是我有一个CentOS-7最小服务器安装,并且"命令"不存在或丢失. 我有一个需要它的脚本,我找不到安装它的YUM软件包. 代码在下面,来自make文件. which grep > /dev/null 2> /dev/null if test "$?" != "0" then echo "\"grep\" command not found." echo "Installation is aborted." exit 1 fi 任何帮助都将不胜感激...对于Google来说,这是很难的,即使不是不可能的 解决方案 要在CentOS中找到一个软件包,使用yum whatprovides: yum whatprovides *bin/which 在这种特殊情况下,该软件包被称为which,所以 yum install which 应该将其拉入. 其他解决方案 而不是which命令您可以使用t
34 2024-03-28
编程技术问答社区
检查已安装的软件包,如果没有找到就安装
我需要检查已安装的软件包,如果未安装,请安装它们. Rhel,Centos,fedora的示例: rpm -qa | grep glibc-static glibc-static-2.12-1.80.el6_3.5.i686 我如何在bash中进行检查? 我做类似的事情吗? if [ "$(rpm -qa | grep glibc-static)" != "" ] ; then 我需要用什么用于其他分布? apt-get? 解决方案 尝试以下代码: if ! rpm -qa | grep -qw glibc-static; then yum install glibc-static fi 或短: rpm -qa | grep -qw glibc-static || yum install glibc-static 对于Debian喜欢: dpkg -l | grep -qw package || apt-get i
50 2024-03-28
编程技术问答社区
Azure RedHat vm yum 更新失败,提示 "SSL 对等方以证书过期为由拒绝了您的证书"。
我刚刚在Azure上启动了标准的Redhat 7 VM. i登录和类型: sudo yum update 并获取: Loaded plugins: langpacks, product-id, search-disabled-repos https://rhui-3.microsoft.com/pulp/repos//content/dist/rhel/rhui/server/7/7Server/x86_64/dotnet/1/debug/repodata/repomd.xml: [Errno 14] curl#58 - "SSL peer rejected your certificate as expired." Trying other mirror. https://rhui-1.microsoft.com/pulp/repos//content/dist/rhel/rhui/server/7/7Server/x86_64/dotnet/1/debug/re
8 2024-03-23
编程技术问答社区
从Gradle上传一个RPM到Artifactory
如何使用gradle上传rpm文件到文物? Gradle始终使用Maven风格的直接布局上传文件,这是不适合YUM存储库的. 解决方案 这里的问题是,Gradle坚持以group-id/version/artifact的Maven式目录格式上传所有内容,而YUM存储库需要平坦的布局.这里有两种方法 - 使用文物插件或Gradles较新的出版机制.我只能让它与后者一起工作. 我在这里假设您正在使用task distRpm(type: Rpm) { packageName = 'my_package' version = version release = gitHash arch = 'X86_64' os = 'LINUX' // Etc } 将常春藤发布插件添加到您的项目: apply plugin: 'ivy-publish' ,然后添加一个发布块: publishing { publications { rpm(IvyPu
18 2024-03-07
编程技术问答社区
如何将pkg-config的名字映射到yum/apt-get上
很多makefiles都使用pkg-config,但名称与软件包管理者无关(例如yum/apt).如何将pkg-config名称映射给他们?有一个技巧吗? 示例:如果我做yum searchName - 浏览名称并近似于pkg-config的名称 结果: $ pkg-config --libs dbus-glib-0 Package dbus-glib-0 was not found in the pkg-config search path. Perhaps you should add the directory containing `dbus-glib-0.pc' to the PKG_CONFIG_PATH environment variable No package 'dbus-glib-0' found $ sudo yum install dbus-glib Loaded plugins: langpacks, refresh-packagekit
24 2024-03-03
编程技术问答社区
如何在ubuntu中安装 "make"?
我正在尝试将" yum"或" apt-get"安装到我的系统" Ubuntu Centos"中.我确实使用命令WGET从Internet下载了这两个程序的二进制文件.但是,使用命令" tar -zxvf" filename"对文件进行解压缩后,然后配置文件" ./configuring",然后当我想使用命令时,"我得到以下错误"," beake:nock nction:nctight". 我已经搜索了下载" make"命令的方法,但是我在网上发现的所有方法都使用命令" yum"或" apt-get",而我没有任何一个. 解决方案 我不知道Linux分布" Ubuntu Centos"是什么. Ubuntu和Centos是两个不同的分布. 回答标题中的问题: 要在Ubuntu安装Make,您必须安装Build-Ensenters sudo apt-get install build-essential
26 2024-03-03
编程技术问答社区
沉默的Yum API输出
我希望"沉默" python中YUM API的调试水平.例如,我将两个yum命令分配给下面的变量; import yum yb = yum.YumBase() yum_conf = yb.conf.config_file_path package_list = yb.doPackageLists(pkgnarrow='updates', patterns='', ignore_case=True) 运行脚本时,它带有以下CentOS 7: 的以下内容. Loaded plugins: fastestmirror Loading mirror speeds from cached hostfile * base: mirror.sov.uk.goscomb.net * extras: mirror.sov.uk.goscomb.net * updates: mirror.sov.uk.goscomb.net ,然后在Centos 6: Loaded plugins
10 2024-03-02
编程技术问答社区
试图使用yum在aws linux上安装confluent平台(kafka)3.1.1。得到PYCURL ERROR 22-"请求的URL返回错误: 404 Not Found"
我正在按照 Wiki Doc 要在运行Amazon Linux的EC2实例上安装Confluent平台(版本2016.09).我做了一切所说的一切,包括: $ sudo rpm --import http://packages.confluent.io/rpm/3.1/archive.key 创建的/etc/yum.repos.d/confluent.repo具有这些内容: [Confluent.dist] name=Confluent repository (dist) baseurl=http://packages.confluent.io/rpm/3.1/6 gpgcheck=1 gpgkey=http://packages.confluent.io/rpm/3.1/archive.key enabled=1 [Confluent] name=Confluent repository baseurl=http://packages.confluent.io/rpm
18 2024-02-28
编程技术问答社区
当我在shell上调用yum时,没有名为rpm的模块。
我在Centos Machine Linux OS上安装了Python 2.7.5和MOD_WSGI.这发生了: # yum Error processing line 1 of /usr/local/lib/python2.7/site-packages/abrt.pth: Traceback (most recent call last): File "/usr/local/lib/python2.7/site.py", line 152, in addpackage exec line File "", line 1, in ImportError: No module named abrt_exception_handler Remainder of file ignored Traceback (most recent call last): File "/usr/bin/yum", line
28 2024-02-27
编程技术问答社区
httpd-mmn = 20051115 "yum install php "要求的。
我从源安装了HTTPD(Apache 2.4.6),现在我想安装PHP.但是yum install php吐出错误: Error: Package: php-5.3.3-40.el6_6.x86_64 (updates) Requires: httpd-mmn = 20051115 Installed: httpd-2.4.6-1.x86_64 (installed) httpd-mmn = 20120211 Available: httpd-2.2.15-39.el6.centos.x86_64 (base) httpd-mmn = 20051115 我还尝试了webtatic,ius和remi.都有相同的错误.我使用rpm-build构建了apache. $ httpd -v Server version: Apache/2.4.6 (Unix) 解决方案 $ sudo nan
40 2024-02-27
编程技术问答社区
升级Apache 2.2 -> 2.4
我们当前已经安装了Apache 2.2.现在,有一个百胜存储库,上面有Apache 2.4? 问候, 凯文 解决方案 Apache 2.4现在几乎是生产的版本.您可能必须从源头构建它. 这是从源安装Apache 2.4.2的教程在Centos 其他解决方案 虽然尚不清楚OP使用哪个Linux的发行版,但这对运行Centos 6的其他人可能很有用,他们希望使用YUM从Apache 2.2升级到2.4. . 有两种基于存储库的升级方法,将升级到Apache 2.4,SCL和IUS.我在这篇文章中介绍了这两种方法. 首先,您需要准备当前的服务器环境. 如果您当前已安装了Apache 2.2,请关闭服务并将其禁止在启动时运行. sudo service httpd stop sudo chkconfig httpd off 删除Apache 2.2 (SCL方法可选) 注意:如果要删除任何残留的未使用依赖项,请确保更改您的/etc/yum.
16 2024-02-27
编程技术问答社区
ansible在 "sudo yum install"'步骤中挂掉了
我正在尝试设置用于在Linux盒上安装软件的Ansible(2.0) ies-iesd-jktools是具有Ansible的机器. ies-iesd-git-06是目标.用户帐户是iesdgrid可以在目标机器上进行sudo. 以下命令挂在遥控处: - ies-iesd-jktools:~/ansible$ ansible ies-iesd-git-06 \ -i inventory -m raw \ -a "sudo yum install -y python-simplejson" -vvvv Using /usr/src/ansible/ansible.cfg as config file SUDO password: Loaded callback minimal of type stdout, v2.0 ESTAB
26 2024-02-26
编程技术问答社区
Ansible yum模块安装软件包列表并删除所有其他软件包
我必须处理以前已由许多不同管理员手动管理的新机器(同一OS版本). 目的是使用Ansible来使所有这些机器共享相同的已安装软件包列表, 和删除未安装列表中未安装的任何软件包. 这是可行的吗? vars: - yum_rpm: - tcpdump - tmux - psacct tasks: - name: "Install all package in our list" yum: name: "{{ yum_rpm }}" state: absent update_cache: no - name: "Remove any other unexpected package already installed" ## NO IDEA 解决方案 在@gary Lopez上构建以添加安全性和性能的答案. 首先,您需要获取所有软件包的实际列表,您需要在最终计算机上安装,
12 2024-02-26
编程技术问答社区
ansible yum不工作
当我在OPS计算机上运行命令时: ansible web -b -l 192.168.31.101 -m yum -a "name=gcc state=latest" 它返回错误以下显示: 192.168.31.101 | FAILED! => { "changed": false, "failed": true, "msg": "python2 bindings for rpm are needed for this module. python2 yum module is needed for this module" } 但是,当我直接在192.168.31.101上执行命令sudo yum install gcc时,正确执行. 似乎Ansible无法使用正确的百胜和Python 解决方案 我找到了解决方案,只需在主机文件 中添加python路径 ansible_python_interpreter=/usr/
16 2024-02-26
编程技术问答社区