标签: package-management

保持 UNIX 软件包最新的最佳实践?

  • 您如何使服务器保持最新状态?
  • 当使用像Aptitude这样的包管理器时,你是否保留了升级/安装历史,如果是,你是怎么做的?
  • 在多台服务器上安装或升级软件包时,有什么方法可以尽可能加快进程?

unix package-management

30
推荐指数
3
解决办法
1574
查看次数

如何删除安装后和删除前脚本失败的包?

我对 openqrm 包有问题。

如何删除它?

root@wl183004:/# apt-get upgrade
Reading package lists... Done
Building dependency tree       
Reading state information... Done
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
1 not fully installed or removed.
After this operation, 0B of additional disk space will be used.
Do you want to continue [Y/n]? 
Setting up openqrm (4.6-ubuntu1) ...
.: 33: Can't open /usr/share/openqrm/etc/openqrm-server.conf
dpkg: error processing openqrm (--configure):
 subprocess installed post-installation script returned error exit status 2
Errors were encountered …
Run Code Online (Sandbox Code Playgroud)

package-management debian

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

如何使用 puppet 和 .deb 文件更新包

我试图找出使用来自本地源 deb 文件的 puppet 更新/升级 deb 包的正确方法。我当前的配置看起来像这样......

class adobe-air-2-0-4 {

  file { "/opt/air-debs":
    ensure => directory
  }

  file { "/opt/air-debs/adobeair-2.0.4.deb":
    owner   => root,
    group   => root,
    mode    => 644,
    ensure  => present,
    source  => "puppet://puppet/adobe-air-2-0-4/adobeair-2.0.4.deb"
  }

  package { "adobeair":
    provider => dpkg,
    ensure => installed,
    source => "/opt/air-debs/adobeair-2.0.4.deb"
  }

}
Run Code Online (Sandbox Code Playgroud)

我首先将 deb 文件复制到客户端计算机,然后使用“package”,提供程序设置为“dpkg”。这有效,我安装了正确的版本。

我的问题是将来更新此软件包的正确方法是什么。我可以简单地更改源文件,puppet 会知道它是一个不同的版本并更新这个包吗?puppet 如何确定它安装的软件包版本与源 deb 文件的版本?

我对 puppet 还很陌生,所以如果您对我现有的配置有任何改进建议,我们将不胜感激。

package-management debian update puppet dpkg

27
推荐指数
1
解决办法
3万
查看次数

yum 相当于“apt-get purge”

我想在 CentOS 上重新安装一个软件包并从头开始。在 Debian 中,我可以做一个apt-get purge foo,它会删除 foo 的所有配置文件。yum remove foo不会删除配置文件。有什么办法可以apt-get purge foo使用yum吗?

package-management redhat centos yum

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

如何查看 debian/ubuntu deb 软件包的更新日志?

我正在运行 Ubuntu,并且安装了一个 deb 文件。我以前制作过 deb 包,所以我知道有一个 debian 更改日志 (debchange)。无论如何,是否可以查看我已安装的任何软件包的 debian 更改日志?假设我无权访问此包的 deb 源文件,并且我没有可用的 deb 文件。如果需要,我可以安装额外的软件包。

package-management ubuntu debian deb apt

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

Windows 如何处理程序依赖关系?

我使用 Linux 已经有一段时间了,我一直想知道 Windows 是如何处理像apt-getaptitudePacmanyum和其他包管理器这样的程序依赖的。有时,我的包管理器会告诉我这个包需要这个版本的库,或者会有一些冲突。

Windows 如何处理所有这些东西?

windows package-management

23
推荐指数
4
解决办法
5623
查看次数

Debian/Ubuntu - 如何在删除后恢复 /var/cache/apt 结构?

我的 Ubuntu 服务器空间不足,所以我执行此命令以节省空间

sudo rm -rf /var/cache/apt/archives
Run Code Online (Sandbox Code Playgroud)

但是,现在尝试使用 apt 执行操作时,出现以下错误:

E: Could not open lock file /var/cache/apt/archives/lock - open (2 No such file or directory)

E: Unable to lock the download directory
Run Code Online (Sandbox Code Playgroud)

还有像

Archive directory /var/cache/apt/archives/partial is missing.
Run Code Online (Sandbox Code Playgroud)

显然我已经删除了一些目录结构。有没有办法做一个apt-get rebuild-var-tree或类似的?

package-management ubuntu debian apt

18
推荐指数
1
解决办法
3万
查看次数

代理包存储库的最佳实践

我的公司网络中有一组 CentOS 服务器。出于安全原因,大多数服务器没有通用的出站互联网访问权限,除非这是服务器的核心功能要求。

