标签: apt

我应该使用 Ubuntu 的存储库还是 MongoDB 的私有存储库安装 MongoDB?

我正在阅读 MongoDB 安装说明,并注意到他们有一个私有存储库,说明告诉您添加。我想知道这是否真的需要,因为 MongoDB 也在 Ubuntu 存储库(Ubuntu 12.04)中。我在想,与 Ubuntu 相比,他们发布到自己的仓库可能更容易吗?但我真的不确定。只是想知道是否有人可以对此有所了解。

ubuntu mongodb apt

5
推荐指数
1
解决办法
889
查看次数

防止在 Ubuntu 中卸载软件包

所以,在aptitude今天意外的胖手指之后,它想卸载mysql-server,这是在我们的数据库服务器上。既然是一堆文字,我就直接按Y,盲目相信自己不会做任何疯狂的事情。它继续在我们的数据库服务器上卸载了我们的 mysql。

所以,为了防止这种情况再次发生,无论如何我可以设置 apt/dpkg/aptitude/etc. 永远不要删除某个包?

理想的解决方案是在某处列出包的文件,并且这些包都无法使用标准工具卸载。您必须编辑该文件才能卸载该软件包。有点“防止愚蠢的系统管理员的额外步骤”?

我试过了aptitude hold mysql-server,然后aptitude remove mysql-server,但是aptitude愉快地删除了mysql

ubuntu debian uninstall apt

5
推荐指数
1
解决办法
1506
查看次数

为什么签名的 deb 包在复制到我的私人 deb 存储库时说它们没有经过身份验证?

快速版

我已经建立了一个私有 deb 存储库并将一些签名的 deb 包复制到其中。我已经在本地安装了签名密钥。但是,当我尝试从 repo 安装时,我收到此警告:

WARNING: The following packages cannot be authenticated!
Run Code Online (Sandbox Code Playgroud)

手动安装时,我可以按,y但我想使用 puppet 自动安装这些包,但失败了。

所以有什么问题?我是否需要使用我控制的密钥退出软件包?有没有更好的方法来确保我安装了特定版本的 puppet?

更多细节

我从puppet debian 存储库中获得了软件包- http://apt.puppetlabs.com/我只是从(对于 lucid)这个目录中复制了软件包

然后使用脚本更新存储库,该脚本为每个存储库运行这些命令:

cd /var/www/html/apt/ubuntu/lucid
dpkg-scanpackages binary /dev/null | gzip -9c > binary/Packages.gz
dpkg-scansources sources /dev/null | gzip -9c > sources/Sources.gz
Run Code Online (Sandbox Code Playgroud)

我已经在客户端上安装了签名密钥。

$ sudo apt-key list
/etc/apt/trusted.gpg
--------------------
...
pub   4096R/4BD6EC30 2010-07-10 [expires: 2016-07-08]
uid                  Puppet Labs Release Key (Puppet Labs Release Key) <info@puppetlabs.com>
...
Run Code Online (Sandbox Code Playgroud)

这样做的理由是我希望所有的 puppet 客户端都是相同的版本。因此,所有机器都应该使用以下 pin …

puppet repository deb apt

5
推荐指数
1
解决办法
1071
查看次数

Ubuntu 列出相关安全建议

如果我想了解 redhat/centos 服务器上有哪些安全更新以及相应的安全公告,我可以运行以下命令:

yum --security list-security
Run Code Online (Sandbox Code Playgroud)

这将包括以下数据:

RHSA-2013:0132 security autofs-1:5.0.1-0.rc2.177.el5.x86_64
RHSA-2013:0131 security gnome-vfs2-2.16.2-10.el5.x86_64
RHSA-2013:0135 security gtk2-2.10.4-29.el5.i386
RHSA-2013:0130 security httpd-2.2.3-74.el5.x86_64
RHSA-2012:1590 security libtiff-3.8.2-18.el5_8.i386
RHSA-2013:0120 security quota-1:3.13-8.el5.x86_64
RHSA-2013:0129 security ruby-1.8.5-27.el5.x86_64
RHSA-2013:0129 security ruby-libs-1.8.5-27.el5.x86_64
RHSA-2013:0122 security tcl-8.4.13-6.el5.x86_64
Run Code Online (Sandbox Code Playgroud)

这样我不仅可以知道需要更新哪些软件包,如果需要,我还可以通过查找 RHSA 详细了解安全风险。基本的,非常方便的信息。

