Thứ ba, 09/04/2019 | 00:00 GMT+7

Cách cài đặt Go và thiết lập môi trường lập trình cục bộ trên Ubuntu 18.04

Go là một ngôn ngữ lập trình được sinh ra từ sự thất vọng của Google. Các nhà phát triển liên tục phải chọn một ngôn ngữ thực thi hiệu quả nhưng mất nhiều thời gian để biên dịch hoặc chọn một ngôn ngữ dễ lập trình nhưng chạy không hiệu quả trong quá trình production . Go được thiết kế để có cùng lúc cả ba: biên dịch nhanh, dễ lập trình và thực thi hiệu quả trong quá trình production .

Mặc dù Go là một ngôn ngữ lập trình linh hoạt được dùng cho nhiều dự án lập trình khác nhau, nhưng nó đặc biệt phù hợp với các chương trình mạng / hệ thống phân tán và đã được coi là “ngôn ngữ của cloud ”. Nó tập trung vào việc giúp các lập trình viên hiện đại làm được nhiều việc hơn với một bộ công cụ mạnh mẽ, loại bỏ các cuộc tranh luận về định dạng bằng cách biến định dạng thành một phần của đặc tả ngôn ngữ, cũng như giúp triển khai dễ dàng bằng cách biên dịch sang một file binary duy nhất. Cờ vây rất dễ học, với một bộ từ khóa rất nhỏ, điều này làm cho nó trở thành lựa chọn tuyệt vời cho người mới bắt đầu cũng như các nhà phát triển có kinh nghiệm.

Hướng dẫn này sẽ hướng dẫn bạn cài đặt và cấu hình một không gian làm việc lập trình với Go thông qua dòng lệnh. Hướng dẫn này sẽ trình bày rõ ràng quy trình cài đặt cho Ubuntu 18.04, nhưng các nguyên tắc chung có thể áp dụng cho các bản phân phối Debian Linux khác.

Yêu cầu

Bạn cần một máy tính hoặc máy ảo có cài đặt Ubuntu 18.04, cũng như có quyền truy cập quản trị vào máy đó và kết nối internet. Bạn có thể download hệ điều hành này qua trang bản phát hành Ubuntu 18.04 .

Bước 1 - Cài đặt Bắt đầu

Trong bước này, bạn sẽ cài đặt Go bằng cách download bản phát hành hiện tại từ trang download chính thức của Go .

Để làm điều này, bạn cần tìm URL cho tarball bản phát hành binary hiện tại. Bạn cũng cần lưu ý hàm băm SHA256 được liệt kê bên cạnh vì bạn sẽ sử dụng hàm băm này để xác minh file đã download .

Bạn sẽ hoàn tất việc cài đặt và cài đặt trên dòng lệnh, đây là một cách phi đồ họa để tương tác với máy tính của bạn. Nghĩa là, thay vì nhấp vào các node , bạn sẽ nhập văn bản và nhận phản hồi từ máy tính của bạn thông qua văn bản.

Dòng lệnh, còn gọi là shell hoặc terminal , có thể giúp bạn sửa đổi và tự động hóa nhiều tác vụ bạn thực hiện trên máy tính hàng ngày và là một công cụ cần thiết cho các nhà phát triển phần mềm. Có rất nhiều lệnh terminal để tìm hiểu có thể cho phép bạn làm những điều mạnh mẽ hơn. Để biết thêm thông tin về dòng lệnh, hãy xem phần Giới thiệu về hướng dẫn Linux Terminal .

Trên Ubuntu 18.04, bạn có thể tìm thấy ứng dụng Terminal bằng cách nhấp vào biểu tượng Ubuntu ở góc trên bên trái của màn hình và nhập terminal vào thanh tìm kiếm. Nhấp vào biểu tượng ứng dụng Terminal để mở nó. Ngoài ra, bạn có thể nhấn cùng lúc các CTRL , ALTT trên bàn phím để mở ứng dụng Terminal tự động.

Ubuntu Terminal

Khi terminal được mở, bạn sẽ cài đặt thủ công các mã binary Go. Mặc dù bạn có thể sử dụng trình quản lý gói, chẳng hạn như apt-get , việc xem qua các bước cài đặt thủ công sẽ giúp bạn hiểu bất kỳ thay đổi cấu hình nào đối với hệ thống của bạn cần để có không gian làm việc Go hợp lệ.

