Raspbian veya Raspberry Pi işletim sisteminin Debian Bullseye (Debian 11) tabanlı eski sürümlerini daha uzun destekli yeni Bookworm tabanına (Debian 12) yükseltmek istiyorsanız, işletim sistemini yeniden yükleyerek bunu kolayca yapabilirsiniz. . Ancak, kendi yazdığı veya özel komut dosyaları ve yazılımları kullanan herkes, her şeyi sıfırlamak zorunda kalma sorunuyla karşı karşıya kalır. Ancak ev yapımı çözümlerin belgelenmemesi veya unutkanlık nedeniyle bu bazen imkansız bir iştir.
Duyuru
Bu durumlarda Raspberry Pi kullanıcıları, mevcut kurulumlarını daha iyi ve daha da önemlisi daha uzun destekle güncellemek için InPlace güncellemesini kullanmayı deneyebilir. Bu prosedür tehlikesiz değildir; Paket kaynaklarını Bookworm olarak değiştirip yükseltmeye çalışırsanız, büyük olasılıkla sisteminizi yok edeceksiniz. İnternette çalışan bir güncelleme için bazı talimatlar var. Makale, hedefimize başarıyla ulaşan komutları ve sırayı belgeliyor. Ancak açık not: Bu güncelleme çeşidi kesinlikle resmi olarak tavsiye edilen bir versiyon değildir ve başarısız olabilir!
Yedekleme zorunludur!
Bu nedenle öncelikle daha önce kullanılmış yazılım versiyonlarının yedeklenmesi zorunludur. Bunu yapmak için Raspi'yi kullanarak sürüyorsunuz sudo shutdown -h now programa göre indirilir; bu, veritabanlarında veya dosya sistemlerinde hiçbir tutarsızlığın görünmemesi gerektiği anlamına gelir. SD kartın içeriği, Win32Imager aracı kullanılarak Windows'ta bir IMG dosyasına aktarılabilir. Linux'ta komut bunu yapar sudo dd if=/dev/sd<Buchstabe> of=~/raspi-backup.imgSD cihazının SD karta karşılık geldiği yer. Arıza durumunda eski sistemi hızlı bir şekilde geri yükleyebilir ve çalışma durumunu geri yükleyebilirsiniz.
Gerçek geçiş biraz sabırla ve birkaç komut satırı komutuyla yapılabilir. Öncelikle çalıştırdığınız Raspberry Pi işletim sistemini güncellemeniz gerekmektedir. Komutlar bunu yapar sudo apt-get update && sudo apt-get dist-upgrade.
Güncellemeyi başlat
Paket kaynaklarındaki “Bullseye” girişinin artık “Kitapkurdu” olarak değiştirilmesi gerekiyor. Dosyaları manuel olarak düzenleyebilir veya komutları kullanarak rahatlıkla yapabilirsiniz.
sudo sed -i -e 's/bullseye/bookworm/g' /etc/apt/sources.listsudo sed -i -e 's/bullseye/bookworm/g' /etc/apt/sources.list.d/raspi.list
Güncellemenin kendisi komutlar kullanılarak gerçekleştirilir
sudo apt updatesudo apt -y full-upgradesudo apt -y cleansudo apt -y autoremove
Bunlar ayrıca “&&” kullanılarak da bağlanabilir, böylece silme işlemi güncelleme yüklendikten hemen sonra gerçekleşir. Bu arada, örneğin önceden değiştirilmiş konfigürasyon dosyalarının değişimiyle ilgili olarak “-y” anahtarı tarafından engellenmeyen istekler yapılır. Testte, yıllar geçtikçe büyüyen bir sistemde bile değiştirme bir sorun değildi: Örneğin, SSH dosyaları veya kullanıcılar endişe kaynağıydı, ancak 'güncelleme' sonrasında oluşturulan hesaplarla SSH aracılığıyla erişim hâlâ mümkündü. İnternet bağlantınıza bağlı olarak güncelleme birkaç saat sürecektir.
Test sırasında, görünüşe göre bu süre zarfında kaynakta bir veya iki paket zaten güncellenmişti, dolayısıyla hata mesajları vardı. Ancak hata mesajları genellikle durumu çözmek için kullanılabilecek bir komuttan da bahseder. Bizim durumumuzda yine faydalı oldu sudo apt update Başlamak için. Merak etmeyin, zaten güncel olan paketler tekrar indirilip dokunulmayacak, süreç çok daha hızlı oldu.
Güncelleme çoğunlukla başka hata mesajları olmadan tamamlandıysa, artık ilk yeniden başlatma gereklidir. Bu yapıldı sudo reboot komut satırında.
Ürün yazılımı ve çekirdek temizlemeleri ve güncellemeleri
Yeniden başlatmanın ardından oturum açtıktan sonra temizler sudo apt purge ?config-files sistemdeki eski yapılandırma dosyalarını. Siparişler
sudo dpkg --purge --force-depends raspberrypi-kernel raspberrypi-bootloadersudo umount /bootsudo fsck -y /bootsudo mkdir /boot/firmwaresudo sed -i.bak -e "s#boot#boot/firmware#" /etc/fstabsudo systemctl daemon-reloadsudo mount /boot/firmwaresudo apt install raspi-firmware
eski bellenimi sistemden silin, önyükleme bölümünü yeniden biçimlendirin ve mevcut bellenimi buraya yükleyin. Şimdi mevcut çekirdeği kurmanın zamanı geldi. Hangi Raspberry Pi'yi kullandığınıza bağlıdır. V6 çekirdeği tüm cihazlarda, Raspberry 3b'nin v7l sürümünde ve Raspberry Pi 4'ün 64 bit v8 sürümünde çalışmalıdır.
Yani güvenli sürüm:
sudo apt install linux-image-rpi-v6 linux-headers-rpi-v6
Daha yeni bir Raspi kullanıyorsanız en son v7l çekirdeğini kullanabilirsiniz:
sudo apt install linux-image-rpi-v7l linux-headers-rpi-v7l
64-bit Raspis bu çekirdekle en iyi şekilde çalışırken:
sudo apt install linux-image-rpi-v8 linux-headers-rpi-v8
Son olarak, yapılandırma dosyasının bir initramfs dosyası için otomatik aramayı tetiklemek için bir girişe ihtiyacı vardır; bu, 2023 Kitap Kurdu tabanlı sürümle karşılaştırıldığında bir yeniliktir:
sudo sed -i.bak '$ aauto_initramfs=1' /boot/firmware/config.txt
Başka bir yeniden başlatma daha sonra yeni çekirdeği önyükler:
sudo reboot
Raspberry Pi artık yeni Kitapkurdu tabanlı Raspberry Pi işletim sistemini çalıştırmalıdır. Eski komut dosyaları da çalışmaya devam etmeli, hatta cron işleri korunmalıdır. Betiklerimizde Python yorumlayıcısına yapılan çağrının hâlâ değiştirilmesi gerekiyordu. Komut dosyasının ilk satırındaki referans, ör. sürümün açık adı
#!/usr/bin/env python3
apt'tan bildirimler
Yazılımın kullanımdan kaldırılmasıyla “apt” ile erişilen depoların anahtarları artık farklı şekilde düzenlenmiştir. Hepsi tek bir dosyada olmadan önce, /etc/apt/trusted.gpg. Artık her depo için bir anahtar dosyası var /etc/apt/trusted.gpg.d/. apt daha sonra uyarı mesajları verebilir. Bunlar test sisteminde aşağıdaki gibi ele alınabilir.
Öncelikle standart depoların anahtarlarını indirmeniz ve bunları anahtar yönetimine aktarmanız gerekiyordu:
wget http://raspbian.raspberrypi.org/raspbian.public.key -O - | sudo gpg --no-default-keyring --keyring gnupg-ring:/etc/apt/trusted.gpg.d/raspbian.gpg --import
wget https://archive.raspberrypi.org/debian/raspberrypi.gpg.key -O - | sudo gpg --no-default-keyring --keyring gnupg-ring:/etc/apt/trusted.gpg.d/archive-raspbian.gpg --import
Bir sonraki adım eski anahtar dosyasını temizlemektir. çağrısı
sudo apt-key list
Depolarda bulunan anahtarları gösterir. Komut, artık indirilen ve içe aktarılan iki anahtarın yerini alan eski anahtarları siler.
sudo apt-key del "<nummer>"
burada sayı sırasıyla raspbian.gpg ve archive-raspbian.gpg'deki list komutu tarafından görüntülenen uzun dizeleri temsil eder. Bookworm/InRelease anahtarı eski anahtar dosyasında kalır. Bu çağrıyla ertelendi
sudo mv /etc/apt/trusted.gpg /etc/apt/trusted.gpg.d/bookworm_InRelease.gpg
doğru yere koyun ve ona doğru adı verin. Son olarak, anahtar dosyaların hakları ve sahipleri uygun şekilde atanmalıdır. Bunlar dizindeki ayrı dosyalar içindir
sudo chown _apt:root /etc/apt/trusted.gpg.d/raspbian.gpgsudo chmod 644 /etc/apt/trusted.gpg.d/raspbian.gpg
Bu işlem diğer iki dosya ve eğer eklediyseniz diğer depolar için de tekrarlanmalıdır. Bundan sonra apt ifadeleri sistemimizde uyarı mesajları olmadan çalışır.
Ancak, internette arama yaptıktan sonra bile çözüm bulunamayan başka karmaşık sorunlar ortaya çıkarsa, eski yürütülebilir sürümü hızlı bir şekilde geri yükleyebileceğiniz bir yedek hâlâ mevcuttur.
(Bilmiyorum)

Bir yanıt yazın