Raspberry Pi’ı Güncelleştirmek

Özellikle yazılımlar söz konusu olduğunda herkes en son sürüm yazılımları kullanmak ister. Yazılımlar yaşayan varlıklar gibidirler. Bazen hataları ve eksiklikleri fark edilir ve geliştiricileri tarafından onarılırlar. Bazen de zeki bir programcı aynı işi daha kısa yoldan yapabilecek bir yöntem bulabilir. Bu özellikle açık kaynak kod felsefesi ile yürütülen projelerde çokça olur. Çoğu zaman da yazılıma günün değişen ihtiyaçlarına cevap verecek yeni özellikler eklenebilir. Kullanmakta olduğunuz bir yazılımda veya işletim sisteminde tüm bunlar olduğunda, siz de doğal olarak bu yeniliklerden yararlanmak isterseniz. Tahmin edebileceğiniz gibi Raspberry Pi’ı güncel tutmak birçok açıdan önemli bir konudur. Raspberry Pi’ın yazılımlarını güncel tutarak hem güvenliğini sağlamış (hack’lenmeye karşı) olursunuz hem de en hatasız ve performanslı yazılımlara sahip olmuş olursunuz.

Raspberry Pi, kendini (işletim sistemi) ve üzerinde kurulu yazılımları güncelleme işini internetteki paket depolarında yer alan (repo) paketleri indirip kurarak gerçekleştirir. Bunu tek bir komut ile gerçekleştirebilir. Bu özellik Linux dışındaki işletim sistemlerinde yoktur.

Paketler programları, yazılımları, işletim sistemi bileşenlerini ve yardım dokümanlarını içeren kuruluma hazır dosyalardır. Sisteminizde bulunan paketlerin eskiyip eskimediğini veya güncellenmeye ihtiyacı olup olmadığını öğrenmek için depodaki güncel paketlerin bir listesinin edinilmesi gerekir. Bu paket listesi, depoda bulunan paketlerin isimlerinin, sürüm numaralarının ve paketlerin birbirleri ile olan bağımlılık ilişkilerinin tutulduğu metin tabanlı bir dosyadır. Paket listenizi güncellemek için şu komutu verin:

[email protected] ~ $ sudo apt update

Paket listesini güncelledikten sonra, dilerseniz sistemdeki güncellenmeye hazır paketleri görmek için aşağıdaki komutu verebilirsiniz.

[email protected]:~ $ sudo apt list --upgradable

Paketlerin güncellemek için aşağıdaki komutu verin. :

[email protected] ~ $ sudo apt upgrade

Bu iki komut her zaman güncel bir Raspberry Pi OS imajına sahip olmanızı sağlayacaktır. upgrade komutu sisteminizde hâlihazırda kurulu paketleri yeni sürümleri ile günceller. Fazladan bir paket kurmaz veya gereksiz bir paketi kaldırmaz.

Daha kapsamlı bir güncelleme yapmak için ise –dist-upgrade (veya –full-upgrade) seçeneği kullanılabilir. Bunun update’den farkı, mevcut paketlerinin güncellenmesinin yanında, yeni paket bağımlılıklarını kurması, gerekli olmayan bağımlılıkları kaldırması ve Linux çekirdeğini güncellemesidir. Bu yeni bir dağıtıma geçmek anlamına gelmez, güncellemeyi dağıtım (örn., Raspberry Pi OS dağıtımı) genelinde daha kapsamlı yapar.

[email protected] ~ $ sudo apt dist-upgrade

upgrade komutlarının tamamlanması internet bağlantı hızına ve Raspberry Pi modeline göre birkaç saate varan sürelerde tamamlanır. Bu süre zarfında Raspberry Pi’ın enerjisini kesmemeniz veya kontrolsüz kapatmamanız gerekir. Yapabiliyorsanız bir yedek güç güç kaynağı ile çalışmasını sağlayın. Güncelleme devam ettiği sırada (özellikle /boot bölümünün de güncellendiği sırada) enerji kesintisi olursa açılış için gerekli dosyalar eksik kalacağından Raspberry Pi düzgün çalışmayabilir veya hiç açılmayabilir.

