Questions tagged «package-management»

使用预先准备的软件包在操作系统中安装,删除和更新软件配置的过程。


4
代理软件包存储库的最佳实践
我的公司网络中有一些CentOS服务器。出于安全原因,除非服务器是服务器的核心功能要求,否则大多数服务器都不具有常规的出站Internet访问权限。 当我需要更新软件包时,这会带来挑战。对于yum存储库,我目前从Internet镜像所有需要的存储库,并使这些镜像在Intranet内部可用。我在以下五个环境中的每个环境中保留每个回购的副本:开发,质量保证,登台和两个生产数据中心。 我目前不解决特定于语言的软件包存储库。当服务器需要rubygems,PyPI,PECL,CPAN或npm的更新时,它们必须获得临时出站Internet访问以获取软件包。我被要求开始镜像rubygems和PyPI,其余的可能会跟随。 所有这些都是笨拙的,不能很好地工作。我想用一个环境中的单个缓存代理和其他环境中的四个菊花链代理替换它,以消除完整镜像的复杂性和磁盘开销。另外: 它可以是正向或反向代理。每个程序包管理器都支持代理服务器或自定义存储库终结点,它们可以是本地镜像或反向代理。 它需要精细的访问控制,因此我可以限制哪些客户端IP可以连接到哪些存储库域。 客户端需要能够跟随重定向到未知域。您最初的请求可能仅限于rubygems.org,但是如果该服务器将302返回给随机CDN,则您应该可以遵循它。 它应该支持HTTPS后端。我不一定需要模拟其他SSL服务器,但是我应该能够通过HTTP重新公开HTTPS站点,或者终止并使用其他证书重新加密。 我最初查看反向代理,而Varnish似乎是唯一允许我内部解析代理中的302重定向的代理。但是,免费版本的Varnish不支持HTTPS后端。我现在正在评估Squid作为前向代理选项。 在企业网络中,这似乎应该是一个相对普遍的问题,但是我很难找到其他人如何解决此问题的示例。有没有人实施过类似的方法或对如何做到最好有想法? 谢谢!

7
FLOSS服务器管理和审核工具
已锁定。该问题及其答案被锁定,因为该问题是题外话,但具有历史意义。它目前不接受新的答案或互动。 我使用HP的服务器自动化工具套件已经很长时间了,虽然它是一个很棒的工具-小型企业或家庭网络的使用量太大了(更准确地说:对于任何一家大公司来说,这太昂贵了负担)。 我对Puppet和OpenNMS的配置和监视有些熟悉。但是,在搜寻其他信息之后,似乎没有足够成熟的管理工具可以使用很多方式来维护它们。 是否有用于管理的其他FLOSS工具(商业上支持的罚款): 服务器配置 补丁控制 软件包推送 等等 扩张 与本机配置的集成很好(kickstart,jumpstart,autoyast,unattend.txt,winpe等) 某种GUI可能很好,但不是必需的。 我希望能够设置(例如)操作系统配置文件,并将其运送到X多个设备,最好使用在主机名,IP等过程中会填写的字段 基于代理的情况比基于非代理的情况要好(即,我知道我可以使用pssh之类的东西来进行程序包和补丁程序管理,但是与代理/证书身份验证相比,它需要预共享的密钥) 能够绑定到Nagios,OpenNMS或类似产品将是很棒的-因此,已知的端口,进程和SNMP数据将非常有用 虚拟化支持确实会有所帮助-但我无法创建虚拟机,只能填充/配置它 如果对这个问题的回答是“解决方案的一部分是一堆工具”,那么我愿意为自己使用构建某种包装器。

