Güncelleme

Yeni sürüm her zaman ayrı bir dizine çıkarılır. Mevcut kurulumun üzerine kopyalanmamalı veya doğrudan oraya çıkarılmamalıdır. Yeni update.sh daha sonra argüman olarak belirtilen örneği tam olarak günceller.

Hazırlık ve yedekleme

Her güncellemeden önce eksiksiz ve doğrulanmış bir yedek bulunmalıdır. Bu en az şunları içerir:

  • Özellikle core/config/QisutuConfig.pm olmak üzere tüm örnek dizini

  • var/secure/security.key

  • Veritabanı

  • Özel Apache, proxy, TLS ve systemd uyarlamaları

  • Gerekirse harici ekler veya bağlı depolama konumları

security.key şifrelenmiş posta, OAuth ve iki faktörlü gizli bilgileri geri yüklemek için vazgeçilmezdir. İlgili örnek yedeğiyle birlikte korumalı saklayın.

Sürümü indirme

cd /tmp
wget https://ftp.qisutu.de/qisutu-1.0.2.tar.gz
tar xzf qisutu-1.0.2.tar.gz
cd qisutu-1.0.2

Daha yeni bir sürüme güncellerken elbette hedef sürümün URL’si ve dizin adı kullanılmalıdır.

Güncellemeyi başlatma

Üretim örneği:

sudo ./update.sh /opt/qisutu

Ek örnek:

sudo ./update.sh /opt/qisututest

Güncelleyici var/install/instance.conf dosyasını okur ve onaydan önce kurulum yolunu, örnek kimliğini, web yolunu, veritabanını ve systemd hizmetini gösterir. Değerlerden biri istenen örneğe ait değilse iptal edin.

Güncelleme süreci

Betik diğerlerinin yanı sıra şu adımları yürütür:

  1. Sürüm sağlama toplamlarının, sürümlerin, şema dosyasının, Perl sözdiziminin ve program kaydının kontrolü.

  2. İsteğe bağlı ek veritabanı dökümü oluşturma. Önce /var/backups altındaki boş alanı kontrol edin.

  3. Bakım modunun etkinleştirilmesi, örnek daemon’ının durdurulması ve yeni posta alımlarının engellenmesi.

  4. Sürümün yönettiği tüm program dosyalarının güncellenmesi; yeni dosyalar eklenir ve artık yayımlanmayan yönetilen dosyalar kaldırılır.

  5. Yerel örnek dosyalarının, yapılandırmaların, günlüklerin, çalışma zamanı verilerinin ve güvenlik anahtarının korunması.

  6. Veritabanı şemasının karşılaştırılması ve henüz günlüğe kaydedilmemiş tüm SQL ve Perl geçişlerinin çalıştırılması.

  7. Hedef durumun yeniden kontrol edilmesi ve daemon’ın başlatılması.

Son kontrol

Başarılı tamamlamadan sonra şunları kontrol edin:

systemctl status qisutu-daemon.service
journalctl -u qisutu-daemon.service --since today

Ardından oturum açın, gösterilen Qisutu ve veritabanı sürümünü kontrol edin ve en az oturum açmayı, talep görünümünü, e-posta almayı ve göndermeyi test edin. Birden çok örnek varsa bu kontrol güncellenen her örnek için ayrı yapılır.

Başarısız güncelleme

Nedeni analiz etmeden betiği tekrar tekrar çalıştırmayın. Çıktıyı ve günlükleri saklayın; boş alanı, veritabanı erişimini, dosya izinlerini ve hizmet durumunu kontrol edin. Durum açık değilse program dizini ve veritabanının daha önce doğrulanmış tam yedeğini birlikte geri yükleyin.