![将 Go 的二进制发行版复制到“/usr/local/”是一个好习惯吗?](https://linux22.com/image/90792/%E5%B0%86%20Go%20%E7%9A%84%E4%BA%8C%E8%BF%9B%E5%88%B6%E5%8F%91%E8%A1%8C%E7%89%88%E5%A4%8D%E5%88%B6%E5%88%B0%E2%80%9C%2Fusr%2Flocal%2F%E2%80%9D%E6%98%AF%E4%B8%80%E4%B8%AA%E5%A5%BD%E4%B9%A0%E6%83%AF%E5%90%97%EF%BC%9F%20.png)
从 Go 的安装网页,
下载存档并将其解压到 /usr/local 中,在 /usr/local/go 中创建 Go 树。例如:
tar -C /usr/local -xzf go$VERSION.$OS-$ARCH.tar.gz
选择适合您的安装的存档文件。例如,如果您要在 Linux 上安装适用于 64 位 x86 的 Go 版本 1.2.1,则所需的存档名为 go1.2.1.linux-amd64.tar.gz。
(通常这些命令必须以 root 身份或通过 sudo 运行。)
将 /usr/local/go/bin 添加到 PATH 环境变量中。您可以通过将此行添加到 /etc/profile (对于系统范围的安装)或 $HOME/.profile 来完成此操作:
export PATH=$PATH:/usr/local/go/bin
我的目录层次结构/usr/local
是
$ ls /usr/local/
bin etc games include lib man sbin share src texlive
提取的 Go 二进制分布是否适合/usr/local
?将 Go 的二进制发行版复制到 中是一个好习惯吗/usr/local/
?
如果没有,您对将其放置在哪里有什么建议?/opt
我的主目录是一个更好的地方吗?
谢谢。
答案1
我的建议是不是按照 Go 语言网站上的安装说明进行操作。
相反,安装适合您的发行版的软件包。
例如,Debian 打包了 golang 1.6.1,以及数百个 Go 库。
Ubuntu 也有 1.6.1。 http://packages.ubuntu.com/xenial/devel/golang
apt-get install golang
将安装编译器、文档和 golang 源代码。
apt-cache show -n golang
会给你一个包名中带有“golang”的所有其他包的列表 - 乍一看,远没有 Debian 那么多。
如果你确实必须自己编译和安装它,你至少应该使用checkinstall
:
CheckInstall 跟踪安装脚本(“make install”、“make install_modules”、“setup”等)创建或修改的所有文件,构建标准二进制包并将其安装在您的系统中,使您能够卸载它使用您的发行版的标准包管理实用程序。
将它用于您编译的任何 Go 库。
答案2
答案3
遵循安装说明通常是良好的做法。
我认为将 Go 的东西保留在 . 下听起来是个好主意/usr/local/go
。这样,您可以在更新之前轻松删除整个安装,只需删除该目录层次结构即可。
只要您向shell 变量添加适当的路径,就没有什么可以阻止您将其放入/opt
as/opt/go
或 in/sw
或或 任何您想要的位置。$HOME/local
PATH
软件在下面创建自己的层次结构并非闻所未闻/usr/local
。在某些 BSD 系统上,安装 GNUcoreutils
将创建/usr/local/gnu
诸如gls
、gcp
等grm
(带有前缀的普通实用程序g
)作为从/usr/local/bin
到 的符号链接/usr/local/gnu/bin
。