当我需要更新软件包时,这会带来挑战。对于 yum 存储库,我目前从 Internet 镜像所有需要的存储库,并使镜像在 Intranet 内可用。我在我们的五个环境中保存每个 repo 的副本:dev、QA、staging 和两个生产数据中心。

我目前不解决特定于语言的包存储库。当服务器需要从 ruby​​gems、PyPI、PECL、CPAN 或 npm 进行更新时,它们必须获得临时出站互联网访问权限以获取包。我被要求开始镜像 ruby​​gems 和 PyPI,其余的可能会跟进。

所有这些都很笨拙,而且效果不佳。我想用一个环境中的单个缓存代理和其他环境中的四个菊花链代理替换它,以消除完整镜像的复杂性和磁盘开销。此外:

  • 它可以是正向或反向代理;每个包管理器都支持代理服务器或自定义存储库端点,可以是本地镜像或反向代理。
  • 它需要精细的访问控制,因此我可以限制哪些客户端 IP 可以连接到哪些 repo 域。
  • 客户端需要能够跟随重定向到未知域。您的原始请求可能仅限于 ruby​​gems.org,但如果该服务器向随机 CDN 返回 302,您应该能够遵循它。
  • 它应该支持 HTTPS 后端。我不一定需要模拟其他 SSL 服务器,但我应该能够通过 HTTP 重新公开 HTTPS 站点,或者终止并使用不同的证书重新加密。

我最初正在研究反向代理,而 Varnish 似乎是唯一一种允许我在代理中内部解析 302 重定向的代理。但是,免费版 Varnish 不支持 HTTPS 后端。我现在正在评估 Squid 作为转发代理选项。

这似乎应该是企业网络中一个相对普遍的问题,但我很难找到其他人如何解决这个问题的例子。有没有人实施过类似的东西,或者对如何最好地这样做有想法?

谢谢!

package-management proxy squid varnish repository

17
推荐指数
3
解决办法
5551
查看次数

如何在不启动相关服务的情况下安装软件包?

您可能知道,默认情况下,当您在基于 Debian 或 Ubuntu 的系统上安装软件包时,如果软件包包含服务,则通常会在您安装软件包时启用并自动启动该服务。

这对我来说是个问题。

我发现自己需要管理用于构建 LXC 容器的模板。有几个容器,每个容器对应一个 Debian 或 Ubuntu 版本。(也有基于 Red Hat 的容器,但它们在这里不相关。)

/var/lib/libvirt/filesystems/debian6_template
/var/lib/libvirt/filesystems/debian7_template
/var/lib/libvirt/filesystems/ubuntu1004_template
/var/lib/libvirt/filesystems/ubuntu1204_template
Run Code Online (Sandbox Code Playgroud)

偶尔我会发现模板缺少包或需要一些其他更改,因此我将 chroot 到它们以安装包。不幸的是,当我这样做时,我最终会运行该软件包的服务的多个副本!

例如,我发现模板没有 syslog 守护进程,所以我安装了一个:

for template in /var/lib/libvirt/filesystems/{debian,ubuntu}*_template; do
    chroot $template apt-get install rsyslog
done
Run Code Online (Sandbox Code Playgroud)

并迅速结束了运行的 rsyslog 的四个副本。更不用说exim4的两个副本了。哎呀!


我在某处读到(虽然我现在找不到了)它不应该在 chroot 中运行时启动服务,但这显然不会在这里发生。

一个潜在可行的讨厌的 hack要求临时替换实际启动服务的各种命令,例如start-stop-daemoninitctl,尽管这比我真正想做的工作要多得多。如果我别无选择,虽然...

这里的理想解决方案是让基于 Debian 的系统停止做这种废话,但如果失败,可能是apt-get?

如果不清楚,如果可能的话,我真的希望在模板之外保留与管理模板相关的任何内容。

package-management ubuntu debian

16
推荐指数
2
解决办法
9708
查看次数

Alpine 的 APK 代表什么?

Alpine Linuxapk用作它的包管理器,它的安装程序文件是.apk……就像 Android 文件一样。

这些有什么关系吗?如果是,如何?
如果不是,APK 代表什么(Alpine PacKage?),为什么他们为他们的包管理器选择相同的名称,因为这听起来可能令人困惑?网络上没有关于经理姓名的信息。

package-management alpine

16
推荐指数
2
解决办法
4063
查看次数

标签 统计

package-management ×10

debian ×5

ubuntu ×3

apt ×2

alpine ×1

centos ×1

deb ×1

dpkg ×1

proxy ×1

puppet ×1

redhat ×1

repository ×1

squid ×1

unix ×1

update ×1

varnish ×1

windows ×1

yum ×1