R Paket Kontrolleri ve Güncelleme İşlemleri

R sürüm yükseltme işlemi sonrasında artık paket güncelleme işlemine de geçebiliriz. Elbette yazıda bahsi geçen paketlerin taşınması ve benzer bir durumun olmadığını varsayıyor ve paketlerin güncellenmesini harici bir ihtiyaç olarak ele alıyorum.

Öncelikle kurulu sürümlerin ve bu sürümler dahilinde tutulan paketlerin olup olmadığını kontrol edelim.

.libPaths()

Fonksiyonun uygulanmasının ardından sürümler dahilindeki aşağıdakine benzer şekilde kütüphanelerin listesini görüntüleyeceğiz.

[1] /Library/Frameworks/R.framework/Versions/3.5/Resources/library
[2] /Library/Frameworks/R.framework/Versions/3.4/Resources/library
[3]...

Aktif Dizindeki Paketlerin Güncellenmesi

Eğer görüntülenen pek bir dizin ise old.packages() fonksiyonu ile yeni sürümü bulunan paketlerin kontrollerini sağlayabiliriz. Bu işlemler aktif dizindeki yani .libPaths()[1]‘de görüntülenen kütüphanedeki paketlerin güncellenmesini sağlayacaktır.

old.packages()

Paketlerin tamamı güncel ise NULL dönüşü alacağız. Aksi durumda ise güncelleme işlemini update.packages() fonksiyonu ile başlatabiliriz.

update.packages()

Ayrıca aşağıdaki şekillerde de yükleme işlemleri gerçekleştirilebilir.

# herhangi bir uyarı ve onay gerektirmeksizin tüm paketlerin güncellenmesi
update.packages(ask = FALSE)
 
# sadece belirtilen paket veya paketlerin güncellenmesi
install.packages("plotly")

Güncelleme işlemleriyle ilgili olarak ayrıca tek satırda da çoklu paket yönetimi gerçekleştirmeniz mümkün.

Peki, ayrı bir dizinde yer alan paketlerin sürümlerini kontrol edebilir ve güncellenmelerini sağlayabiriz?

Farklı Dizindeki Paketlerin Güncellenmesi

.libPaths() fonksiyonu sonunda dönen birden fazla sürüme ait kütüphane olduğunu varsayalım. Paketlerde özelleştirmeler yapmamız söz konusu olmuş olabilir ve böyle bir durumda kontrollü bir şekilde güncelleme işlemi yapmak isteyebiliriz. install.packages() fonksiyonu üzerinden bu işlemi gerçekleştirebiliriz. Aktif sürüm dışındaki bir dizinde işlemler gerçekleştireceğimizi varsayarak devam edelim o halde. .libPaths() ile ilgili dizini belirterek işlemlerimizi başlatabiliriz. Örneğin [2]’de dönen dizini ele alalım.

install.packages(as.character(as.data.frame(installed.packages(.libPaths()[2]))$Package))

Ya da güncelleme işlemini install.packages fonksiyonuna ait parametrelerle özelleştirerek uygulamak istersek;

install.packages(lib  = lib <- .libPaths()[2], as.data.frame(installed.packages(.libPaths()[2]), stringsAsFactors=FALSE)$Package, type = 'source', dependencies = TRUE)

Bu satırları uyguladığınızda (Run) grafik arayüzü üzerinden Ctrl tuşu ile çoklu seçim yaparak sadece belirttiğiniz paketler için günceleme işlemini başlatabilirsiniz.

Son olarak, paketlerin Status, Sürüm ve benzeri bilgilerine göre değerlendirme yapmak ve güncelleme işlemlerini gerçekleştirmek isteyebileceğimiz durumlara istinaden şu satırları uygulayabiliriz.

pkgs <- packageStatus()$inst
install.packages(pkgs[pkgs$Status != "ok", c("Package", "Version", "Built", "Status")]$Package)

pkgs değerlerini döktüğünüzde belirttiğiniz durumlara istinaden paketleri filtreleyebilir ve sadece bu paketlerin güncellenmesini sağlayabilirsiniz.

Leave a Reply

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir