Go statik olarak türlendirilmiş bir programlama dilidir. İlk olarak Google tarafından tasarlanan Go, sözdizimi açısından C ile benzerlikler taşır. Ancak işlevsellik açısından Go; bellek güvenliği, çöp toplama (garbage collection), yapısal türlendirme vb. gibi ek özelliklerle birlikte gelir. Son birkaç yıldır Go, inanılmaz bir popülerlik kazanmaktadır.
Bu kılavuz, demo bir Go programı yardımıyla Go programlarını derleme ve yükleme adımlarını inceleyecektir.
Go Derleme ve Yükleme
Daha ileri gitmeden önce, Go programlama bağlamında derleme (building) ve yüklemenin (installing) ne anlama geldiğine hızlıca bir göz atalım.
Go programlamada derleme, kaynak kodun ikili bir yürütülebilir dosyaya (binary executable) dönüştürülmesi sürecini ifade eder. Yürütülebilir dosya, hedef platformda bağımsız olarak çalışabilmesi için gerekli destek kodlarını içerecektir. Ruby/Python programlarının aksine, Go ikili dosyaları genellikle yeni bir sistemde çalışmak için herhangi bir sistem bağımlılığı gerektirmez.
Go ikili dosyasını sistemdeki yürütülebilir bir dosya yoluna yerleştirmek, programı yüklemek olarak adlandırılır. Daha önce de belirtildiği gibi, bu kılavuz basit bir Go “Hello world” programının çalıştırılmasını, derlenmesini ve yüklenmesini gösterecektir.
Gereksinimler
Başlamadan önce, öğreticiyi takip etmek için karşılamanız gereken gereksinimleri gözden geçirelim:
- Düzgün yapılandırılmış bir Ubuntu 20.04. Şuna göz atın: how to install and configure an Ubuntu server.
- Sudo yetkisine sahip, root olmayan bir kullanıcı. Sistem düzeyinde değişiklikler yapmak için root izni gereklidir. Bu öğreticiden şunun nasıl yapılacağını öğrenebilirsiniz: root olmayan bir kullanıcıya root yetkisi verme.
- Düzgün yapılandırılmış Go programlama ortamı.
İlk olarak, Go programlama ortamının kurulmasını ve yapılandırılmasını hızlıca gözden geçireceğiz. Daha derinlemesine, adım adım bir Go kurulum kılavuzu için buraya bakın.
Go Kurulumu
Go, tüm büyük platformlarda (Windows, Linux ve macOS) mevcuttur. Resmi olarak doğrudan Golang üzerinden edinilebilir. Web sitesinin adı nedeniyle Go, genellikle Golang olarak adlandırılır. Burada, Go programlama dilini her zaman Go ve Golang web sitesini Golang olarak adlandıracağız.
Golang, şunun hakkında ayrıntılı belgeler sunar: desteklenen tüm platformlar için Go kurulumu. Ancak resmi yöntem manuel kurulumu açıklar. Her yeni sürüm yayınlandığında, kurulumu manuel olarak en son sürüme güncellemeniz gerekir. Bunun yerine, Go'yu doğrudan APT (varsayılan Ubuntu depolarından) veya snap (şuradan: Snapcraft).
● APT kullanarak Go Kurulumu
Go, resmi Ubuntu depolarından doğrudan edinilebilir. Ancak her zaman Go'nun en son sürümü olmayabilir. Ubuntu deposunda Go'nun iki varyasyonu da mevcuttur: golang-go ve gccgo-go. golang-go Golang'in resmi sürümüyken, gccgo-go ise GCC için Go ön ucudur (GNU derleyicisinin bir parçası olarak). Genellikle, golang-go tercih edilen seçenektir.
To install golang-go kurulumunu yapmak için aşağıdaki APT komutunu çalıştırın:
|
1 |
sudo apt update && sudo apt install golang-go |

Go sürümünü kontrol edin:
|
1 |
go version |
● snap kullanarak Go Kurulumu
Snap'ler, desteklenen herhangi bir dağıtıma kurulabilen evrensel Linux paketleridir. Snapcraft, tüm kurulum kılavuzlarıyla birlikte desteklenen dağıtımları listeler. Ubuntu'da snap desteği varsayılan olarak etkindir. Go, bir snap olarak da mevcuttur. Bunun resmi olarak Golang tarafından sürdürülmediğini unutmamanız gerekir. Snap paketi, üçüncü taraf bir sağlayıcı tarafından yönetilmektedir.
Go snap kurulumunu yapmak için aşağıdaki komutu çalıştırın:
|
1 |
sudo snap install go --classic |

Ardından, Go sürümünü kontrol edin:
|
1 |
go version |
Bir Go Projesi Kurma
Sistemimiz, Go'da uygulamalar geliştirmeye başlamak için gerekli tüm araçlara sahiptir. Demo projemizi oluşturma zamanı. İlk olarak, projemiz için özel bir dizin oluşturun:
|
1 |
mkdir -v demo_project |

Ardından, mevcut dizini yeni oluşturulan dizinle değiştirin:
|
1 |
cd demo_project/ |

Burada, main.go:
|
1 |
nano main.go |
Aşağıdaki kod, çalıştırıldığında “Hello world” yazdıracak basit bir program içerir. Kodu kopyalayın:
|
1 2 3 4 5 6 7 |
package main import "fmt" func main() { fmt.Println("hello world!") } |

Dosyayı kaydedin ve düzenleyiciyi kapatın. Kodun düzgün çalıştığını doğrulayın:
|
1 |
go run main.go |

Go derleyicisi kaynak dosyayı bir ikili (binary) dosyaya derledi ve çalıştırdı. Ayrıca programın başarıyla çalıştığını doğrular.
Go Çalışma Alanı Yapılandırması
Go programlarını düzgün bir şekilde yüklemek için Go çalışma alanını ve GOPATH'i yapılandırmamız gerekir.
İlk olarak, dizin yapısını oluşturun:
|
1 |
mkdir -pv $HOME/go/{bin,src} |

Ardından, değerini tanımlamamızGOPATH ve bunu PATH yoluna eklememiz gerekir. bashrc dosyasını açın:
|
1 |
nano ~/.bashrc |

Dosyanın sonuna aşağıdaki satırları ekleyin:
|
1 2 3 |
export GOPATH=$HOME/go export GOBIN=$GOPATH/bin export PATH=$PATH:$GOPATH/bin:/usr/local/go/bin |

Yeniden yükleyin: bashrc:
|
1 |
source ~/.bashrc |
Değişikliğin başarılı olup olmadığını doğrulayın:
|
1 |
echo $PATH |
Go İkililerini Derleme
Bu bölümde, Go kodlarının dağıtılabilir bağımsız bir ikili (binary) dosyaya nasıl derleneceği gösterilecektir. İkili dosya, yalnızca Go kodunu değil, aynı zamanda ikiliyi çalıştırmak için ek sistem kodlarını da içerecektir. Kodumuzu derlemek için aşağıdaki komutu çalıştırın:
|
1 |
go build main.go |

Birden fazla Go kodu dosyası varsa, aşağıdaki komutu kullanın:
|
1 |
go build |
Herhangi bir dosya belirtilmezse, Go geçerli dizindeki Go dosyalarını arayacak ve hepsini derleyecektir. Her ikili dosya, kaynak Go dosyasının adını alır. Bu örnekte Go, programını derledi.main. Programı çalıştırın:
|
1 |
./main |

Bu program diğer bilgisayarlara dağıtılmaya hazırdır.
● İkili dosya adını değiştirme
Derleme yaparken Go, yürütülebilir dosya için otomatik olarak bir ad seçecektir. Ad seçimi söz konusu olduğunda iki olası seçenek vardır.
- Eğer Go modülleri kullanılıyorsa, yürütülebilir dosya modül adının son kısmını kullanacaktır.
- Herhangi bir Go modülü kullanılmıyorsa, Go geçerli dizinin adını veya kaynak dosyanın adını kullanacaktır.
Daha karmaşık programlarla çalışmak farklı bir adlandırma kuralı gerektirir. Bu tür senaryolarda, bu varsayılan adlandırma yöntemleri pek kullanışlı değildir. Böyle bir durumda en iyi yol, bayrağını kullanarak çıktıyı özelleştirmektir.-o. Kısa bir gösterim yapalım. Go programını -o bayrağıyla farklı bir dosya adı belirterek derleyin:
|
1 |
go build -o bin/hello |

bayrağı,-o Go'ya çıktıyı verilen argümanla eşleştirmesini söyler. Bu durumda, yürütülebilir dosya dizini altında yer alacakbin ve adı olacaktır.hello.
Ardından, yeni yürütülebilir dosyayı test edin:
|
1 |
./bin/hello |
Go Programlarını Yükleme
Şimdiye kadar, kaynak dosyalardan dağıtılabilir Go ikililerinin nasıl derleneceğini gösterdik. Bunları diğer sistemlere dağıtabilir, konuşlandırabilir ve testler gerçekleştirebiliriz. Ancak, kaynak dizinlerinin dışında çalıştırılamazlar. Programı aktif olarak kullanmayı planlıyorsanız, bu kısıtlama çok can sıkıcı olabilir. İşleri kolaylaştırmak için Go programlarını yükleyebilir ve bunlara sistem genelinde her yerden erişebiliriz.
Programı yüklemek için kaynak dizininde aşağıdaki Go komutunu çalıştırın:
|
1 |
go install |

Bu komut, komutuyla aynı şekilde davranır.go build. Ancak, yürütülebilir dosyayı kaynak dizinde bırakmak yerine aşağıdaki dizine yerleştirir:
|
1 |
$GOPATH/bin |
veGOPATH değişkenleri,GOBIN Go'ya Go çalışma alanlarını nerede arayacağını söyler. GOPATH için varsayılan konum $HOME/go konumudur. Biz değeriniGOBIN manuel olarak $GOPATH/bin olarak ayarladık. veGOPATH konumunu kontrol etmek içinGOBIN aşağıdaki komutu kullanın:
|
1 |
go env GOPATH |
|
1 |
go env GOBIN |

Şu dizinin içeriğini kontrol edin: $GOPATH/bin. Programımız orada olmalıdır:
|
1 |
ls $GOPATH/bin |

Kurulumun başarılı olup olmadığını doğrulama zamanı. Geçerli dizini farklı bir konuma değiştirin ve Go programını çalıştırmayı deneyin:
|
1 |
demo_project |

Son olarak, programlarınızı alıp sisteminize yükleyebilmelisiniz. Onları ihtiyaç duyduğunuz her an ve her yerden kullanabilirsiniz.
Son Düşünceler
Bu eğitimde, kaynak kodlardan çalıştırılabilir ikili dosyalar oluşturmak için Go araç zincirlerinin nasıl kullanılacağını başarıyla gösterdik. Bu ikili dosyalar, herhangi bir Go yapılandırması olmasa bile diğer sistemlerde kullanılabilir. Son olarak, Go programının sistemin her yerinden erişilebilir olması için nasıl kurulacağını gösterdik.
Geliştiriciler için, CloudSigma, Go API desteği sunar bulut sunucularınızı yönetmeniz için. Kaynakları düzenlemeye ve altyapı ölçeklendirmesine olanak tanır.
Keyifli Çalışmalar!




Yorumlar
Henüz yorum yapılmamış. İlk siz olun.