SemaphoreUI için snap kurulum yönteminin kullanımdan kaldırılmasıyla (deprecated), yakın zamanda başka bir barındırma yöntemine geçiş sürecine başladım. Semaphore’un paket sürümünü aynı sisteme kurmayı seçtim. Başlangıçta yeni bir kurulumda yedekleme ve geri yükleme özelliklerini kullanmayı amaçlamıştım ancak hepsi düzeltilmiş görünen fakat snap’teki en son Semaphore sürümünü etkileyen birden fazla hatayla karşılaştım. Daha sonra başkalarının geçiş yapabilmesi için belgelenmiş bir yol olarak burada önerdiğim farklı bir yöntem izledim.

Semaphore Snap Dosyalarını Paket Yöneticisi veya Binary Kurulumu ile Kullanılacak Şekilde Taşıma Adımları: NOT: Bu yöntem SemaphoreUI veritabanı olarak boltdb’yi korur

  1. sudo su - veya başka geçerli bir yöntemle root olarak oturum açın
  2. SemaphoreUI’ın snap sürümünü durdurun snap stop semaphore.semaphored
  3. Dosyaları snap’ten semaphore adlı yeni bir sistem kullanıcısının ev dizini olacak yeni dizine kopyalayın cp -rf /root/snap/semaphore/common /home/semaphore
  4. repositories klasörünü yeni geçici klasör konumuna taşıyın mv -f /home/semaphore/repositories /tmp/semaphore
  5. config.json dosyasını database.boltdb ve geçici klasörün yeni yollarıyla güncelleyin sed -i 's/\/root\/snap\/semaphore\/common\/database.boltdb/\/home\/semaphore\/database.boltdb/' /home/semaphore/config.json sed -i 's/\/root\/snap\/semaphore\/common\/repositories/\/tmp\/semaphore/' /home/semaphore/config.json
  6. Ev klasörü /home/semaphore olan semaphore adlı yeni bir sistem kullanıcısı ve grubu oluşturun adduser --system --group --home /home/semaphore --no-create-home --shell /bin/bash semaphore
  7. /home/semaphore ve tüm dosyaların sahipliğini yeni sistem kullanıcısına devredin chown -R semaphore:semaphore /tmp/semaphore chmod o-rwx /home/semaphore chown -R semaphore:semaphore /home/semaphore

Bu adımlar tamamlandığında, servis kullanıcısı veya grubu olarak semaphore kullanarak semaphore’u paket yöneticisi aracılığıyla kurun ve yapılandırın. Tüm ayarlar ve önceki çalıştırmalar yeni SemaphoreUI örneğinde görünmelidir. Memnun kaldığınızda, snap örneği sudo snap remove semaphore ile kaldırılabilir.

Tüm bu adımları şu bash dosyasıyla otomatikleştirdim:

#/bin/bash
#File: migrate-semaphore-snap.sh
#Migrate SemaphoreUI from snap as root to package/binary as semaphore
sudo su -l root <<EOF
set -x
snap stop semaphore.semaphored
cp -rf /root/snap/semaphore/common /home/semaphore
mv -f /home/semaphore/repositories /tmp/semaphore`
sed -i 's/\/root\/snap\/semaphore\/common\/database.boltdb/\/home\/semaphore\/database.boltdb/' /home/semaphore/config.json
sed -i 's/\/root\/snap\/semaphore\/common\/repositories/\/tmp\/semaphore/' /home/semaphore/config.json
adduser --system --group --home /home/semaphore --no-create-home --shell /bin/bash semaphore
cp /etc/skel/.* /home/semaphore/
chown -R semaphore:semaphore /tmp/semaphore
chmod o-rwx /home/semaphore
chown -R semaphore:semaphore /home/semaphore
EOF