Go’yu Ubuntu 18.04’e Kurma ve Yerel Programlama Ortamı Oluşturma Rehberi
Bu kapsamlı rehber, Ubuntu 18.04 işletim sistemi üzerinde Go programlama dilini başarıyla kurmanız ve verimli bir yerel geliştirme ortamı oluşturmanız için adım adım talimatlar sunmaktadır. Go, Google tarafından geliştirilen, modern sistemler için tasarlanmış, açık kaynaklı, statik tipli ve derlenmiş bir dildir. Yüksek performans, eşzamanlılık desteği ve basit sözdizimi sayesinde günümüzde birçok geliştiricinin ve şirketin tercih ettiği bir dil haline gelmiştir. Özellikle mikroservisler, ağ programlama, bulut tabanlı uygulamalar ve komut satırı araçları geliştirme konularında öne çıkmaktadır. Ubuntu 18.04, uzun süreli destek (LTS) sağlayan istikrarlı bir işletim sistemi sürümü olduğu için, üzerinde Go geliştirmesi yapmak için oldukça uygun bir platformdur. Bu rehberde, Go’nun neden bu kadar popüler olduğunu kısaca ele aldıktan sonra, kurulum yöntemlerini detaylı bir şekilde inceleyecek, ardından ilk Go programınızı yazacak ve geliştirme sürecinizi kolaylaştıracak araçları ve ayarları yapılandıracağız. Amacımız, bu rehberi tamamladığınızda Go ile geliştirme yapmaya tam anlamıyla hazır olmanızı sağlamaktır.
Go Nedir? Neden Go Kullanmalıyız?
Go, genellikle “Golang” olarak da bilinen, Google mühendisleri Robert Griesemer, Rob Pike ve Ken Thompson tarafından 2009 yılında tasarlanmış bir programlama dilidir. C/C++ gibi düşük seviyeli dillerin performansını, Python veya JavaScript gibi yüksek seviyeli dillerin geliştirme kolaylığı ile birleştirmeyi hedeflemiştir. Go’nun temel felsefesi, basitlik, verimlilik ve güvenilirliktir.
Peki, Go’yu diğer dillerden ayıran ve onu tercih edilebilir kılan özellikler nelerdir?
* Performans: Go, derlenmiş bir dil olduğu için yüksek performans sunar. Doğrudan makine koduna derlenir ve bu sayede çalışma zamanı yorumlamasına veya sanal makineye ihtiyaç duymaz. Bu, özellikle CPU yoğun uygulamalar ve ağ servisleri için büyük bir avantajdır.
* Eşzamanlılık (Concurrency): Go’nun en güçlü özelliklerinden biri, eşzamanlı programlamayı kolaylaştıran goroutine‘ler ve channel‘lardır. Goroutine’ler hafif iş parçacıkları gibidir ve binlerce hatta milyonlarca goroutine’i aynı anda çalıştırmak mümkündür. Channel’lar ise goroutine’ler arasında güvenli ve etkili iletişim kurmayı sağlar. Bu model, çok çekirdekli işlemcilerden tam verim alınmasına olanak tanır ve paralel programlamayı basitleştirir.
* Basitlik ve Okunabilirlik: Go, minimal bir sözdizimine sahiptir ve öğrenmesi kolaydır. Karmaşık özelliklerden kaçınılmış, bu da kodun daha okunabilir ve bakımı daha kolay olmasını sağlamıştır. Otomatik formatlama aracı go fmt, tüm Go kodlarının standart bir biçimde yazılmasını garanti eder, bu da ekip içinde kod tutarlılığını artırır.
* Hızlı Derleme Süreleri: Büyük kod tabanlarına sahip projelerde bile Go, şaşırtıcı derecede hızlı derleme süreleri sunar. Bu, geliştirme döngüsünü hızlandırır ve geliştiricilerin daha verimli olmasını sağlar.
* Statik Bağlantı ve Tek Çalıştırılabilir Dosya: Go derleyicisi, tüm bağımlılıkları tek bir çalıştırılabilir dosyaya statik olarak bağlar. Bu, dağıtımı son derece kolaylaştırır; uygulamanızı çalıştırmak için hedef sistemde ek bağımlılıklar kurmanıza gerek kalmaz, sadece tek bir dosya yeterlidir.
* Güçlü Standart Kütüphane: Go, ağ işlemleri, kriptografi, dosya işlemleri, JSON/XML ayrıştırma gibi birçok yaygın görevi kapsayan zengin ve iyi belgelenmiş bir standart kütüphaneye sahiptir. Bu, harici kütüphanelere olan bağımlılığı azaltır.
* Atık Toplama (Garbage Collection): Go, otomatik atık toplama özelliğine sahiptir. Bu, geliştiricilerin bellek yönetimiyle uğraşma yükünü ortadan kaldırır ve bellek sızıntısı gibi yaygın hataları önlemeye yardımcı olur.
Bu özellikler sayesinde Go, bulut bilişim, web servisleri, API geliştirme, DevOps araçları, komut satırı yardımcı programları ve hatta bazı embedded sistemler gibi geniş bir yelpazede kullanılmaktadır. Docker, Kubernetes, Prometheus gibi popüler projelerin Go ile yazılmış olması, dilin gücünü ve endüstrideki yerini kanıtlamaktadır.
Ubuntu 18.04 Sistem Gereksinimleri ve Hazırlık
Go’yu Ubuntu 18.04’e kurmadan önce, sisteminizin güncel olduğundan ve gerekli bazı temel araçlara sahip olduğundan emin olmalıyız. Bu adımlar, sorunsuz bir kurulum süreci için kritik öneme sahiptir.
Sistemi Güncelleme
Herhangi bir yeni yazılım kurulumuna başlamadan önce, sisteminizin paket listesini güncellemek ve mevcut paketleri en son sürümlerine yükseltmek iyi bir uygulamadır. Bu, olası bağımlılık sorunlarını önlemeye yardımcı olur ve sisteminizin güvenliğini sağlar.
Terminali açın (Ctrl+Alt+T) ve aşağıdaki komutları çalıştırın:
sudo apt update
sudo apt upgrade -y
* sudo apt update: Bu komut, yerel paket indeksinizi güncelleyerek mevcut depolar hakkında en son bilgileri (hangi paketlerin mevcut olduğu, hangi sürümlerin olduğu vb.) getirir.
* sudo apt upgrade -y: Bu komut, update ile güncellenen bilgilere dayanarak sisteminizdeki tüm kurulu paketleri en son sürümlerine yükseltir. -y bayrağı, tüm sorulara otomatik olarak “evet” yanıtı vermenizi sağlar, böylece yükseltme işlemi kesintisiz devam eder.
Gerekli Bağımlılıkları Kurma
Go’nun resmi ikili paketini kullanacak olsak bile, bazı temel geliştirme araçlarının sisteminizde bulunması faydalıdır. Özellikle Go’yu kaynak koddan derlemeyi düşünüyorsanız veya bazı Go araçlarının C/C++ kütüphanelerine bağımlılığı varsa, bu araçlar gerekli olacaktır. git ise Go modülleri aracılığıyla bağımlılıkları yönetirken sıkça kullanılan bir versiyon kontrol sistemidir.
Aşağıdaki komutla bu bağımlılıkları kurabilirsiniz:
sudo apt install build-essential git -y
* build-essential: Bu paket, derleme için gerekli olan GCC (GNU Compiler Collection), make ve diğer temel geliştirme araçlarını içerir. Go kendi derleyicisine sahip olsa da, bu paket genellikle sistemde bulunması gereken temel geliştirme altyapısını sağlar.
* git: Go projeleri genellikle Git kullanılarak versiyonlanır. Ayrıca, Go’nun go get komutu (Go modülleriyle birlikte go mod tidy veya go get komutları altında) uzak depolardan bağımlılıkları indirmek için Git’i kullanır.
Bu adımları tamamladıktan sonra, sisteminiz Go kurulumu için hazır hale gelmiş olacaktır.
Go Kurulum Yöntemleri
Go’yu Ubuntu 18.04’e kurmanın birkaç yolu vardır. Bu bölümde en yaygın ve önerilen yöntemleri detaylı bir şekilde ele alacağız: resmi ikili paket kullanarak kurulum ve apt paket yöneticisi ile kurulum.
1. Yöntem: Resmi İkili Paket Kullanarak Kurulum (Önerilen)
Bu yöntem, Go’nun en son kararlı sürümünü doğrudan Go’nun resmi web sitesinden indirip kurmanızı sağlar. Bu, genellikle en güncel Go sürümünü edinmenin ve üzerinde tam kontrol sahibi olmanın en iyi yoludur.
Go İkili Paketini İndirme
Go’nun resmi indirme sayfasına (https://golang.org/dl/) giderek en son kararlı sürümün Linux için olan ikili paketini bulmanız gerekir. Genellikle goX.Y.Z.linux-amd64.tar.gz formatında bir dosya olacaktır. Bu rehber yazıldığı sırada varsayımsal olarak go1.22.1.linux-amd64.tar.gz sürümünü kullanacağız. Siz her zaman en güncel sürümü indirmelisiniz.
Terminal üzerinden doğrudan indirelim:
# Go'nun en güncel sürümünü kontrol etmek için https://golang.org/dl/ adresini ziyaret edin.
Aşağıdaki linki güncel sürüme göre değiştirin.
wget https://golang.org/dl/go1.22.1.linux-amd64.tar.gz
wget komutu, belirtilen URL’den dosyayı mevcut dizininize indirecektir.
Paketi Çıkarma ve Taşıma
İndirdiğiniz tar.gz dosyasını tar komutuyla açmanız ve Go’yu sisteminizde uygun bir yere taşımanız gerekir. Genellikle /usr/local dizini, bu tür yazılımlar için standart bir konumdur. Bu dizine yazma iznine sahip olmak için sudo kullanmanız gerekecektir.
# İndirilen paketi /usr/local dizinine çıkarın
sudo tar -C /usr/local -xzf go1.22.1.linux-amd64.tar.gz
* sudo: Yönetici yetkileriyle komutu çalıştırmak için.
* tar: Arşiv dosyalarını yönetmek için kullanılan komut.
* -C /usr/local: Çıkarma işlemini /usr/local dizininde yapmasını söyler.
* -x: Arşivi çıkar (extract).
* -z: Gzip sıkıştırmasını çöz (decompress).
* -f go1.22.1.linux-amd64.tar.gz: İşlem yapılacak arşiv dosyasını belirtir.
Bu işlemden sonra Go, /usr/local/go dizinine kurulmuş olacaktır.
Ortam Değişkenlerini Ayarlama
Go’yu sisteminizde kullanılabilir hale getirmek ve Go projelerinizi doğru bir şekilde yönetmek için bazı ortam değişkenlerini ayarlamanız gerekmektedir. Bu değişkenler genellikle kullanıcı profil dosyanıza (~/.profile veya ~/.bashrc) eklenir, böylece her yeni terminal oturumunda otomatik olarak yüklenirler.
Go ile ilgili iki ana ortam değişkeni vardır: PATH ve GOPATH.
PATH Değişkenini Ayarlama
Go’nun çalıştırılabilir dosyalarına (örneğin go komutu) herhangi bir dizinden erişebilmek için, Go’nun bin dizinini sisteminizin PATH ortam değişkenine eklemeniz gerekir.
Aşağıdaki satırı ~/.profile veya ~/.bashrc dosyanızın sonuna ekleyin. ~/.profile genellikle tüm oturumlar için kullanılırken, ~/.bashrc sadece Bash kabuğu için geçerlidir. ~/.profile daha genel bir tercih olabilir.
# ~/.profile dosyasını açın (veya ~/.bashrc)
nano ~/.profile
Dosyanın en altına aşağıdaki satırı ekleyin:
export PATH=$PATH:/usr/local/go/bin
* export PATH=$PATH:/usr/local/go/bin: Bu satır, mevcut PATH değişkenine Go’nun bin dizinini ekler. Bu sayede go komutunu doğrudan terminalden çalıştırabilirsiniz.
GOPATH Değişkenini Ayarlama
Go’nun eski sürümlerinde (Go 1.11 öncesi) GOPATH, Go projelerinizin, bağımlılıklarınızın ve Go tarafından kurulan araçların depolandığı ana çalışma alanını tanımlayan çok önemli bir ortam değişkeniydi. Modern Go (Go 1.11 ve sonrası), Go Modülleri’ni tanıttı ve bu, projeleri GOPATH dışında herhangi bir yere yerleştirmenize olanak tanır. Ancak, Go tarafından kurulan bazı araçlar ve eski projeler hala GOPATH‘i kullanabilir. Bu nedenle, bir GOPATH tanımlamak iyi bir uygulamadır, ancak artık proje kaynak kodunuzun mutlaka bu dizinde olması gerekmez.
Genellikle GOPATH için kullanıcının ana dizininde go adında bir dizin oluşturulur.
# Go çalışma alanı için bir dizin oluşturun
mkdir -p ~/go
Ardından, bu dizini GOPATH olarak ayarlayın. ~/.profile dosyanızın sonuna aşağıdaki satırı ekleyin:
export GOPATH=$HOME/go
export PATH=$PATH:$GOPATH/bin
* export GOPATH=$HOME/go: GOPATH değişkenini kullanıcının ana dizinindeki go klasörüne ayarlar.
* export PATH=$PATH:$GOPATH/bin: Bu satır, GOPATH içindeki bin dizinini de PATH değişkenine ekler. Go tarafından go install komutuyla kurulan çalıştırılabilir programlar genellikle bu dizine yerleştirilir ve bu sayede komut satırından erişilebilir olurlar.
Değişiklikleri Uygulama
Ortam değişkenlerini içeren dosyayı düzenledikten sonra, değişikliklerin geçerli olması için terminal oturumunuzu yeniden başlatmanız veya aşağıdaki komutu çalıştırmanız gerekir:
source ~/.profile
veya
source ~/.bashrc
Bu komut, belirtilen dosyayı mevcut kabukta yeniden yükler ve ortam değişkenlerini günceller.
Kurulumu Doğrulama
Go’nun başarılı bir şekilde kurulup kurulmadığını ve ortam değişkenlerinin doğru ayarlanıp ayarlanmadığını doğrulamak için aşağıdaki komutları çalıştırın:
go version
echo $GOPATH
echo $PATH
* go version: Bu komut, yüklü Go sürümünü göstermelidir (örneğin, go version go1.22.1 linux/amd64). Eğer bu komut bir hata verirse (command not found), PATH ayarınızda bir sorun var demektir.
* echo $GOPATH: Bu komut, ayarladığınız GOPATH değerini (/home/kullanici_adiniz/go gibi) göstermelidir.
* echo $PATH: Bu komut, PATH değişkeninizin içeriğini göstermeli ve içinde /usr/local/go/bin ile $GOPATH/bin (yani /home/kullanici_adiniz/go/bin) yollarının bulunduğunu doğrulamalısınız.
Her şey yolundaysa, Go artık sisteminizde kullanıma hazırdır.
2. Yöntem: apt Paket Yöneticisi ile Kurulum
Bu yöntem daha basit ve hızlıdır, ancak Ubuntu 18.04 depolarında bulunan Go sürümü genellikle en son kararlı sürüm olmayabilir. Eğer en son özellikleri kullanmanız gerekmiyorsa veya hızlı bir kurulum tercih ediyorsanız bu yöntem uygun olabilir.
sudo apt install golang -y
Bu komut, Ubuntu’nun resmi depolarından Go paketini indirecek ve kuracaktır. Ubuntu 18.04’ün varsayılan depoları genellikle daha eski bir Go sürümünü (örneğin, Go 1.10 veya 1.11) içerir.
Ortam Değişkenlerini Ayarlama (Gerekliyse)
apt ile kurulumda Go genellikle sistem PATH‘ine otomatik olarak eklenir. Ancak GOPATH değişkenini yine de elle ayarlamanız gerekebilir. Yukarıdaki “Ortam Değişkenlerini Ayarlama” bölümündeki adımları takip ederek GOPATH‘i ayarlayabilirsiniz.
mkdir -p ~/go
nano ~/.profile
Dosyanın sonuna ekleyin:
export GOPATH=$HOME/go
export PATH=$PATH:$GOPATH/bin
Ardından değişiklikleri uygulayın:
source ~/.profile
Kurulumu Doğrulama
Yine go version komutu ile kurulu Go sürümünü kontrol edin:
go version
Eğer gördüğünüz sürüm sizin için yeterliyse, bu yöntemle de kurulumu tamamlamış olursunuz. Ancak modern Go projeleri için genellikle daha güncel bir Go sürümü (Go 1.16+) önerilir, bu nedenle ilk yöntem genellikle daha iyi bir seçenektir.
Yerel Programlama Ortamını Ayarlama
Go’yu kurduktan sonra, projelerinizi düzenlemek, kod yazmak ve çalıştırmak için bir programlama ortamı oluşturmanız gerekir. Bu bölüm, Go modülleriyle proje yönetimine odaklanacak ve popüler geliştirme ortamlarını ele alacaktır.
Go Çalışma Alanı ve Modüller
Go 1.11’den önce, tüm Go projelerinizin GOPATH içinde belirli bir dizin yapısını (src, pkg, bin) takip etmesi bekleniyordu. Ancak Go Modülleri’nin tanıtılmasıyla bu durum değişti. Go Modülleri, Go projelerinin bağımlılıklarını yönetmek için resmi ve önerilen yöntemdir ve projelerinizi GOPATH dışında herhangi bir yere yerleştirmenize olanak tanır.
* GOPATH‘in Rolü: Artık GOPATH genellikle Go’nun kendi araçlarını ve genel olarak kurulan Go programlarını depolamak için kullanılır. Projeleriniz artık GOPATH/src altında olmak zorunda değildir.
* Modül Modu: Go Modülleri, her projenin kendi bağımlılıklarını izlemesini ve yönetmesini sağlar. Bu, farklı projelerin farklı bağımlılık sürümlerine sahip olmasını mümkün kılar ve “bağımlılık cehennemi”ni önler.
İlk Go Programı
Go kurulumunuzu test etmek ve çalışma ortamınızın doğru ayarlandığından emin olmak için basit bir “Merhaba Dünya” programı yazalım.
1. Proje Dizini Oluşturma:
GOPATH dışında, istediğiniz herhangi bir yerde yeni bir proje dizini oluşturun.
mkdir ~/go-projelerim
cd ~/go-projelerim
mkdir hello-world
cd hello-world
2. Go Modülü Başlatma:
Bu dizinde yeni bir Go modülü başlatın. Bu komut, projenizin bir Go modülü olduğunu belirten go.mod adında bir dosya oluşturacaktır.
go mod init example.com/hello-world
example.com/hello-world yerine kendi modül yolunuzu yazabilirsiniz. Bu genellikle projenizin depolandığı Git deposunun yolu olur (örneğin, github.com/kullaniciadi/projeadi).
3. main.go Dosyasını Oluşturma:
hello-world dizini içinde main.go adında bir dosya oluşturun ve aşağıdaki kodu içine yapıştırın:
nano main.go
package main
import "fmt"
func main() {
fmt.Println("Merhaba, Go Dünyası!")
}
* package main: Bu, Go’da çalıştırılabilir bir programın giriş noktası olduğunu belirtir.
* import "fmt": fmt (format) paketi, metin biçimlendirme ve yazdırma işlevleri sağlar.
* func main(): main fonksiyonu, çalıştırılabilir Go programlarının başlangıç noktasıdır.
* fmt.Println(...): Konsola bir metin satırı yazdırır.
4. Programı Çalıştırma:
Kaydettiğiniz main.go dosyasını çalıştırmak için terminalde aşağıdaki komutu kullanın:
go run main.go
Çıktı olarak Merhaba, Go Dünyası! görmelisiniz. Bu, Go kurulumunuzun ve temel programlama ortamınızın düzgün çalıştığını gösterir.
Go Modülleri ile Proje Yönetimi
Go modülleri, projelerin bağımlılıklarını yönetmenin modern yoludur.
* go.mod: Projenizin modül yolunu ve bağımlılıklarını (modül adları ve sürümleri) listeler.
* go.sum: Bağımlılıkların kriptografik özetlerini içerir ve bu sayede bağımlılıkların güvenliğini ve bütünlüğünü sağlar.
Yeni bir bağımlılık eklediğinizde (örneğin, kodunuzda yeni bir paket import ettiğinizde), aşağıdaki komutu çalıştırarak go.mod ve go.sum dosyalarını güncelleyebilirsiniz:
go mod tidy
Bu komut, projenizin kullandığı tüm bağımlılıkları indirir ve go.mod ve go.sum dosyalarını senkronize eder.
Geliştirme Ortamı (IDE/Text Editor) Seçimi
Go geliştirmesi için birçok harika araç mevcuttur. İşte en popüler olanlardan bazıları:
VS Code (Visual Studio Code)
Microsoft tarafından geliştirilen VS Code, hafif, hızlı ve güçlü bir kod düzenleyicidir. Zengin eklenti ekosistemi sayesinde Go geliştirmesi için mükemmel bir IDE alternatifi haline gelmiştir.
Kurulumu
VS Code’u Ubuntu 18.04’e kurmak için birkaç yöntem vardır:
1. Snapcraft ile (En Kolay):
sudo snap install --classic code
2. Debian Paketi ile:
VS Code’un resmi web sitesinden (.deb paketi) indirip elle kurabilirsiniz:
wget https://go.microsoft.com/fwlink/?LinkID=760868 -O vscode.deb
sudo dpkg -i vscode.deb
sudo apt install -f # Bağımlılık sorunlarını düzeltmek için
Go Eklentisi
VS Code’u kurduktan sonra, Go geliştirme deneyimini zenginleştirmek için Go eklentisini yüklemeniz gerekir.
1. VS Code’u açın.
2. Sol taraftaki “Uzantılar” simgesine tıklayın (veya Ctrl+Shift+X).
3. Arama kutusuna “Go” yazın.
4. “Go” eklentisini (genellikle Go Team tarafından yayınlanan) bulun ve “Install” düğmesine tıklayın.
Gerekli Araçları Kurma
Go eklentisini kurduktan sonra, VS Code size Go geliştirme için gerekli ek araçları (dil sunucusu, linter, debugger vb.) kurmanızı önerecektir. Sağ altta beliren bildirimde “Install All” seçeneğini tıklayarak veya komut paletini (Ctrl+Shift+P) açıp “Go: Install/Update Tools” yazarak bu araçları kurabilirsiniz.
Bu araçlar şunları içerir: gopls (Go dil sunucusu), dlv (debugger), goimports, golint, vb. Kurulum tamamlandığında, VS Code Go kodunuz için otomatik tamamlama, hata denetimi, biçimlendirme, hata ayıklama gibi gelişmiş özellikler sunacaktır.
GoLand (JetBrains GoLand)
GoLand, JetBrains tarafından özel olarak Go geliştiricileri için tasarlanmış ücretli bir IDE’dir. Çok daha zengin özellik setine, daha gelişmiş refactoring yeteneklerine ve derinlemesine entegrasyonlara sahiptir. Profesyonel geliştirme için güçlü bir seçenektir.
Vim/Neovim
Terminal tabanlı editörleri tercih edenler için Vim veya Neovim, uygun eklentilerle (örneğin vim-go) güçlü bir Go geliştirme ortamı haline getirilebilir. Bu, daha deneyimli kullanıcılar için uygundur.
Diğer Editörler
Sublime Text, Atom gibi diğer popüler metin düzenleyicileri de Go eklentileri aracılığıyla Go geliştirmeyi destekler. Seçiminiz, kişisel tercihinize ve iş akışınıza bağlıdır.
Go Araçları ve Komutları
Go, geliştirme sürecini kolaylaştıran bir dizi yerleşik komut satırı aracına sahiptir. Bu araçlar, kodunuzu derlemek, çalıştırmak, test etmek, biçimlendirmek ve bağımlılıkları yönetmek için kullanılır.
* go run : Tek bir Go kaynak dosyasını derler ve çalıştırır. Derlenmiş ikili dosyayı kalıcı olarak kaydetmez. Hızlı testler ve küçük betikler için idealdir.
go run main.go
* go build [paket_yolu]: Belirtilen paketi veya mevcut dizindeki Go kaynak dosyalarını derler. Derlenmiş çalıştırılabilir dosyayı mevcut dizine (veya belirtilen bir konuma) kaydeder. Dağıtıma hazır uygulamalar oluşturmak için kullanılır.
go build -o benimuygulamam
./benimuygulamam
* go install [paket_yolu]: Bir paketi derler ve çalıştırılabilir dosyasını GOPATH/bin dizinine kurar. Bu, genellikle komut satırı araçlarını sisteminizde kullanılabilir hale getirmek için kullanılır.
go install example.com/mytool
# mytool artık komut satırından çağrılabilir
* go get [paket_yolu]: Go 1.16’dan itibaren go get komutu, go.mod dosyasına bağımlılık eklemek için değil, genellikle go install ile birlikte uzaktaki modülleri kurmak için kullanılır. Modül modunda, bağımlılıkları eklemek için go mod tidy kullanılır ve import ifadesi yeterlidir.
# Bir aracı kurmak için (Go 1.16+)
go install golang.org/x/tools/gopls@latest
* go test [paket_yolu]: Bir paketin testlerini çalıştırır. Go’nun standart kütüphanesi, birim testleri yazmak için basit ama güçlü bir çerçeve sağlar.
go test ./... # Mevcut modüldeki tüm testleri çalıştırır
* go fmt [dosya_yolu]: Go kaynak kodunu Go’nun standart biçimlendirme kurallarına göre otomatik olarak biçimlendirir. Bu, kod tutarlılığını sağlar. Çoğu IDE, kaydederken otomatik olarak go fmt‘i çalıştıracak şekilde yapılandırılabilir.
go fmt main.go
* go mod : Go modülleriyle ilgili işlemleri yönetir.
* go mod init : Yeni bir Go modülü başlatır ve go.mod dosyası oluşturur.
* go mod tidy: Projenin bağımlılıklarını tarar, kullanılmayanları kaldırır ve eksik olanları ekler. go.mod ve go.sum dosyalarını günceller.
* go mod download: go.mod dosyasında listelenen tüm bağımlılıkları indirir.
* go mod vendor: Bağımlılıkları projenin vendor dizinine kopyalar.
Bu komutlar, Go geliştirme sürecinizin temelini oluşturur ve günlük iş akışınızda sıkça kullanacağınız araçlardır.
Sorun Giderme ve Sıkça Sorulan Sorular
Go kurulumu veya ortam ayarı sırasında karşılaşabileceğiniz yaygın sorunlar ve çözümleri:
command not found: go Hatası
Bu hata, sisteminizin go komutunun nerede olduğunu bulamadığı anlamına gelir.
* Çözüm: PATH ortam değişkeninizin doğru ayarlandığından emin olun.
* ~/.profile veya ~/.bashrc dosyanızda export PATH=$PATH:/usr/local/go/bin satırının olduğundan emin olun.
* Dosyayı kaydettikten sonra source ~/.profile (veya source ~/.bashrc) komutunu çalıştırarak veya terminali kapatıp yeniden açarak değişiklikleri uygulayın.
* echo $PATH komutuyla PATH değişkeninizin içeriğini kontrol edin ve /usr/local/go/bin yolunun orada olup olmadığını doğrulayın.
Ortam Değişkenleri Sorunları
GOPATH veya diğer özel Go ortam değişkenlerinizin doğru ayarlanmadığını düşünüyorsanız:
* Çözüm:
* echo $GOPATH gibi komutlarla değişkenlerin mevcut değerlerini kontrol edin.
* ~/.profile veya ~/.bashrc dosyanızı tekrar kontrol edin. Yazım hatalarına dikkat edin.
* Değişiklikleri her zaman source komutuyla veya yeni bir terminal oturumu açarak uyguladığınızdan emin olun.
Modül Yönetimi Sorunları (go.mod hataları)
Go modülleriyle ilgili hatalar alıyorsanız (örneğin, “module not found”, “go.mod file not found”):
* Çözüm:
* Proje dizininizde olduğunuzdan emin olun.
* go mod init komutunu çalıştırarak projenizin bir Go modülü olarak başlatıldığından ve go.mod dosyasının mevcut olduğundan emin olun.
* Yeni bağımlılıklar ekledikten sonra veya bağımlılıklarla ilgili sorunlar yaşadığınızda go mod tidy komutunu çalıştırın. Bu, go.mod ve go.sum dosyalarını senkronize eder ve eksik bağımlılıkları indirir.
* Bazen go clean --modcache komutunu çalıştırarak Go modül önbelleğini temizlemek ve ardından go mod tidy ile bağımlılıkları yeniden indirmek sorunları çözebilir.
Go Sürüm Farklılıkları
Farklı Go sürümlerinin farklı davranışlar sergileyebileceğini unutmayın. Özellikle apt ile kurulan Go sürümü eski olabilir.
* Çözüm: En son Go özelliklerini kullanmak veya modern Go projeleriyle çalışmak için her zaman resmi ikili paketi kullanarak en son kararlı Go sürümünü kurmanız önerilir. Gerekirse, farklı Go sürümleri arasında geçiş yapmak için goenv gibi araçları kullanabilirsiniz.
Proxy veya Ağ Sorunları
go get veya go mod tidy komutları bağımlılıkları indirirken ağ sorunları veya proxy ayarları nedeniyle başarısız olabilir.
* Çözüm:
* İnternet bağlantınızın aktif olduğundan emin olun.
* Eğer bir proxy arkasındaysanız, HTTP_PROXY ve HTTPS_PROXY ortam değişkenlerini ayarlamanız gerekebilir:
export HTTP_PROXY="http://proxy.example.com:8080"
export HTTPS_PROXY="http://proxy.example.com:8080"
Bu değişkenleri de ~/.profile dosyanıza ekleyebilirsiniz.
Bu sorun giderme ipuçları, Go geliştirme ortamınızı kurarken veya kullanırken karşılaşabileceğiniz yaygın engelleri aşmanıza yardımcı olacaktır.
Sonuç
Bu kapsamlı rehberde, Go programlama dilini Ubuntu 18.04 işletim sistemi üzerine kurmanın ve yerel bir geliştirme ortamı oluşturmanın tüm adımlarını detaylı bir şekilde inceledik. Go’nun temel özelliklerinden ve neden tercih edildiğinden başlayarak, sistem hazırlıklarını, iki farklı kurulum yöntemini (resmi ikili paket ve apt paket yöneticisi), ortam değişkenlerinin doğru ayarlanmasını ve kurulumun doğrulanmasını adım adım ele aldık.
Ayrıca, modern Go geliştirmenin merkezinde yer alan Go modülleriyle proje yönetimini, ilk “Merhaba Dünya” programınızı nasıl yazacağınızı ve çalıştıracağınızı gösterdik. Geliştirme sürecinizi kolaylaştıracak Visual Studio Code gibi popüler IDE’lerin kurulumunu ve Go eklentilerinin yapılandırılmasını detaylandırdık. Go’nun temel komut satırı araçlarını (go run, go build, go test, go mod vb.) tanıttık ve karşılaşabileceğiniz yaygın sorunlara yönelik çözümler sunduk.
Artık Go’nun gücünden yararlanarak yüksek performanslı, eşzamanlı ve güvenilir uygulamalar geliştirmeye hazırsınız. Go’nun basitliği ve verimliliği sayesinde, web servislerinden komut satırı araçlarına kadar geniş bir yelpazede projeler oluşturabilirsiniz. Go topluluğu oldukça aktif ve destekleyicidir; bu rehberdeki bilgileri temel alarak kendi Go yolculuğunuza güvenle başlayabilirsiniz. Unutmayın, pratik yapmak ve Go’nun zengin standart kütüphanesini keşfetmek, dil üzerinde ustalaşmanın anahtarıdır. Başarılar dileriz!