我能在 ubuntu 上找到的最接近的是:

sudo apt-get upgrade -s| grep ^Inst |grep -i security
Run Code Online (Sandbox Code Playgroud)

不幸的是,这仅向我表明需要安装安全包。

是否有一种本地方式来查找相关的安全建议?原生,我的意思是不必使用第三方包。

security ubuntu debian apt

5
推荐指数
1
解决办法
196
查看次数

Debian apt-get 更新不起作用

我有一台 Debian 机器 ( Linux debian 2.6.32-5-amd64 #1 SMP Fri Feb 15 15:39:52 UTC 2013 x86_64 GNU/Linux) 在 NAT 后面运行,其中有几个端口转发给 SSH 和 Web。我可以很好地访问网络,也可以很好地进行 DNS 查找。

我的 sources.list 的内容

deb http://ftp.br.debian.org/debian squeeze main
deb-src http://ftp.br.debian.org/debian squeeze main

deb http://ftp.br.debian.org/debian squeeze-updates main
deb-src http://ftp.br.debian.org/debian squeeze-updates main

deb http://security.debian.org/ squeeze/updates main
deb-src http://security.debian.org/ squeeze/updates main
Run Code Online (Sandbox Code Playgroud)

当我尝试 apt-get update 时,我得到以下信息

Ign http://security.debian.org squeeze/updates Release.gpg
Ign http://security.debian.org/ squeeze/updates/main Translation-en
Ign http://security.debian.org/ squeeze/updates/main Translation-en_GB
Ign http://security.debian.org squeeze/updates Release
Err http://security.debian.org squeeze/updates/main Sources
404  Not Found …
Run Code Online (Sandbox Code Playgroud)

debian apt

5
推荐指数
2
解决办法
2万
查看次数

配置apt在vagrant box中使用代理

我正在使用 Vagrant 设置虚拟机进行测试。我希望虚拟机内部的 apt 可以在主机上使用代理,以允许缓存所有下载内容在运行的虚拟机实例之间持续存在,不仅是为了提高速度,而且还允许我在启动 vagrant 实例时启动没有网络连接。

我已经设置了正在运行的代理,我想我已经告诉 apt 通过在 Vagrant 脚本中设置它来使用它:

config.vm.provision :shell, :inline => 'echo \'Acquire { Retries "0"; HTTP { Proxy "http://10.0.2.2:3128"; }; };\' >> /etc/apt/apt.conf'
config.vm.provision :shell, :inline => 'echo \'Acquire { Retries "0"; FTP { Proxy "ftp://10.0.2.2:3128"; }; };\' >> /etc/apt/apt.conf'
config.vm.provision :shell, :inline => 'echo \'Acquire { Retries "0"; HTTPS { Proxy "https://10.0.2.2:3128"; }; };\' >> /etc/apt/apt.conf'
Run Code Online (Sandbox Code Playgroud)

它正在部分工作,即当我的 wifi 连接被禁用但 Squid 正在运行并且它的缓存中有一些条目时,对源的初始请求命中缓存并工作。我还可以从 Squids 日志文件中看到一些击中 Squid 的请求:

1367492453.816     34 127.0.0.1 TCP_REFRESH_MODIFIED/200 592 GET http://security.ubuntu.com/ubuntu/dists/precise-security/Release.gpg - …
Run Code Online (Sandbox Code Playgroud)

proxy squid apt vagrant

5
推荐指数
2
解决办法
4928
查看次数

在 Debian 机器上审计文件

是否可以列出系统上不属于包的每个文件?或者如果它们已被修改?

可能需要使用类似的东西:apt-get、apt-files、dpkg-query 等

对于上下文,想象一下继承一个无法格式化的旧服务器,并且您想检查每个文件是否应该是这样......我知道在 Debian 版本之间升级或删除后不会出现这种情况一个没有“--purge”的包,因为它似乎留下了很多(通常是配置)文件。

同样,如果要用新服务器替换该服务器,您需要确保所有配置差异(与基本安装相比)都已转移(如果不再相关,则将其忽略 - 例如添加了胭脂“端口”行到 sshd_config)。

它还有助于确定是否在不使用 apt-get 的情况下安装了任何东西。

ubuntu debian audit apt

5
推荐指数
1
解决办法
866
查看次数

在 Ubuntu 上强制执行 apt-get 版本连续性

我如何确保当我在不同时间在 2 个不同的服务器上运行 apt-get update 和 apt-get upgrade 时,我将获得相同的软件包?我如何自动/强制执行此操作?

我目前正在查看的(简化)用例是,如果我将开发实例上的所有内容都升级到最新版本,并针对它测试我的所有自定义软件,这需要一两天时间。当我运行更新/升级时生产机器,我只想升级到我以前测试过的版本。这将允许我建立一个流程来比目前更快更安全地迭代更新的补丁。

理想情况下,我喜欢在第一次升级时使用时间戳,然后在后续升级中强制执行更新到该时间戳。(但任何其他建议都会很棒)

我已经考虑过研究一些选项,但我不确定它们是否有希望,并且它们需要一些工程时间,并且很好奇是否有更简单的方法来做到这一点。

1) 创建某种本地 apt 存储库来缓存版本。该存储库可以为第一次拉取所有最新版本,然后仅在随后查询时返回那些。

