假设您正在运行一个服务器,并且您不想从 Stable (Lenny) 升级到 Testing (Squeeze) 以安装一两个必需的软件包。
仅安装来自测试的某些软件包的最佳方法是什么?
在我通过 yum 安装了一个包(配置了多个存储库)后,我如何找到它已安装在哪个存储库中?
如果我运行yum info package-name(或yum list package-name),我只能看到该软件包已“安装”。
我从ansible开始,并将使用它在几个 Linux 发行版上安装软件包。
我在文档中看到yum和apt命令是分开的 - 统一它们并使用这样的东西的最简单方法是什么:
- name: install the latest version of Apache
unified_install: name=httpd state=latest
Run Code Online (Sandbox Code Playgroud)
代替
- name: install the latest version of Apache on CentOS
yum: name=httpd state=latest
when: ansible_os_family == "RedHat"
- name: install the latest version of Apache on Debian
apt: pkg=httpd state=latest
when: ansible_os_family == "Debian"
Run Code Online (Sandbox Code Playgroud)
我理解这两个包管理器是不同的,但它们仍然有一组共同的基本用法。其他编排器(例如 salt)只有一个安装命令。
我不断收到以下答案:
yum list installed | grep bind
Run Code Online (Sandbox Code Playgroud)
或者
rpm -qa | grep bind
Run Code Online (Sandbox Code Playgroud)
但这并不准确,因为我得到了一些其他像这样的绑定包的列表:
bind-utils-9.8.2-0.17.rc1.el6_4.5.x86_64
rpcbind-0.2.0-11.el6.x86_64
bind-libs-9.8.2-0.17.rc1.el6_4.5.x86_64
samba-winbind-3.6.9-151.el6.x86_64
samba-winbind-clients-3.6.9-151.el6.x86_64
ypbind-1.20.4-30.el6.x86_64
Run Code Online (Sandbox Code Playgroud)
那不是我想要的。相反,我想准确检查是否已安装绑定核心包。例如。bind.x86_64 32:9.8.2-0.17.rc1.el6_4.6
我希望是这样的:
yum check installed bind
Run Code Online (Sandbox Code Playgroud)
但希望有人可以照亮。
我正在使用 debian/Ubuntu,并且对软件包的版本感到困惑。使用dpkg -l命令时,我得到:
ii vim 2:7.3.429-2ubuntu2.1 Vi IMproved - enhanced vi editor
ii vim-common 2:7.3.429-2ubuntu2.1 Vi IMproved - Common files
ii vim-runtime 2:7.3.429-2ubuntu2.1 Vi IMproved - Runtime files
ii vim-tiny 2:7.3.429-2ubuntu2.1 Vi IMproved - enhanced vi editor - compact version
ii virt-what 1.11-1 detect if we are running in a virtual machine
ii w3m 0.5.3-5ubuntu1 WWW browsable pager with excellent tables/frames support
ii watershed 6 reduce superfluous executions of idempotent command
ii wget 1.13.4-2ubuntu1 retrieves files from the …Run Code Online (Sandbox Code Playgroud) 我有一个 debian(技术上是 ubuntu)源包,即 .dsc、.tar.gz 等,我想构建它。将dpkg-buildpackage失败,因为我没有所有的编译依赖。
通常我会使用apt-get build-dep,但这个包不在 apt 中。
给定一个源包,是否有一种“干净”、“正确”的方式来安装所有构建依赖项。我知道我可以打开 debian/control 文件,但我很好奇是否有“正确”的方法。
我已经安装了build-essential,并且拥有所有正常的编译器等,这个包需要额外的软件。
我目前通过 Nginx 站点上的说明安装了 Nginx:
nginx=stable
sudo su -
add-apt-repository ppa:nginx/$nginx
apt-get update
apt-get install
Run Code Online (Sandbox Code Playgroud)
我已经配置了 Nginx,它已经运行了一段时间。现在,我想添加一些自定义模块——比如说,上传进度模块。此模块的说明说要添加--add-module=path/to/nginx_uploadprogress_module到您的./configure命令中。但是,我没有从源代码安装 Nginx。
处理这种情况的最佳方法是什么?是否可以告诉 APT 从源代码编译并将选项传递给./configure?我可以在现有安装上编译吗?路径怎么样——我如何让它们匹配?还是我必须删除 APT 托管版本并重新开始?
从 ubuntu 的角度来看,如果我想查看将安装/升级的附加软件包,我可以使用 apt-get --simulate install <package name>
yum 有类似的东西吗?我们的 Red hat box (yum) 是我们的生产服务器,所以我想在我实际安装一些软件包之前确切地看看会发生什么。
真的找不到一个好的解决方案,有人建议:
yum --assumeno install <package name>
Run Code Online (Sandbox Code Playgroud)
但这又回来了:
Command line error: no such option: --assumeno
Run Code Online (Sandbox Code Playgroud)
百胜版本: 3.2.22
操作系统版本: Red Hat Enterprise Linux Server release 5.6 (Tikanga)
欢迎任何想法或建议。
是否有任何可用于 Vagrant 的“盒子”可供下载,它们与 Amazon EC2 实例可用的 Linux 版本和软件包密切相关?
我正在使用 Vagrant 进行本地测试,目前使用的是 Precise32 框。我正在使用“Amazon Linux AMI 2013.03”AMI 将我的代码部署到 Amazon EC2 实例。
我面临的问题是可在 Precise32 盒子上安装的软件包具有不同的名称,例如
虽然我可以通过使用 Puppet 配置文件中的变量来处理不同的包名称来解决这个问题,但这听起来有点像黑客。
那么是否有任何可用的 vagrant box 可以密切反映 Amazon EC2 环境。
或者我是否可以告诉一个 vagrant box 使用与 Amazon EC2 实例相同的包源?
澄清一件事 - 我想这样做的原因是我可以在本地进行测试,而不必先提交所有内容。尽管 Vagrant 支持 AWS 作为提供商,但这实际上并不能实现本地测试。
我的 ubuntu 服务器上的 Apache2 服务器有一些奇怪的问题。我相信某些配置文件可能已被篡改。从我的服务器中完全删除 apache2 的最简单方法是什么。我知道如何使用安装
sudo apt-get 安装 apache2
但是,我只想确保我完全删除了 apache2。
debian ×3
linux ×3
ubuntu ×3
apt ×2
yum ×2
amazon-ec2 ×1
ansible ×1
apache-2.2 ×1
aptitude ×1
dpkg ×1
nginx ×1
redhat ×1
repository ×1
rpm ×1
vagrant ×1