之前一直都是在 debian 上直接在线安装二进制软件,昨天编译了一下 nginx,发现了和在线安装 nginx 目录不一致的问题。
在线安装在会把二进制文件放在 /usr/sbin 里,配置文件都放在 /etc/nginx 里面。 自编译的默认会把二进制放在 /usr/local/sbin/nginx,配置文件放在 /usr/local/etc/nginx 里面
前几天发现 v 二 ray 也改了目录层次,也是放在 /usr/local 里面。
自编译的目录是怎么存放的?谢谢!
1
westoy 2020-10-09 09:01:19 +08:00
我一般是放 /opt 的, /usr 侵入性太大, /usr/local 碰到一些三方执行命令不写全路径只从 PATH 里找碰到版本不一样行为不一致的也有可能出幺蛾子. 官方包是做过测试的, 自己系统跑东西变量太多了.
|
2
whenov 2020-10-09 09:08:40 +08:00 via iPhone
一般用./configure —prefix=your_path 来修改安装目录。我一般是安装在单独的目录比如 /opt/nginx 下,这样想卸载的话直接删除目录就行,缺点是需要修改$PATH
|
3
iamwho 2020-10-09 09:30:10 +08:00
|
4
jaynos 2020-10-09 10:48:09 +08:00 1
自己编译的东西习惯全放到 /usr/local/xxx 里,比如 nginx 的主目录就是 /usr/local/nginx,然后配置文件在 /usr/local/nginx/conf,然后直接 ln 二进制到 /usr/local/bin 里,优点是想删除直接删整个目录就好,没什么残留
|
6
msg7086 2020-10-09 14:05:58 +08:00
目录不一致是因为你没有按照官方打包的参数去编译啊。
你去 Debian 官方把代码签出来编译成软件包的话,安装以后也是相同的目录。 https://salsa.debian.org/nginx-team/nginx/-/tree/buster 都用发行版了,那就用好包管理,不要去徒手编译安装。 你这么装完了,以后发现漏洞了你都不知道自己是不是编译了有漏洞的版本。 只有特别简单的小程序,自己编译是可以的。(比如自己写的小工具。) 凡是大点的软件,都是推荐写个打包脚本打成 deb 包。 像 nginx 这种对外的服务,更不推荐 make install 一把梭了。 |