运维开发网

centos6 – 安装必须在CentOS服务器上自行编译的软件包是不好的做法?

运维开发网 https://www.qedev.com 2020-05-10 11:58 出处:网络 作者:运维开发网整理
我有一台CentOS 6服务器正在生产中,实际上正在托管一些网站.我现在应该安装在
我有一台CentOS 6服务器正在生产中,实际上正在托管一些网站.我现在应该安装在 Ruby上运行的Redmine. remi / ephel存储库给了我Ruby 1.8.7,但我想使用最新版本(1.9).问题是我应该自己编译和安装它,下载源代码以及使gems工作所需的所有其他开发包,例如mysql-devel for mysql2 adapter.在生产机器中安装dev-packages是不好的做法?安全性会受到损害吗?我应该坚持使用存储库提供的默认包吗? 最好从供应商处继续使用包管理系统.

也就是说,如果您需要更新版本的软件,至少尝试使用软件包而不是通过make安装;制作.

对于Ruby 1.9.3,有人制作了一个spec文件:

https://github.com/imeyer/ruby-1.9.3-rpm

您应该能够使用它来为Ruby 1.9.3制作RPM,并以这种方式安装.如果没有别的,它将使更新更容易(即rpm -Uhv ruby​​-1.9.3而不是make; make install).当然,当你发布更新时,你仍然有责任为自己生成新的Ruby 1.9软件包.

通常,存在安装软件的优先级层次.

>供应商存储库提供的软件.在这种情况下,您将使用友好的友好管理系统来安装和更新供应商维护的包(例如,yum,apt-get).

>通过第三方存储库提供的软件.这里应该有一个小型层次结构,你可以在那里拥有信誉良好的存储库(例如,针对CentOS的EPEL),而不是那些(例如,某些人在Ubuntu上的PPA;我不是说人们试图通过它安装特洛伊木马PPA,更多的是这通常是某些人可能没有维护包,或者可能没有寻找兼容性问题的人提供的东西.

>通过您自己构建的软件包安装的软件.这是前面提到的spec文件将落在哪里.您将构建过程包装在您的发行版的软件包系统中,因此安装和升级很容易(例如,rpm -e,而不是通过/usr/local搜索加密命名的文件).随着更新的出现,您将承担构建新软件包的责任.

>没有包管理安装的软件.这是经典的wget software.tgz; tar xzvf software.tgz; cd软件; ./配置 ;制作make install.通常,你会在/usr/local遍布文件;可能很难获得有关软件的信息(即,您可以简单地运行rpm -q或rpm -ql),并且很难删除.这应该是最后的手段.

我认为3左右的地方是Alex提到的rvm方法.它不是真正的系统包,但有一个围绕Ruby安装的框架.使用Ruby,在RVM上下文中,与特定Ruby相关联的gem将通过gem install安装并在特定框架中进行管理,尽管不是OS的包管理系统.

0

上一篇:

:下一篇

精彩评论

暂无评论...
验证码 换一张
取 消