我从源代码安装NGinx,因为从Ubuntu的软件包是相当古老的。 我想知道什么是最好的方法来升级这些types的安装?
我目前的工作stream程涉及
有些事告诉我这不是最好的路线。
build议?
你是对的,认为这不是最好的路线。 这条路线需要很多手动步骤,而且很容易出错,而且不能很好地扩展。
在使用Linux发行版时,应该尽可能地坚持包pipe理。
使用包pipe理的优点:
当你开始从源头开始工作时,你将失去所有这些强大的function,事情开始变得非常快速。
为了解决你的特定问题,你应该检查出ubuntu的后台仓库 ,也许他们有一个可以使用的NGinx的更新版本。
如果他们没有合适的版本,那么最好的解决scheme就是自己创build一个backported的ubuntu软件包。 这确实不是那么难,而且每次手动编译源代码都不是那么容易。 反向移植要求,基本上,从Ubuntu的源代码包,取代旧的upsteam tar.gz文件与最新的一个,你想要的,并重build包。
您可以使用本指南来帮助您恢复软件包。
我发现在不同的位置安装不同的版本非常方便,只需要符合你想要使用的版本,如:
lrwxr-xr-x 1 root wheel 7B Jun 7 18:26 /usr/local/foo -> foo-1.0 drwxr-xr-x 2 root wheel 512B Jun 7 18:26 /usr/local/foo-1.0 drwxr-xr-x 2 root wheel 512B Jun 7 18:26 /usr/local/foo-1.1
好处是:
/usr/local/foo/bin/bar 当然,您仍然需要重新应用您对之前版本所做的任何configuration更改,但是您可以使用一些版本控制系统(RCS / SVN / GIT)或configurationpipe理工具(如Bcfg2) 。
而且,当然这只适用于less数几个主机。
下一次…如何编译成* .rpm或* .deb?
如果你打算在一台机器上安装它,那么每次从源代码安装都是问题最好的方法。 如果你打算在几台机器上安装这个软件,并且要确保它是一致的,那么可能值得学习如何制作Debian软件包。 你可以使用Ubuntu中的包装作为基础。
没有一个好方法。 有效的包pipe理创build的原因是为了解决这个问题。 升级和卸载源代码编译的东西很难。
我同意汤姆和大卫。
如果这是一次性案例,那么从源头重新编译可能是您最好的select。 如果它位于一系列机器上,那么现在是转向受支持的软件包pipe理的时候了。
恐怕这是唯一的方法。 如果你有更多的服务器需要维护 – 考虑在你编译的地方有独立的testing环境,并可能打包你的编译结果。
这将稍微标准化您的设置,并在多台服务器上轻松部署。 你也不需要生产机器上的gcc [很多人会认为这是安全的好处]。