4
从源代码安装了软件,怎么说从软件包中不安装呢?
在CentOS 7上,我安装了从源代码编译的foob​​ar版本2。 我如何使yum知道该安装,以便它不会安装foob​​ar版本1以获得依赖关系? 安装foob​​ar $ git clone https://example.com/foobar.git [...] $ cd foobar $ make && sudo make install [...] $ foobar --version foobar v2 安装需要foob​​ar的软件包 $ sudo yum install baz [...] ---> Package baz.x86_64 0:3.14.15-9 will be installed --> Processing Dependency: foobar >= 1 for package: baz-3.14.15-9.x86_64 [...] Dependencies Resolved …

2
有关多个包装管理系统的良好实践
某些编程语言带有其自己的程序包管理系统,例如,对于R而言,内置install.packages命令从CRAN存储库安装并处理依赖项。 同时,OS带有自己的软件包管理系统,例如apt基于debian的Linux发行版的命令。 我已经决定最好使用发行版的软件包管理器,以确保系统上的所有内容都兼容(请参阅/programming//a/31293955/1878788)。 但是很快有一天,我需要用这种方式无法获得的东西。例如,我的发行版未打包的生物信息学程序将需要R的某些特定版本。碰巧该程序可通过名为“ bioconductor”的项目获得,该项目的目的是为生物信息学提供R软件包,以确保软件包将彼此兼容(请参阅https://www.bioconductor.org/install/#why-biocLite)。 因此,我决定不对R使用OS打包管理系统,biocLite而是通过bioconductor项目提供的命令安装所有内容。 这种方法运行了一段时间,直到我发现要维护连贯,健康且易于重建的生物信息学生态系统,有人决定使用conda软件包管理系统。这个名为“ bioconda”的项目不仅提供R包,而且还提供来自各种语言的内容,并且可以轻松切换版本,等等(请参阅https://bioconda.github.io/)。 然后,我决定改用这种方法,并且运行平稳,直到我需要由bioconda / conda未提供的R包为止。据说这非常容易,但是我制作conda包装的尝试失败了,然后我尝试使用生物导体方法安装该包装,但再次失败了。我的印象是,软件包构建机制在某种程度上使用了错误的R安装。因此,我决定删除我(仍然很年轻)的conda安装,然后回到我的生物导体生态系统。 我想知道从一种方法跳到另一种方法需要多长时间。是否有关于如何处理包装管理的多个,干扰和重叠级别的通用良好实践? 编辑(14/09/2017):我考虑的另一种选择是使用替代的OS级软件包管理器,例如Guix或Nix。

3
如何安装两个写入相同文件的软件包
我有两个软件包,每个软件包创建/ usr / bin / ffprobe。其中一个是来自Deb Multimedia存储库的ffmpeg,另一个是从源代码构建的ffmbc 0.7-rc5。手动滚动是至关重要的,并且我们曾经只是在需要时从源代码进行安装。我只能认为它会破坏ffmpeg文件,并且从来没有任何不良影响。 从理论上讲,我们的ffmbc包覆盖ffmpeg包中的文件应该是可以接受的。缺点是对ffmpeg的更新将覆盖ffmbc二进制文件。有什么简单的方法可以解决这个问题?

2
Debian / Ubuntu-删除后如何恢复/ var / cache / apt结构?
我在Ubuntu服务器上空间不足,因此执行了此命令以节省空间 sudo rm -rf /var/cache/apt/archives 但是现在尝试使用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 和类似的东西 Archive directory /var/cache/apt/archives/partial is missing. 显然,我已经删除了一些目录结构。有什么办法可以做一个apt-get rebuild-var-tree或类似的?

2
如何在不启动软件包相关服务的情况下安装软件包?
您可能已经知道,默认情况下,在基于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 有时,我会发现模板缺少软件包或需要其他更改,因此我将chroot放入其中以安装软件包。不幸的是,当我这样做时,我得到了运行包服务的多个副本! 举例来说,我发现模板没有syslog守护程序,因此我安装了一个: for template in /var/lib/libvirt/filesystems/{debian,ubuntu}*_template; do chroot $template apt-get install rsyslog done 并迅速结束运行rsyslog的四个副本。更不用说exim4的两个副本了。糟糕! 我读到某个地方(尽管现在找不到了),它不应该在chroot中运行时启动服务,但是显然这没有发生。 一个可能可行的讨厌的黑客呼吁暂时替换实际上启动服务的各种命令,例如start-stop-daemon和initctl,尽管这比我真正想做的工作要多得多。不过,如果我别无选择,... 对于基于Debian的系统,这里的理想解决方案是停止执行此操作,但是如果失败了,也许对于apt-get? 如果还不清楚,我真的想保持与管理模板任何事情外,如果可能的模板。




4
如何检查上一次运行yum更新的时间
有没有一种规范的方法可以找出yum update系统上次运行的时间? 我们的设置是,我们有运行自动更新的登台服务器,并且只要它们不会发生故障,我们将每月大约一次手动更新生产服务器(除非进行重要更新)。(我是手动说的,理想情况下,我想手动触发所有对象的更新,但这是另一个问题)。 但是您会很忙,任务延误等。因此,我想设置一个nagios检查,如果我们将其保留太久,它将开始困扰我们。 搜索网络还没到我的头。仔细研究一下系统,到目前为止我发现的最好的东西是: grep Updated /var/log/yum.log | tail -1 | cut -d' ' -f 1-2 这给了我类似的东西Mar 12,然后我可以将其转换为日期。关于日期是今年还是去年有一些小麻烦,我还需要检查一下/var/log/yum.log.1logrotate之后是否立即检查。但这只是脚本详细信息。 当然,可以通过更新单个软件包而不是常规更新来“欺骗”。 那么,还有什么更规范的方法可以查看yum update运行时间? 编辑:我现在编写了一个Nagios NRPE插件,该插件使用了我在问题中提出的想法。您可以从https://github.com/aptivate/check_yum_last_update获取它

5
如何在CentOS 5.7 64位上为PHP 5.3.3安装mcrypt?
我安装了php 5.3和一些模块 yum install php53-{module-name} 但是mcrypt无效。 我这样搜索: yum list php* | grep mcry 出现的唯一包裹是 php-mcrypt.x86-64 5.1.6-15.e15.centos.1 extras 我对mhash有同样的问题。php的结果更加令人困惑。 我知道这可能是一个愚蠢的问题,但任何帮助将不胜感激。我习惯了Ubuntu的简单“ apt-get install”,一切正常。CentOS似乎更注重细节。 谢谢。 编辑:这是我尝试的: yum install php53-mcrypt 结果: No package php53-mcrypt available 并尝试这样做: yum install php-mcrypt 结果是: Error: php53-common conflicts with php-common 因为php-mcrypt试图获取php-common作为依赖项(?),而我试图在CentOS 5.7上使用php 5.3而不是默认的php 5.1。


5
计算两个主机上安装的软件包之间的差异列表
我只是在Debian虚拟服务器上添加了一些问题,然后添加了从头开始重新安装所有这些问题。但是,我仍然可以访问旧版本,并且可以检索已安装软件包的列表。 为了便于将来还原虚拟服务器的过程,我想为我的每台服务器创建一个特定软件包的列表。 为了更好地解释我想要实现的目标。我已经有一个自动化的过程来创建一个新的虚拟服务器,并在各处使用一些基本的软件包和配置。现在,我想用此“骨架”保存增量,以简化特定服务器的重新安装。 一个真正的好处是还可以保存更改后的默认配置文件,但是我只能使用软件包列表。 简而言之,我想要一种方法来创建一个安装在主机上而不是另一个主机上的软件包的列表。 如果该列表仅包含手动安装的软件包,而不包含所有依赖项的列表,那将非常好。 如果您有一些旨在完成此特定任务的现有工具,请随时提出这些建议,但我想使依赖性尽可能小。有关信息,它们并非完全是虚拟服务器,而是LXC容器。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.