Julia: Pkg Paket Yöneticisi Yönetimi – Bölüm 2

Herkese selamlar ve sağlıklı günler. 🙂

Julia programlama dili serimizin ikinci bölümüyle tekrardan bir aradayız. Bu bölümde, önceki bölümde kurulumunu gerçekleştirdiğimiz ve tanıdığımız Julia programlama dilinin paket yöneticisi olan Pkg’yi ele alacağız. Temel olarak Pkg’nin yapısından söz edip, yönetimini keşfedeceğiz.

O halde ne duruyoruz hemen başlayalım! 🙂

Bölümler

Bölüm İçeriği

Aşağıda Julia dersleri Bölüm 2 kapsamındaki başlıklar listelenmiştir.

  1. Pkg Paket Yöneticisi
  2. Pkg Paket Yöneticisi Yönetimi

1. Pkg Paket Yöneticisi

Pkg, Julia’nın 1.0 sürümü ve daha sonraki sürümleri için yerleşik, dahili standart paket yöneticisidir ve paketleri yükleme, güncelleme ve kaldırma gibi işlemleri gerçekleştirmemizi sağlamaktadır.

Tek bir global paket setini kuran ve yöneten geleneksel paket yöneticilerinin aksine, Pkg daha farklı hatlara sahip olacak şekilde tasarlanmıştır. Tasarım konsepti “enviroments” olarak adlandırılmaktadır. Bu tasarım bağımsız bir projede yerel olabilecek veya paket adıyla paylaşılabilen ve seçilebilen bağımsız paket setlerinden oluşmaktadır. Bir ortamdaki paketlerin ve sürümlerin tam kümesi, bir proje havuzunda kontrol edilebilir ve sürüm kontrolünde izlenebilir ayriyeten projelerin yeniden üretilebilirliğini önemli ölçüde artıran bir bildirim dosyasında barındırılır. Bu oldukça güzel bir yaklaşımdır: diyelim ki bir süredir kullanmadığınız bir kodu çalıştırmayı denediniz ve projenizin kullandığı bazı paketleri güncellediğiniz veya kaldırdığınız için çalışmıyorlar. Bir sürü onarım ile uğraşmak işten bile değil…

Şimdi güzel yanına gelecek olursak: Pkg’de, her proje kendi bağımsız paket sürümlerini koruduğundan böyle bir sorun ile karşı karşıya kalmayacaksınız. Bir projeyi yeni bir sistemde çalıştırmak istediğinizde de, sadece manifest dosyası tarafından tanımlanan ortamı oluşturabilir ve hemen iyi bilinen bir bağımlılık kümesiyle çalışmaya başlayabilirsiniz.

Ortamlar birbirinden bağımsız olarak yönetilip güncellendiğinden, Pkg’da bağımlılık problemleri önemli ölçüde azaltılmıştır. Yeni bir projede bir paketin en güncel sürümünü kullanmak istiyorsanız, ancak farklı bir proje için eski bir sürüme bağlı kalsanız dahi sorun değil çünkü projeler arasında ayrı ortamlar olduğundan, farklı sürümler kullanılabilmektedir. Her paket sürümünün konumu standarttır, bu nedenle ortamlar aynı paket sürümlerini kullandığında, kurulumları paylaşabilir ve paketin gereksiz şekilde çoğaltılmasını önleyebilirler.

Pkg’ın yerel ortamlara yaklaşımı, Python’un virtualenv veya Ruby’nin gem paket yöneticisine aşinalık yaratabilir. Julia’da, çevreleri desteklemek için dilin kod yükleme mekanizmalarını kesmek yerine, Julia’nın onları yerel olarak algılaması avantajı bulunur. Buna ek olarak, Julia ortamları istiflenebilirdir yani bir ortamı diğeriyle kaplayabilir ve böylece birincil ortamın dışındaki ek paketlere erişebilirsiniz. Bu, birincil çevre sağlayan bir projede çalışmayı kolaylaştırırken, hata ayıklayıcılar ve benzeri tüm olağan geliştirici araçlarınıza, yalnızca daha sonra yükleme yolunda bu geliştirici araçları içeren bir ortama sahip olarak erişmenizi kolaylaştırır.

