Ubuntu下安装和配置golang(包括升级)
作者:系统库人气:一.安装
这里以安装golang1.9为例:
1.首先通过命令行直接安装
sudo apt-get install golang-1.9
2.下载好之后,查看go的版本
catik@catik-Aspire-V3-471:~$ go version
go version go1.9.2 linux/amd64
可以看得出,这里的版本是go1.9.2。
二.环境配置
1.查看环境变量:
catik@catik-Aspire-V3-471:~$ go env
GOARCH=”amd64”
GOBIN=””
GOEXE=””
GOHOSTARCH=”amd64”
GOHOSTOS=”linux”
GOOS=”linux”
GOPATH=”/home/catik/godownload/”
GORACE=””
GOROOT=”/usr/lib/go”
GOTOOLDIR=”/usr/lib/go/pkg/tool/linux_amd64”
GCCGO=”gccgo”
CC=”gcc”
GOGCCFLAGS=”-fPIC -m64 -pthread -fmessage-length=0 -fdebug-prefix-map=/tmp/go-build504408127=/tmp/go-build -gno-record-gcc-switches”
CXX=”g++”
CGO_ENABLED=”1”
CGO_CFLAGS=”-g -O2”
CGO_CPPFLAGS=””
CGO_CXXFLAGS=”-g -O2”
CGO_FFLAGS=”-g -O2”
CGO_LDFLAGS=”-g -O2”
PKG_CONFIG=”pkg-config
这里几个比较关键的变量 GOPATH 和GOROOT
GOPATH是go get指令默认下载和安装包的位置,通过go get指令,获取go的包,默认下载到GOPATH所指示的目录中.
GOROOT是go安装的位置,也是go可执行文件的位置,也就是说,当我们命令行中打出go的指令时,系统能不能准确调用go的可执行文件
这里GOROOT=”/usr/lib/go”
通过以下命令
cd /usr/lib/go
ls
就可以看到
catik@catik-Aspire-V3-471:/usr/lib/go$ ls
bin doc favicon.ico.gz go pkg src test VERSION
bin中存的就是go的可执行文件了,我们可以试一下:
catik@catik-Aspire-V3-471:/usr/lib/go/bin$ ./go version
go version go1.9.2 linux/amd64
这与我们在命令行中直接输入go是一样的
2.配置环境变量
默认的时候,GOPATH是没有配置好的,那么我们怎么修改这些环境变量呢
首先,我们可以按照自己的意愿,在一个位置建一个文件夹,比如
mkdir /home/catik/GoDownload
然后,配置环境变量有三个方法:
1]:最根本的方法就是修改/etc/profile文件
sudo gedit /etc/profile
注意这里必须要sudo,因为系统目录下的文档不允许任意修改的
在最后添加export GOPATH=/home/catik/GoDownload
这个办法修改是对所有的用户都生效的,修改之后要重启就会另修改生效
2]:这个办法也可以,修改用户目录下的.profile文件
比如这里是/home/catik/.profile
通过gedit /home/catik/.profile打开之后就能修改了
修改的方法跟第一种是一样的,就是再最后添加
export GOPATH=/home/catik/GoDownload
3]:临时性的起作用,只有本次生效,当你关闭terminal之后,不再生效
直接在命令行中
catik@catik-Aspire-V3-471:~$ export GOPATH=/home/catik/GoDownload
升级系统的golang
如果你的电脑中已经安装了golang,但是,并不是最新版的,那么把你的电脑中的golang升级到最新的版本呢
比如原来安装的是go1.6,最新的版本为go1.9
首先卸载电脑中的老版本
sudo apt-get remove golang-1.6
然后安装最新版的
sudo apt-get install golang-1.9
等待安装好之后,发现
go version
version 还是1.6,竟然不管用?重启电脑,还是这样,那么问题出在哪里了呢
我们循着GOROOT的地方去看看
catik@catik-Aspire-V3-471: cd /usr/lib/go
catik@catik-Aspire-V3-471: ls
bin doc favicon.ico.gz go pkg src test VERSION
catik@catik-Aspire-V3-471: cat VERSION
go1.6
这样我们就看出来了原来这里的go还是原来的可执行文件,原来卸载之后并没有把这里的文件卸载干净,这里的可执行文件也没有变。
所以我们把1.9版本的go的文件复制到这里来,顺便说一句,原来的这个go文件夹是一个硬链接,连接的目标是原来的go-1.6文件夹,当我们安装好go-1.9之后,这两个文件夹同时存在,这里我们需要把go-1.6删除
sudo rm go-1.6 -r
把原来的链接文件也删除
sudo rm go -r
建一个新的go文件夹
sudo mkdir go
把go-1.9中的全部文件复制过去
sudo cp ./go-1.9/* ./go
再次查看go的版本
go version
go-1.9.2
问题顺利解决。
CPU漏洞修复补丁导致Ubuntu 16.04机器无法启动,附修复方案
有 Ubuntu 16.04 用户反映,他们为接收到 Meltdown 和 Spectre 修复补丁的系统进行更新后,发现无法启动系统,并被迫回滚到使用早期的 Linux 内核。
在 Ubuntu 社区中,我们能看到有大量用户反映了这个问题。目前发现只有使用 Xenial 16.04 系列的 Ubuntu 用户才会受到影响。
所有报告这个问题的用户都表示,升级到内核版本为 4.4.0-108 的 Ubuntu 16.04 后无法启动系统。
Ubuntu 背后的公司 Canonical 于 1 月 9 日部署了 Linux 内核镜像 4.4.0-108,以作为 Ubuntu Xenial 16.04 用户安全更新的一部分。根据 Ubuntu 安全通告 USN-3522-1 和 Ubuntu Wiki 页面,这是提供 Meltdown 和 Spectre 修复补丁的更新。
Canonical 发言人暂未对此问题发表评论,但截至发稿前,看到他们发布了使用 Linux kernel image 4.4.0-109 的两个新的 Ubuntu 16.04 更新[1, 2]。
此前报告出现问题的部分用户表示,新的内核构建工作正常。不过除了升级到最新版本,回滚到使用 4.4.0-104 内核也能修复启动失败的问题。
用户尽快升级即可解决问题
Canonical在安全通告上写道:“USN-3522-1修复了Linux内核访问Meltdown(CVE-2017-5754)的漏洞。不过令人感到遗憾的是,本次更新导致少数系统无法正常启动。最新发布的更新已经修复了这个问题。对于给用户造成的不便,我们深表歉意。”
在ubuntu16.04系统下获取glibc的版本号
我的环境是ubuntu16.04系统。
glibc官网
方法一、一般来说,涉及到库调用的程序,在链接时候都会链接到glibc,所以,可以用ldd命令来查看:
ghostwu@ubuntu:~/c_program/linux_unix/chapter4$ ldd ./pwd | grep libc
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f7c45491000)
ghostwu@ubuntu:~/c_program/linux_unix/chapter4$ /lib/x86_64-linux-gnu/libc.so.6
GNU C Library (Ubuntu GLIBC 2.23-0ubuntu9) stable release version 2.23, by Roland McGrath et al.
Copyright (C) 2016 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.
There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A
PARTICULAR PURPOSE.
Compiled by GNU CC version 5.4.0 20160609.
Available extensions:
crypt add-on version 2.1 by Michael Glad and others
GNU Libidn by Simon Josefsson
Native POSIX Threads Library by Ulrich Drepper et al
BIND-8.2.3-T5B
libc ABIs: UNIQUE IFUNC
For bug reporting instructions, please see:
这个就是我的电脑上glibc的路径:/lib/x86_64-linux-gnu/libc.so.6
方法二:man -k glibc,可以找到一个系统函数gnu_get_libc_version,他可以用来获取版本:
ghostwu@ubuntu:~$ man -k libc
cracklib-check (8) - Check passwords using libcrack2
create-cracklib-dict (8) - Check passwords using libcrack2
curl-config (1) - Get information about a libcurl installation
error (3) - glibc error reporting functions
error_at_line (3) - glibc error reporting functions
error_message_count (3) - glibc error reporting functions
error_one_per_line (3) - glibc error reporting functions
error_print_progname (3) - glibc error reporting functions
glibc (7) - overview of standard C libraries on Linux
gnu_get_libc_release (3) - get glibc version and release
gnu_get_libc_version (3) - get glibc version and release
libc (7) - overview of standard C libraries on Linux
ghostwu@ubuntu:~$ man 3 gnu_get_libc_version
/*===============================================
* Copyright (C) 2018 . All rights reserved.
*
* 文件名称:check_glibc_version.c
* 创 建 者:ghostwu(吴华)
* 创建日期:2018年01月10日
* 描 述:获取GNU C库(glibc)的版本号
*
===============================================*/
#include
#include
int main(int argc, char *argv[])
{
printf("glibc's version: %s\n", gnu_get_libc_version() );
return 0;
}
方法三、getconf GNU_LIBC_VERSION
优麒麟Ubuntu Kylin用户修复漏洞只需运行update-manager即可在Ubuntu上安装并使用YouTube-DL宿主机与Virtual虚拟机之间共享文件夹配置教程KUbuntu 18.04用户现在可以试用KDE Plasma 5.12 LTS桌面给Ubuntu 17.10启动网易云写了个脚本在ubuntu16.04上安装MiniTools在Ubuntu上体验LXD容器Deepin/Ubuntu Android模拟器启动失败Ubuntu下服务器远程连接断开后运行服务关闭的解决办法ubuntu16.04开机登录后蓝屏
加载全部内容