Yüklü yazılımı kaynaktan nasıl yükseltebilirim?


10

Ubuntu deposundaki paketler oldukça eski olduğu için NGinx'i kaynaktan yüklüyorum. Bu tür kurulumları yükseltmek için en iyi yöntemin ne olduğunu merak ediyordum?

Mevcut iş akışım içeriyor.

  • Yeni kaynağı indirme
  • Yazılımı aynı yollarla yükleyin.
  • Yazılımı yeniden başlatma.

Bir şey bana bunun en iyi yol olmadığını söylüyor.

Öneriler?

Yanıtlar:


9

Bunun en iyi yol olmadığını düşünmeye hakkınız var. Bu rota birçok manuel adım gerektirir ve çok hataya açıktır ve iyi ölçeklenmez.

Linux dağıtımlarıyla çalışırken, mümkün olduğunca paket yönetimine bağlı kalmalısınız.

Paket yönetimini kullanmanın avantajları:

  • Bağımlılık desteği
  • Kolay kurulum / çıkarma
  • Yazılım envanteri
  • Yapılandırma dosyalarının işlenmesi dahil Yükseltme / Düşürme desteği
  • Kaynak paket temel olarak oluşturma sürecinizi belgeler ve yazıldıktan sonra sizin için otomatik hale getirir.
  • Paket imzalama
  • ve dahası.

Sadece kaynaktan çalışmaya başladığınızda, tüm bu harika özellikleri kaybedersiniz ve işler çok çabuk dağınık hale gelir.

Spesifik sorununuzu çözmek için ubuntu backports deposunu kontrol etmelisiniz , belki de kullanabileceğiniz NGinx için güncellenmiş bir sürümleri vardır.

Uygun bir sürümleri yoksa, en iyi çözüm kendiniz bir backported ubuntu paketi oluşturmak olacaktır. Gerçekten o kadar da zor değil ve her seferinde kaynaktan manuel olarak derlemekten daha az iş. Backporting, temel olarak, kaynak paketi ubuntu'dan almayı, eski upsteam tar.gz dosyasını istediğiniz en son dosyayla değiştirmeyi ve paketi yeniden oluşturmayı gerektirir.

Paketi geri yüklemenize yardımcı olması için bu kılavuzu kullanabilirsiniz .


8

Farklı konumlara farklı sürümler yüklemeyi oldukça kullanışlı buldum ve sadece kullanmak istediğiniz sürüme symlink gibi:

lrwxr-xr-x  1 root  wheel     7B Jun  7 18:26 /usr/local/foo -> foo-1.0
drwxr-xr-x  2 root  wheel   512B Jun  7 18:26 /usr/local/foo-1.0
drwxr-xr-x  2 root  wheel   512B Jun  7 18:26 /usr/local/foo-1.1

Avantajları:

  • yeni sürüme geçiş sırasında en aza indirilmiş hizmet kesintileri
  • kolay geri alma
  • yine de aynı yolu kullanabilirsiniz. /usr/local/foo/bin/bar

Tabii ki hala önceki sürüme yaptığınız yapılandırma değişikliklerini yeniden uygulamanız gerekiyor, ancak bunun için bazı sürüm oluşturma sistemini (RCS / SVN / GIT) veya Bcfg2 gibi yapılandırma yönetimi aracını kullanabilirsiniz .

Ve elbette bu sadece bir avuç veya daha az ana bilgisayar için uygundur.


Bu, genellikle / usr / local yerine / opt kullanmam dışında, paketlerin uygun bir yanıt olmadığı birkaç durumda yaptığım şeydir.
freiheit

2

Bir dahaki sefere ... * .rpm veya * .deb olarak derlemeye ne dersiniz?


1

Bunu tek bir makineye kuracaksanız, her seferinde kaynaktan kaynak yapmak en iyi yoldur. Bunu birkaç makineye yükleyecekseniz ve tutarlı olduğundan emin olmak istiyorsanız, muhtemelen Debian paketlerini nasıl yapacağınızı öğrenmeye değer. Muhtemelen Ubuntu'daki ambalajı bir üs olarak kullanabilirsiniz.


1

Harika bir yolu yok. Etkili paket yönetiminin yaratılmasının nedeni bu sorunu çözmekti. Kaynak derlenmiş şeyleri yükseltmek ve kaldırmak zordur.

Tom ve David ile aynı fikirdeyim.

Bu bir defalık bir durumsa, kaynaktan yeniden derlemek muhtemelen en iyi seçenektir. Bir dizi makinedeyse, kesinlikle desteklenen paket yönetimine geçme zamanı gelmiştir.


0

Korkarım tek yol bu. bakımı yapılacak daha fazla sunucunuz varsa - derlemenizin sonucunu derlediğiniz ve muhtemelen paketlediğiniz ayrı bir test ortamına sahip olun.

bu ayarlarınızı biraz standartlaştıracak ve birçok sunucuda konuşlandırmayı kolaylaştıracaktır. ayrıca [çoğu güvenlik yararı olarak kabul edilecek] üretim makinelerinde gcc'ye ihtiyacınız olmayacaktır.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.