Son olarak, Pkg birleşik paket kayıtlarını desteklemek üzere tasarlanmıştır. Bu, farklı taraflarca yönetilen birden çok kaydın sorunsuz bir şekilde etkileşime girmesine izin verildiği anlamına gelmektedir.

2. Pkg Paket Yöneticisi Yönetimi

Pkg’nin yönetimi oldukça kolaydır. İster kendi dahili Pkg REPL kabuğu üzerinden, isterseniz de Julia REPL kabuğu üzerinden kolaylıkla paket yönetim işlemlerinizi gerçekleştirebilirsiniz.

Julia REPL ile Yönetimi

Şimdi örnek olarak, Julia etkileşimli kabuğuyla paket kurma, paket kaldırma, paket güncelleme işlemlerini nasıl yapabileceğimizi görelim.

Adım 1: Uçbirimden “julia” komutuyla Julia REPL kabuğuna erişin.

Adım 2: Julia REPL üzerinde Pkg’yi kullanabilmek için Pkg’yi tanımlayın.

Şimdi işlemlerimizi yapmaya hazırız. 🙂

Adım 3: Örnek bir kurulum olarak Julia betikleri içerisinde Python fonksiyonları çağırmaya olanak tanıyan “PyCall” paketini sistemimize kuralım.

Siz de sisteminize dahil etmek istediğiniz paketleri yukarıdaki gibi yükleyip, kullanabilirsiniz. 🙂

Paket Kaldırma

Paket Güncelleme

Paketleri Kontrol Etme

Sisteminizde yüklü olan paketleri sürümleriyle birlikte görüntüleme.

Pkg REPL ile Yönetimi

Julia REPL kabuğu olduğu gibi Pkg’nin de işlevsel bir kabuğu bulunmaktadır.

Pkg REPL kabuğuna komut satırınızdan Julia’yı çağırıp daha sonrasında “]” karakteri ile geçiş yapabilirsiniz.

Pkg istemcisi üzerinde aşağıdaki kullanımlar ile paketleri rahatlıkları yönetebilirsiniz:

Çalışma Ortamı Oluşturma

Bu noktaya kadar temel paket yönetimini ele aldık. Bölümün başında da belirttiğimiz gibi Pkg, çevreye bağımlılıklar düzenleyerek geleneksel paket yöneticilerine göre önemli avantajlar sunar.

REPL komut isteminde (v1.4) öğesini fark etmiş olabilirsiniz. Bu, v1.4’in aktif ortam olduğunu bilmemizi sağlar. Aktif ortam, add, rm ve update gibi Pkg komutlarıyla değiştirilecek ortamdır.

Hemen örnek bir ortam oluşturalım:

Yukarıdaki komut ile birlikte Pkg bize yeni bir ortam oluşturduğumuzu ve bu ortamın hangi dizininde saklanacağını bildirdi ve yeni aktif ortamı yansıtmak için REPL istemcisini güncelledi.

Yeni çalışma ortamımızın istemcisinde status ile ortamın durumunu görüntüleyebiliriz. Yukarıdaki bildiride bastırılan dosya yolu etkin ortamın proje dosyasının konumudur. Proje dosyası, Pkg’ın bir ortam için meta verileri depoladığı yerdir. Bu yeni ortamın boş olduğuna dikkat edin.

Bir paket ekleyelim ve gözlemleyelim:

Artık bağımlılık olarak eklediğimiz paketin olduğunu görebiliriz.

Develop

Diyelim ki Ornek paketi üzerinde çalışıyoruz ve yeni işlevlere ihtiyacımız var. Kaynak kodunu nasıl değiştirebiliriz? Git klonunu kurmak için aşağıdaki komutu kullanabiliriz.

Bir sonraki bölümde görüşmek dileğiyle. 🙂

One thought on

Julia: Pkg Paket Yöneticisi Yönetimi – Bölüm 2

Bir cevap yazın