upgrade komutu ile birlikte kullanabileceğiniz –simulate seçeneği, güncelleme sırasında sistemde hangi değişikliklerin gerçekleştirileceği konusunda bilgi sunar. Gerçekte bir güncelleme işlemi yapılmaz, sadece gerçek bir güncelleme sırasında sistemde hangi değişikliklerin olacağı konusunda bir benzetim yürütür (simülasyon).

Simülasyon (benzetim) yapabilirsiniz

Her güncellemeden sonra indirilen ve /var/cache/apt/archives dizini altına kaydedilen .deb (debian package) uzantılı dosyaları da temizlemek iyi bir davranıştır. Bunun için aşağıdaki komutu kullanmalısınız:

[email protected] ~ $ sudo apt clean

Raspberry Pi’a paketler yükleyip kaldırdıkça bazı paketler kullanım dışı duruma düşebilir. Kullanılmayan gereksiz paketleri sistemden kaldırmak için autoremove seçeneğini kullanın:

[email protected] ~ $ sudo apt autoremove -y

apt aracı ile yüklediğiniz paketleri, yine apt ile güncelleyebilirsiniz (apt upgrade). Ancak, git ya da kaynak koddan (tar.gz) derleyerek yüklediğiniz programlar apt aracılığıyla güncellenmez. Onları güncellemek için bu kaynaklardan yüklediğiniz programın readme dosyasına ya da yardım sayfalarına göz atmalısınız. Bu şekilde yüklenen programların bazen güncelleme (update) seçeneği bulunmazken genellikle bir kaldırma (uninstall/remove) betiği veya komutu bulunur. Bu tür durumlarda ilgili programın eğer varsa kullanıcı tanımlı dosyalarını (yapılandırma veya veri dosyaları) yedekledikten sonra kaldırın ve yeniden yükleyin.

Hatırlatma

Raspberry Pi’ın Otomatik Güncelleştirilmesini Sağlamak ^

Önceki bölümde, Raspberry Pi’ın nasıl güncelleneceğinden bahsetmiştik. Raspberry Pi’ı güncel tutmak kritik bir öneme sahiptir. Linux türevi sunucu yazılımları yüksek başarımlı ve güvenli olmaları nedeni ile çok tercih edilmektedir. Bu yazılımların geliştirme süreçlerine hızlı bir şekilde devam edilirken, zaman zaman güvenlik zafiyet oluşturacak hataları da tespit edilmekte ve giderilmektedir. Bu hataları barındıran bir yazılım çalıştırdığınızda, olası tehditlerden etkilenme olasılığınız vardır. Diğer taraftan zaman zaman yazılımlarda başarım iyileştirmeleri de yapılır. Bu nedenlerle Raspberry Pi’ın güvenli ve performanslı bir şekilde çalışmaya devam edebilmesi için sıklıkla güncellenmesinde fayda vardır. Bu sıklığı Raspberry Pi’ınızın veya ağınızın iş yüküne göre ayarlayabilirsiniz. Size tavsiyem 24 saatin üzerine çıkmamanızdır.

Raspberry Pi’ı crond adlı zamanlanmış görevler servisini kullanarak dilediğiniz sıklıkta otomatik olarak güncelleyebilirsiniz. crond servisi belirtilen zamanlarda belirtilen komutları çalıştırmak için kullanılabilecek pratik bir servistir ve varsayılan olarak yüklü gelir. crond servisine Raspberry Pi’ı güncellemek için aşağıdaki girdiyi eklemeniz yeterlidir.