Trước khi download Go, hãy đảm bảo bạn đang ở trong folder home ( ~ ):

  • cd ~

Sử dụng curl để truy xuất URL tarball mà bạn đã sao chép từ trang download chính thức của Go:

  • curl -O https://dl.google.com/go/go1.12.1.linux-amd64.tar.gz

Tiếp theo, sử dụng sha256sum để xác minh tarball:

  • sha256sum go1.12.1.linux-amd64.tar.gz

Hàm băm được hiển thị khi chạy lệnh trên phải trùng với hàm băm trên trang download . Nếu không, thì đây không phải là file hợp lệ và bạn nên tải file xuống lại.

Output
2a3fdabf665496a0db5f41ec6af7a9b15a49fbe71a85a50ca38b1f13a103aeec go1.12.1.linux-amd64.tar.gz

Tiếp theo, extract repository đã download và cài đặt nó vào vị trí mong muốn trên hệ thống. Phương pháp hay nhất được coi là giữ nó dưới /usr/local :

  • sudo tar -xvf go1.12.1.linux-amd64.tar.gz -C /usr/local

Đến đây bạn sẽ có một folder tên là go trong folder /usr/local . Tiếp theo, thay đổi đệ quy chủ sở hữu và group của folder này thành root :

  • sudo chown -R root:root /usr/local/go

Điều này sẽ bảo mật tất cả các file và đảm bảo chỉ user root mới có thể chạy các file binary Go.

Lưu ý : Mặc dù /usr/local/go là vị trí được đề xuất chính thức, một số user có thể thích hoặc yêu cầu các đường dẫn khác.

Trong bước này, bạn đã download và cài đặt Go trên máy Ubuntu 18.04 của bạn . Trong bước tiếp theo, bạn sẽ cấu hình không gian làm việc Go của bạn .

Bước 2 - Tạo không gian làm việc Go của bạn

Bạn có thể tạo không gian làm việc lập trình của bạn ngay bây giờ khi Go đã được cài đặt. Không gian làm việc Go sẽ chứa hai folder root của nó:

  • src : Thư mục chứa file nguồn Go. Tệp nguồn là file bạn viết bằng ngôn ngữ lập trình Go. Các file nguồn được trình biên dịch Go sử dụng để tạo file binary thực thi.
  • bin : Thư mục chứa file thi hành được xây dựng và cài đặt bởi công cụ Go. Các file thực thi là các file binary chạy trên hệ thống của bạn và thực thi các việc . Đây thường là các chương trình được biên dịch bởi mã nguồn của bạn hoặc mã nguồn Go đã download khác.

Thư mục con src có thể chứa nhiều kho kiểm soát version (chẳng hạn như Git , MercurialBazaar ). Điều này cho phép nhập mã chuẩn trong dự án của bạn. Nhập khẩu Canonical là hàng nhập khẩu mà tham khảo một gói đầy đủ, chẳng hạn như github.com/digitalocean/godo .

Bạn sẽ thấy các folder như github.com , golang.org hoặc các folder khác khi chương trình của bạn nhập thư viện của bên thứ ba. Nếu bạn đang sử dụng một repository mã như github.com , bạn cũng sẽ đặt các dự án và file nguồn của bạn trong folder đó. Ta sẽ tìm hiểu khái niệm này sau trong bước này.

Đây là không gian làm việc điển hình có thể trông như thế nào:

. ├── bin │   ├── buffalo                                      # command executable │   ├── dlv                                          # command executable │   └── packr                                        # command executable └── src     └── github.com         └── digitalocean             └── godo                 ├── .git                            # Git repository metadata                 ├── account.go                      # package source                 ├── account_test.go                 # test source                 ├── ...                 ├── timestamp.go                 ├── timestamp_test.go                 └── util                     ├── server.go                     └── server_test.go 

Thư mục mặc định cho không gian làm việc Go kể từ ngày 1.8 là folder chính của user của bạn với folder con go , hoặc $HOME/go . Nếu bạn đang sử dụng version Go cũ hơn 1.8, bạn vẫn nên sử dụng vị trí $HOME/go cho không gian làm việc của bạn .

