{"id":3418,"date":"2021-08-31T07:10:48","date_gmt":"2021-08-30T22:10:48","guid":{"rendered":"http:\/\/matoken.org\/blog\/?p=3418"},"modified":"2021-09-03T05:10:05","modified_gmt":"2021-09-02T20:10:05","slug":"switch-go-version","status":"publish","type":"post","link":"https:\/\/matoken.org\/blog\/2021\/08\/31\/switch-go-version\/","title":{"rendered":"Debian\u30d1\u30c3\u30b1\u30fc\u30b8\u306eGo\u30d0\u30fc\u30b8\u30e7\u30f3\u3092\u5207\u308a\u66ff\u3048\u308b"},"content":{"rendered":"<div class=\"paragraph\">\n<p>\u624b\u5143\u306eDebian sid\u74b0\u5883\u306b\u306fDebin\u30d1\u30c3\u30b1\u30fc\u30b8\u306e\u3044\u304f\u3064\u304b\u306e\u30d0\u30fc\u30b8\u30e7\u30f3\u306eGo\u304c\u5c0e\u5165\u3055\u308c\u3066\u3044\u307e\u3059\uff0e<\/p>\n<\/div>\n<p><!--more--><\/p>\n<div class=\"listingblock\">\n<div class=\"content\">\n<pre class=\"highlight\"><code class=\"language-shell\" data-lang=\"shell\">$ dpkg-query -W golang-1.??\ngolang-1.12     1.12.12-1\ngolang-1.15     1.15.15-1\ngolang-1.16     1.16.7-1\ngolang-1.17     1.17-2<\/code><\/pre>\n<\/div>\n<\/div>\n<div class=\"paragraph\">\n<p>\u73fe\u5728\u306f1.15\u306b\u5411\u3044\u3066\u3044\u308b\u3088\u3046\u3067\u3059\uff0e<\/p>\n<\/div>\n<div class=\"listingblock\">\n<div class=\"content\">\n<pre class=\"highlight\"><code class=\"language-shell\" data-lang=\"shell\">$ go version\ngo version go1.15.15 linux\/amd64\n$ ls -l \/usr\/bin\/go\nlrwxrwxrwx 1 root root 21 Sep 17  2020 \/usr\/bin\/go -&gt; ..\/lib\/go-1.15\/bin\/go<\/code><\/pre>\n<\/div>\n<\/div>\n<div class=\"paragraph\">\n<p><code>update-alternatives<\/code> \u306b\u3042\u308b\u304b\u306a?\u3068\u307f\u3066\u307f\u308b\u3068\u898b\u5f53\u305f\u308a\u307e\u305b\u3093\uff0e<\/p>\n<\/div>\n<div class=\"listingblock\">\n<div class=\"content\">\n<pre class=\"highlight\"><code class=\"language-shell\" data-lang=\"shell\">$ sudo update-alternatives --display go\nupdate-alternatives: error: no alternatives for go\n$ sudo update-alternatives --display go-lang\nupdate-alternatives: error: no alternatives for go-lang\n$ sudo update-alternatives --get-selections | grep -i go\nbogofilter                     auto     \/usr\/bin\/bogofilter-bdb\nfonts-japanese-gothic.ttf      auto     \/usr\/share\/fonts\/opentype\/ipaexfont-gothic\/ipaexg.ttf\ngoogle-chrome                  auto     \/usr\/bin\/google-chrome-stable\nvendor-logos                   auto     \/usr\/share\/desktop-base\/debian-logos<\/code><\/pre>\n<\/div>\n<\/div>\n<div class=\"paragraph\">\n<p>\u624b\u52d5\u3067 <code>update-alternatives<\/code> \u306b\u767b\u9332\u3057\u3066\uff0c<\/p>\n<\/div>\n<div class=\"listingblock\">\n<div class=\"content\">\n<pre class=\"highlight\"><code class=\"language-shell\" data-lang=\"shell\">$ sudo update-alternatives --install \/usr\/bin\/go go \/lib\/go-1.12\/bin\/go 200 --slave \/usr\/bin\/gofmt gofmt \/lib\/go-1.12\/bin\/gofmt\n$ sudo update-alternatives --install \/usr\/bin\/go go \/lib\/go-1.15\/bin\/go 200 --slave \/usr\/bin\/gofmt gofmt \/lib\/go-1.15\/bin\/gofmt\n$ sudo update-alternatives --install \/usr\/bin\/go go \/lib\/go-1.16\/bin\/go 200 --slave \/usr\/bin\/gofmt gofmt \/lib\/go-1.16\/bin\/gofmt\n$ sudo update-alternatives --install \/usr\/bin\/go go \/lib\/go-1.17\/bin\/go 200 --slave \/usr\/bin\/gofmt gofmt \/lib\/go-1.17\/bin\/gofmt<\/code><\/pre>\n<\/div>\n<\/div>\n<div class=\"admonitionblock note\">\n<table  class=\" table table-hover\" >\n<tbody>\n<tr>\n<td class=\"icon\">\n<div class=\"title\">Note<\/div>\n<\/td>\n<td class=\"content\">\n2021-09-03\u7de8\u96c6 ++<br \/>\n<code>--slave \/usr\/bin\/gofmt gofmt \u301c<\/code> \u3092\u8ffd\u52a0\u3057\u3066 <code>gofmt<\/code> \u30b3\u30de\u30f3\u30c9\u3082\u8ffd\u5f93\u3059\u308b\u3088\u3046\u306b\u3057\u305f\uff0e<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<div class=\"paragraph\">\n<p>\u4eca\u56de\u306f 1.16 \u306b\u3057\u3066\u307f\u307e\u3059\uff0e<\/p>\n<\/div>\n<div class=\"listingblock\">\n<div class=\"content\">\n<pre class=\"highlight\"><code class=\"language-shell\" data-lang=\"shell\">$ sudo update-alternatives --config go\nThere are 4 choices for the alternative go (providing \/usr\/bin\/go).\n\n  Selection    Path                 Priority   Status\n------------------------------------------------------------\n  0            \/lib\/go-1.12\/bin\/go   200       auto mode\n* 1            \/lib\/go-1.12\/bin\/go   200       manual mode\n  2            \/lib\/go-1.15\/bin\/go   200       manual mode\n  3            \/lib\/go-1.16\/bin\/go   200       manual mode\n  4            \/lib\/go-1.17\/bin\/go   200       manual mode\n\nPress &lt;enter&gt; to keep the current choice[*], or type selection number: 3\nupdate-alternatives: using \/lib\/go-1.16\/bin\/go to provide \/usr\/bin\/go (go) in manual mode\n$ sudo update-alternatives --display go\ngo - manual mode\n  link best version is \/lib\/go-1.16\/bin\/go\n  link currently points to \/lib\/go-1.16\/bin\/go\n  link go is \/usr\/bin\/go\n\/lib\/go-1.12\/bin\/go - priority 200\n\/lib\/go-1.15\/bin\/go - priority 200\n\/lib\/go-1.16\/bin\/go - priority 200\n\/lib\/go-1.17\/bin\/go - priority 200\n$ go version\ngo version go1.16.7 linux\/amd64<\/code><\/pre>\n<\/div>\n<\/div>\n<div class=\"paragraph\">\n<p>hello world\u3084Go 1.16 \u4ee5\u964d\u7528\u306esource\u3082build\u3067\u304d\u305f\u306e\u3067\u3068\u308a\u3042\u3048\u305a\u52d5\u3044\u3066\u3044\u305d\u3046\u3067\u3059\uff0e<\/p>\n<\/div>\n<div class=\"listingblock\">\n<div class=\"content\">\n<pre class=\"highlight\"><code class=\"language-shell\" data-lang=\"shell\">$ cat &lt;&lt; __EOF__ &gt; hello.go\n&gt; package main\n&gt;\n&gt; import \"fmt\"\n&gt;\n&gt;\nfunc main() {\n    fmt.Println(\"hello world\")\n}\n&gt; __EOF__\n$ go run .\/hello.go\nhello world<\/code><\/pre>\n<\/div>\n<\/div>\n<div class=\"listingblock\">\n<div class=\"title\">\u74b0\u5883<\/div>\n<div class=\"content\">\n<pre>$ dpkg-query -W golang-1.?? dpkg\ndpkg    1.20.9\ngolang-1.12     1.12.12-1\ngolang-1.15     1.15.15-1\ngolang-1.16     1.16.7-1\ngolang-1.17     1.17-2\n$ lsb_release -dr\nDescription:    Debian GNU\/Linux bookworm\/sid\nRelease:        unstable\n$ arch\nx86_64<\/pre>\n<\/div>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>\u624b\u5143\u306eDebian sid\u74b0\u5883\u306b\u306fDebin\u30d1\u30c3\u30b1\u30fc\u30b8\u306e\u3044\u304f\u3064\u304b\u306e\u30d0\u30fc\u30b8\u30e7\u30f3\u306eGo\u304c\u5c0e\u5165\u3055\u308c\u3066\u3044\u307e\u3059\uff0e<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"webmentions_disabled_pings":false,"webmentions_disabled":false,"activitypub_content_warning":"","activitypub_content_visibility":"","activitypub_max_image_attachments":4,"activitypub_interaction_policy_quote":"anyone","activitypub_status":"","footnotes":""},"categories":[7,6,199],"tags":[682,557],"class_list":["post-3418","post","type-post","status-publish","format-standard","hentry","category-debian-linux","category-linux","category-sid","tag-go","tag-update-alternatives"],"_links":{"self":[{"href":"https:\/\/matoken.org\/blog\/wp-json\/wp\/v2\/posts\/3418","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/matoken.org\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/matoken.org\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/matoken.org\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/matoken.org\/blog\/wp-json\/wp\/v2\/comments?post=3418"}],"version-history":[{"count":0,"href":"https:\/\/matoken.org\/blog\/wp-json\/wp\/v2\/posts\/3418\/revisions"}],"wp:attachment":[{"href":"https:\/\/matoken.org\/blog\/wp-json\/wp\/v2\/media?parent=3418"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/matoken.org\/blog\/wp-json\/wp\/v2\/categories?post=3418"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/matoken.org\/blog\/wp-json\/wp\/v2\/tags?post=3418"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}