Golang, also known as Go, is a modern, open-source programming language developed by Google. It was designed by Robert Griesemer, Rob Pike, and Ken Thompson with the primary goal of providing a simple, efficient, and easy-to-use language for software development. Go was first released in 2009 and has gained widespread popularity among developers for its speed, simplicity, and powerful features.
Key Features and Benefits of Golang
- Concurrency: Golang offers built-in support for concurrent programming with goroutines, lightweight threads managed by the Go runtime. This enables efficient and straightforward concurrent processing, making it well-suited for applications that require parallelisms, such as web servers and networking tools.
- Static Typing: Go is a statically typed language that helps catch type-related errors during compilation. This feature enhances code safety and allows for better performance during runtime.
- Garbage Collection: Go includes an efficient garbage collector, which automatically handles memory management and reclaims unused memory. This feature reduces the risk of memory leaks and simplifies the development process.
- Cross-Platform: Go supports multiple platforms, including Windows, macOS, Linux, and others. This enables developers to write code that can be easily compiled and executed across different operating systems without any modifications.
- Standard Library: Go has a rich standard library that provides a wide range of packages and functions for common programming tasks, such as handling files, working with regular expressions, and networking. This allows developers to build powerful applications without relying on third-party libraries.
Golang vs. Other Languages
- Simplicity: Go is designed to be simple and easy to learn, with a clean syntax that allows developers to understand and write code quickly. This stands in contrast to languages like C++ and Java, which can be more complex and harder to master.
- Performance: Go offers excellent performance, focusing on efficient compilation and execution. Go’s performance is comparable to languages like C and C++ but with the added benefit of garbage collection and improved memory management.
- Scalability: Go’s built-in support for concurrency makes it an excellent choice for building scalable applications, as it can handle many concurrent connections or tasks. This is an advantage over languages like Python, which has a Global Interpreter Lock (GIL) that can limit concurrency.
In the upcoming sections, this guide will demonstrate how to install Golang on Ubuntu 22.04 Jammy Jellyfish or Ubuntu 20.04 Focal Fossa using the Golang backports PPA for the latest stable versions.
Table of Contents
Section 1: Install Golang with APT
In this section, we will guide you through the process of installing Golang on your Ubuntu system using the APT package manager. There are two methods to achieve this: installing Golang using Ubuntu’s default repository or using the Golang-Backports PPA for a more up-to-date version.
Step 1: Update Ubuntu System
To ensure a smooth installation, it’s essential to have an up-to-date system. Run the following command to update your Ubuntu system:
sudo apt update && sudo apt upgrade
Step 2: Select the Installation Method
There are two methods available for installing Golang on your Ubuntu system. Choose the one that best suits your needs.
Method 1: Install Golang with Ubuntu’s Repository
This method is the simplest way to install Golang using the APT repository provided by Ubuntu. To install Golang, execute the following command:
sudo apt install golang
After installation, you can verify it by running:
go version
Note: The Golang version in Ubuntu’s repository may not always be the latest. If you require a more recent version, consider using Method 2, described below.
Method 2: Install Golang with Golang-Backports PPA
For users who prefer a more recent and regularly updated version of Golang, the Golang-Backports PPA is an excellent choice. Follow these steps to install Golang using the Golang-Backports PPA:
Import the PPA by running the following command:
sudo add-apt-repository ppa:longsleep/golang-backports -y
Update the APT package list to include the newly added PPA:
sudo apt update
Install Golang using the PPA. This command works even if you have previously installed an older version:
sudo apt install golang
Finally, check the installed Golang version to ensure it meets your requirements:
go version
Note: The Golang-Backports PPA includes versions 1.8, 1.9, 1.10, 1.11, 1.12, 1.13, 1.14, 1.15, 1.16, 1.17, 1.18, 1.19, and 1.20. If you need a specific older version, you can install it by specifying the version number. For example, to install Golang v1.18, run:
sudo apt install golang-1.18
Section 2: Installing Go (Golang) from Source
If you prefer installing a specific or more recent version of Go, the manual method is an excellent choice. In this section, we’ll walk you through the process of downloading and installing Go from source.
Step 1: Download the Go source file
First, download the latest version of Go from the official website using the wget command. Replace x.x.x with the desired version number.
Example command:
https://go.dev/dl/go1.x.x.darwin-amd64.tar.gz
Step 2: Extract the Go source file
After downloading Go, extract the file to the /usr/local directory using the tar command.
sudo tar -xzf go1.*.*.linux-amd64.tar.gz -C /usr/local/
Step 3: Update the PATH variable
Update the $PATH variable in the /etc/profile file using the echo and tee commands:
echo 'export PATH=$PATH:/usr/local/go/bin' | sudo tee -a /etc/profile
This command appends the required line (export PATH=$PATH:/usr/local/go/bin) to the /etc/profile file without the need to open a text editor. The -a flag ensures that the content is appended to the file rather than overwriting it.
Step 4: Activate the updated PATH variable
Activate the updated PATH environment variable by running the source command:
source /etc/profile
Step 5: Verify the installation
Finally, confirm that the installation was successful by checking the Go version:
go version
This command will display the currently installed Go version, indicating a successful installation.
Section 3: Creating a Sample Golang Program
In this section, you’ll learn how to create a simple Golang program that prints “Hello, World” to demonstrate that your Go installation is functioning correctly.
Step 1: Create a new directory for the program
First, create a new directory to store your sample Go program:
mkdir go-hello
Step 2: Create a Go source file
Now, create a new Go source file within the go-hello directory:
nano go-hello/hello.go
Step 3: Write the “Hello, World” program
Add the following code to the hello.go file to create a “Hello, World” program:
package main
import "fmt"
func main() {
fmt.Printf("Hello, World from LinuxCapable.com\n")
}
Save the file by pressing (CTRL+O) and then exit the editor by pressing (CTRL+X).
Step 4: Create a go.mod file
Create a go.mod file in the go-hello directory to manage the Go project’s dependencies:
sudo nano go-hello/go.mod
Add the following content to the go.mod file:
module example.com/mod
Save the file (CTRL+O) and exit the editor (CTRL+X).
Step 5: Build and execute the program
Navigate to the go-hello directory and build the program:
cd go-hello && go build
Lastly, execute the “Hello, World” program by running the following command:
./mod
You should see the following output:
Hello, World from LinuxCapable.com
This confirms that your Go installation is working as expected and you’ve successfully created and executed a simple Go program.
Section 4: Managing and Switching Between Golang Versions
In this section, we will guide you through the process of managing and switching between multiple Golang versions installed on your system using the update-alternatives command. This is particularly useful when you need to work with different Golang versions for various projects.
Step 1: Add Golang Versions to the Alternatives System
To manage multiple Golang versions, you must first add each installed version to the alternatives system. Suppose you have Golang 1.18, 1.19, and 1.20 installed. You can add them using the following example commands:
sudo update-alternatives --install /usr/bin/go go /usr/lib/go-1.18/bin/go 118
sudo update-alternatives --install /usr/bin/go go /usr/lib/go-1.19/bin/go 119
sudo update-alternatives --install /usr/bin/go go /usr/lib/go-1.20/bin/go 120
In these commands, /usr/bin/go is the generic symlink, go is the name of the alternative, /usr/lib/go-1.18/bin/go, /usr/lib/go-1.19/bin/go, and /usr/lib/go-1.20/bin/go are the paths to the respective Golang binaries, and 118, 119, and 120 are the priority numbers.
Step 2: List Available Golang Alternatives
Once you’ve added the Golang versions to the alternatives system, you can list the available alternatives by running the following command:
sudo update-alternatives --list go
This command displays the available Golang versions and their respective paths.
Step 3: Switch Between Golang Versions
To switch between Golang versions, use the –config option followed by the name of the alternative, like this:
sudo update-alternatives --config go
This command prompts you to select the desired version from the available alternatives. Enter the corresponding number and press Enter to change the active Golang version.
Example output:
Step 4: Verify the Active Golang Version
After switching the version, it’s essential to verify the change by running the following command:
go version
This command displays the currently active Golang version, ensuring you use the desired version for your projects.
Closing Thoughts on Installing Golang on Ubuntu Linux
In summary, installing the Golang programming language on Ubuntu Linux is a seamless process that empowers developers to harness the power and simplicity of this modern language. We’ve discussed various aspects, including updating the system, installing Golang via the APT repository and the Golang backports PPA, and managing multiple Golang versions using the update-alternatives command. By following these steps, users can effortlessly set up Golang on their Ubuntu Linux systems and begin developing high-performance applications.
Additional Resources and Links
To further enhance your understanding of Golang and Ubuntu Linux, we recommend the following official resources:
- Golang Official Website: The official website for Golang provides comprehensive information on the language, its features, and best practices for developing robust applications.
- Golang Documentation: Visit the official Golang documentation to learn more about the language, including tutorials, reference materials, and language specifications.