2) 看看 ansible/chef 之类的配置管理工具是否可以捕获在第一次拉取时更新的所有版本,然后强制第二次拉取这些确切版本。

谢谢。

ubuntu apt

5
推荐指数
1
解决办法
225
查看次数

Puppet:如何在包升级期间跳过重启直到配置被替换?

我正在尝试让 Puppet 将我们的 Varnish 3 服务器升级到 Varnish 4,这是一个需要更新配置文件的重大更新,否则它将无法启动。这是在 Ubuntu 12.04 上。

Varnish 模块基本上是用这些类和依赖项构建的:

Class['varnish::repo']
-> Class['varnish::install']
-> Class['varnish::tools']
-> Class['varnish::config']
~> Class['varnish::service']
Run Code Online (Sandbox Code Playgroud)

我已经更新了APT-回购网址varnish::repo,设置ensure=>latestvarnish::install并提供了一个更新的配置文件varnish::config。到现在为止还挺好。

当 Puppet 运行这些依赖项时,运行会在该varnish::install阶段失败,因为 Apt 会在升级 Varnish 守护进程后立即尝试重新启动它,而没有给 Puppet 替换配置文件的机会。类中的失败varnish::install会导致依赖链中断,并导致其余类也失败。结果是损坏的 Varnish 安装需要手动恢复。

你如何处理这个问题?

我考虑过使用policy-rc.d,它本质上是告诉 Apt 不要执行服务的自动停止和启动。我尝试在升级之前创建文件并在升级之后将其删除。

file {'/usr/sbin/policy-rc.d':
    ensure  => $ensure,
    content => "#!/bin/sh\nexit 101",
    owner   => 'root',
    group   => 'root',
    mode    => '0755',
}
Run Code Online (Sandbox Code Playgroud)

当然创建删除是一个问题,因为 Puppet 将其视为重复资源。

你问我为什么要在安装后再次删除该策略?因为我们过去常常unattended-upgrades执行较小的安全升级,而我希望在这些情况下允许 …

ubuntu varnish puppet apt

5
推荐指数
1
解决办法
497
查看次数

无法在 nginx 1.7.9 上 apt-get install nginx-extras 包

我正在尝试按照乘客网站上的本指南在开发 Ubuntu 机器上为 nginx 安装 Phusion Passenger

我已经安装并运行了 Nginx,版本是 1.7.9-1~trusty。

我正在尝试遵循先决条件:apt-get install nginx-extras并且失败并显示错误消息:

Unpacking nginx-common (1:1.6.2-2.4.0.56~trusty1) ...
dpkg: error processing archive
/var/cache/apt/archives/nginx-common_1%3a1.6.2-2.4.0.56~trusty1_all.deb (--unpack):
  trying to overwrite '/usr/share/nginx/html/index.html', 
  which is also in package nginx 1.7.9-1~trusty
Preparing to unpack .../nginx-extras_1%3a1.6.2-2.4.0.56~trusty1_amd64.deb ...
Unpacking nginx-extras (1:1.6.2-2.4.0.56~trusty1) ...
dpkg: error processing archive 
/var/cache/apt/archives/nginx-extras_1%3a1.6.2-2.4.0.56~trusty1_amd64.deb (--unpack):
  trying to overwrite '/usr/sbin/nginx',
  which is also in package nginx 1.7.9-1~trusty
dpkg-deb: error: subprocess paste was killed by signal (Broken pipe)
Errors were encountered while processing: …
Run Code Online (Sandbox Code Playgroud)

nginx aptitude phusion-passenger apt

5
推荐指数
0
解决办法
3378
查看次数