[email protected] ~ $ sudo su
[email protected] ~ # crontab –e
# Edit this file to introduce tasks to be run by cron.
#
# Each task to run has to be defined through a single line
# indicating with different fields when the task will be run
# and what command to run for the task
#
# To define the time you can provide concrete values for
# minute (m), hour (h), day of month (dom), month (mon),
# and day of week (dow) or use '*' in these fields (for 'any').#
# Notice that tasks will be started based on the cron's system
# daemon's notion of time and timezones.
#
# Output of the crontab jobs (including errors) is sent through
# email to the user the crontab file belongs to (unless redirected).
#
# For example, you can run a backup of all your user accounts
# at 5 a.m every week with:
# 0 5 * * 1 tar -zcf /var/backups/home.tgz /home/
#
# For more information see the manual pages of crontab(5) and cron(8)
#
# m h  dom mon dow   command
@daily apt update && sudo apt upgrade -y
@monthly sudo apt dist-upgrade -y && sudo apt clean

crontab programını düzenleme (-e) kipinde çalıştırdıktan sonra yapılandırma dosyası nano editöründe görüntülenecektir. İlgili satırları (@daily ve @monthly) ekledikten sonra kaydedip çıkın. Bundan sonra her 24 saatte bir paketler, ayda bir de Raspberry Pi OS dağıtımı kendiliğinden güncellenecektir. crontab dosyasında @daily ve @monthly gibi direktiflerin yanında @hourly ve @yearly direktiflerini de kullanmak mümkündür.

Bu tarz otomatik güncelleştirmelerin bir de dezavantajı vardır. Paketler güncellenirken hâlihazırda var olan yapılandırma dosyaları otomatik olarak güncellenmez. Güncellenen yazılımın yapılandırma dosyasında değişikliğe uğramış bir anahtar/değer çifti yeni yapılandırmanın uygulanamamasına ve ilgili programın düzgün çalışamamasına neden olabilir. Bu nedenle kullanımınız için kritik önemdeki programları elle güncellemeyi tercih edebilirsiniz. Diğer taraftan otomatik güncelleme sırasında, yeni paketler ve bağımlılıkları diğer paketler ile çakışmaya neden olabilir. Bu durumlarda ilgili programın /var/log dizini altındaki hata kayıtlarını incelemeniz gerekir.

Örneğin aşağıdaki ekran çıktısında dhcpcd sunucusunun güncellenmesi sırasında dhcpcd sunucusunun yapılandırma dosyasında bazı güncelleştirmelerin olduğu, mevcut yapılandırma dosyasını korumak isteyip istemediğiniz sorulmakta. Doğal olarak otomatik zamanlanmış bir güncelleme sırasında bu uyarıdan mahrum kalırsınız:

Configuration file '/etc/dhcpcd.conf'
 ==> Modified (by you or by a script) since installation.
 ==> Package distributor has shipped an updated version.
   What would you like to do about it ?  Your options are:
    Y or I  : install the package maintainer's version
    N or O  : keep your currently-installed version
      D     : show the differences between the versions
      Z     : start a shell to examine the situation
 The default action is to keep your current version.
*** dhcpcd.conf (Y/I/N/O/D/Z) [default=N] ?

Yukarıdaki güncelleme çıktısında, kullanıcıya Y/I/N/O/D/Z seçenekleri sunularak durum hakkında bir karar vermesi istenmektedir. Çoğu durumda varsayılan değer olan N cevabı kritik bir soruna yol açmamakla birlikte çok eski bir paketten güncelleme sırasında, kullanımdan kalkmış seçenekler soruna yol açabilir. Dilerseniz D seçimini yaparak, yeni sürümde değişmiş yapılandırma ayarlarının vi editöründe karşılaştırmalı olarak görüntülenmesini sağlayabilirsiniz. Editörden çıkmak için Esc+: tuşlarına bastıktan sonra q yazıp Enter tuşuna basabilirsiniz.

Yazar: Özgür Koca

Yazar - Tankado.com

Bir cevap yazın

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

This site uses Akismet to reduce spam. Learn how your comment data is processed.