Ban hành lệnh sau để tạo cấu trúc folder cho không gian làm việc Go của bạn:

  • mkdir -p $HOME/go/{bin,src}

Tùy chọn -p yêu cầu mkdir tạo tất cả parents trong folder , ngay cả khi chúng hiện không tồn tại. Sử dụng {bin,src} tạo một tập hợp các đối số cho mkdir và yêu cầu nó tạo cả folder bin và folder src .

Điều này sẽ đảm bảo cấu trúc folder sau hiện có:

└── $HOME     └── go         ├── bin         └── src 

Trước version 1.8, bắt buộc phải đặt một biến môi trường local có tên là $GOPATH . $GOPATH đã thông báo cho trình biên dịch biết nơi tìm mã nguồn của bên thứ ba đã nhập, cũng như bất kỳ mã nguồn local nào bạn đã viết. Mặc dù nó không còn được yêu cầu rõ ràng nữa, nó vẫn được coi là một phương pháp hay vì nhiều công cụ của bên thứ ba vẫn phụ thuộc vào biến này đang được cài đặt .

Bạn có thể đặt $GOPATH của bạn bằng cách thêm các biến toàn cục vào ~/.profile . Bạn có thể cần thêm file này vào file .zshrc hoặc .bashrc theo cấu hình shell của bạn.

Đầu tiên, mở ~/.profile bằng nano hoặc editor bạn muốn :

  • nano ~/.profile

Đặt $GOPATH của bạn bằng cách thêm phần sau vào file :

~ / .profile
export GOPATH=$HOME/go 

Khi Go biên dịch và cài đặt các công cụ, nó sẽ đưa chúng vào folder $GOPATH/bin . Để thuận tiện, bạn thường thêm folder con /bin của không gian làm việc vào PATH trong ~/.profile của bạn:

~ / .profile
export PATH=$PATH:$GOPATH/bin 

Điều này sẽ cho phép bạn chạy bất kỳ chương trình nào bạn biên dịch hoặc download thông qua công cụ Go ở bất kỳ đâu trên hệ thống.

Cuối cùng, bạn cần thêm số binary go vào PATH của bạn . Bạn có thể thực hiện việc này bằng cách thêm /usr/local/go/bin vào cuối dòng:

~ / .profile
export PATH=$PATH:$GOPATH/bin:/usr/local/go/bin 

Thêm /usr/local/go/bin vào $PATH của bạn sẽ làm cho tất cả các công cụ Go có sẵn ở mọi nơi trên hệ thống.

Để cập nhật shell của bạn, hãy chạy lệnh sau để tải các biến toàn cục:

  • . ~/.profile

Bạn có thể xác minh $PATH được cập nhật bằng cách sử dụng lệnh echo và kiểm tra kết quả :

  • echo $PATH

Bạn sẽ thấy $GOPATH/bin sẽ hiển thị trong folder chính của bạn. Nếu bạn đăng nhập bằng quyền root , bạn sẽ thấy /root/go/bin trong đường dẫn.

Output
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/root/go/bin:/usr/local/go/bin

Bạn cũng sẽ thấy đường dẫn đến công cụ Go cho /usr/local/go/bin :

Output
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/root/go/bin:/usr/local/go/bin

Xác minh cài đặt bằng cách kiểm tra version Go hiện tại:

  • go version

Và ta sẽ nhận được kết quả như thế này:

Output
go version go1.12.1 linux/amd64

Đến đây bạn đã tạo folder root của không gian làm việc và tập hợp biến môi trường $GOPATH , bạn có thể tạo các dự án trong tương lai của bạn với cấu trúc folder sau. Ví dụ này giả sử bạn đang sử dụng github.com làm repository của bạn :

$GOPATH/src/github.com/username/project 

Vì vậy, làm ví dụ, nếu bạn đang làm việc trên dự án https://github.com/digitalocean/godo , nó sẽ được lưu trữ trong folder sau:

$GOPATH/src/github.com/digitalocean/godo 

Cấu trúc dự án này sẽ cung cấp các dự án với công cụ go get . Nó cũng sẽ giúp dễ đọc sau này. Bạn có thể xác minh điều này bằng cách sử dụng lệnh go get và tìm nạp thư viện godo :

  • go get github.com/digitalocean/godo

Thao tác này sẽ download nội dung của thư viện godo và tạo folder $GOPATH/src/github.com/digitalocean/godo trên máy của bạn.

Bạn có thể kiểm tra xem nó đã download thành công gói godo bằng cách liệt kê folder :

  • ll $GOPATH/src/github.com/digitalocean/godo

Bạn sẽ thấy kết quả tương tự như sau:

Output
drwxr-xr-x 4 root root 4096 Apr 5 00:43 ./ drwxr-xr-x 3 root root 4096 Apr 5 00:43 ../ drwxr-xr-x 8 root root 4096 Apr 5 00:43 .git/ -rwxr-xr-x 1 root root 8 Apr 5 00:43 .gitignore* -rw-r--r-- 1 root root 61 Apr 5 00:43 .travis.yml -rw-r--r-- 1 root root 2808 Apr 5 00:43 CHANGELOG.md -rw-r--r-- 1 root root 1851 Apr 5 00:43 CONTRIBUTING.md . . . -rw-r--r-- 1 root root 4893 Apr 5 00:43 vpcs.go -rw-r--r-- 1 root root 4091 Apr 5 00:43 vpcs_test.go

Trong bước này, bạn đã tạo không gian làm việc Go và cấu hình các biến môi trường cần thiết. Trong bước tiếp theo, bạn sẽ kiểm tra không gian làm việc với một số mã.

Bước 3 - Tạo một chương trình đơn giản

Đến đây bạn đã cài đặt không gian làm việc Go, hãy tạo "Hello, World!" chương trình. Điều này sẽ đảm bảo không gian làm việc được cấu hình đúng cách và cũng cho bạn cơ hội làm quen với cờ vây hơn. Vì ta đang tạo một file nguồn Go duy nhất và không phải là một dự án thực tế, ta không cần phải ở trong không gian làm việc của bạn để thực hiện việc này.

Từ folder chính của bạn, hãy mở một editor dòng lệnh, chẳng hạn như nano và tạo một file mới:

  • nano hello.go

Viết chương trình của bạn trong file mới:

package main  import "fmt"  func main() {     fmt.Println("Hello, World!") } 

Mã này sẽ sử dụng gói fmt và gọi hàm Println với Hello, World! như đối số. Điều này sẽ tạo ra cụm từ Hello, World! để in ra terminal khi chương trình được chạy.

Thoát nano bằng cách nhấn CTRLX Khi được yêu cầu lưu file , hãy nhấn Y rồi nhấn ENTER .

Khi bạn thoát ra khỏi nano và quay lại shell của bạn , hãy chạy chương trình:

go run hello.go 

Chương trình hello.go sẽ khiến terminal tạo ra kết quả sau:

Output
Hello, World!

Trong bước này, bạn đã sử dụng một chương trình cơ bản để xác minh không gian làm việc Go của bạn được cấu hình đúng cách.

Kết luận

Xin chúc mừng! Đến đây, bạn đã cài đặt không gian làm việc lập trình Go trên máy Ubuntu của bạn và có thể bắt đầu một dự án viết mã!


Tags:

Các tin liên quan

Cách backup thư mục lớn với Unison trên Ubuntu 16.04
2019-04-08
Cách cài đặt và sử dụng TensorFlow trên Ubuntu 18.04
2019-03-20
Cách thu thập số liệu cơ sở hạ tầng với Metricbeat trên Ubuntu 18.04
2019-03-15
Cách cài đặt và sử dụng ClickHouse trên Ubuntu 18.04
2019-03-11
Cách cấu hình xác thực đa yếu tố trên Ubuntu 18.04
2019-02-28
Cách thiết lập ứng dụng CakePHP với LAMP trên Ubuntu 18.04
2019-02-22
Cách đặt quota hệ thống tệp trên Ubuntu 18.04
2019-02-21
Cách thực hiện kiểm tra liên tục các vai trò không thể phục hồi bằng Molecule và Travis CI trên Ubuntu 18.04
2019-02-01
Cách đảm bảo chất lượng mã bằng SonarQube trên Ubuntu 18.04
2019-01-11
Cách cài đặt và bảo mật Memcached trên Ubuntu 18.04
2019-01-04