RedHat: RPM'ler oluşturmak için paketleri bir tür sahte ortamda kurmak mümkün mü


10

Bir RPM .spec bağımlılığını yalıtılmış bir ortama yüklemeye izin veren bir araç var mı? Bu tür bağımlılıkları sisteme global olarak yüklemeyeceğim ve kök ayrıcalıklarına sahip olmadığım için bunu yapamıyorum.

Sebep

B'nin daha yeni bir sürümüne ( sisteme global olarak yüklenemeyen) bağlı bir paket A oluşturmak istiyorum .

Ben yeni sürümünü kurmak ister Yatak ve aracı inşa yüklemek izin B 's -develüzerindeki yapım için gerekli tüm dosyalar sağlamak izole bir ortamda içine A .

Çözümler

  • Bunu yapmak için herhangi bir araç var mı?
  • Değilse, bunu söyleyerek yapmaya çalışırken nelere dikkat etmeliyim chroot?
  • Bu kötü bir uygulama olur mu?

Yanıtlar:


8

Evet, araç çağrıldı mockve EPEL'de.

Tipik kullanım:

rpmbuild -bs mypackage.spec
mock -r epel-6-x86_64 mypackage-0.1-1.src.rpm

Aslında bu, RPM oluşturmanın tercih edilen yoludur, çünkü süreci sistemden izole eder, böylece beklenmedik bağımlılıklar devreye girmez.

Dosyaları /etc/mockkendi paketlerinizi, özel repo vb. İçeri çekecek şekilde değiştirebilir veya mockchroot ortamına manuel olarak paket ekleme hakkında bilgi için dokümanları kontrol edebilirsiniz .

Kullanıcıların, mockkullanmasına izin verilmesi için gruba eklenmesi gerektiğini unutmayın mock.

Tesadüfen değil, kojiRed Hat'ın mockher bir paketi oluşturmak için çağrıları kullandığı derleme sunucusu . Her zaman çok sayıda paket kojioluşturmanız gerekiyorsa, bir yapı sunucusu kurmaya değer olabilir .


Teşekkürler Michael. Bu kulağa hoş geliyor ve sorumun düşündüğüm kadar aptalca olmadığına sevindim. ;)
try-catch-nihayet

3

Üretim ana bilgisayarları üzerinde paket oluşturmaya çalışmak kötü bir uygulamadır ve bunu kök ayrıcalıkları olmadan yapmaya çalışmak kendi derleme makinelerinizi oluşturmaktan daha karmaşıktır. Normalde yaptığım şey şudur.

  1. Masaüstünüze / dizüstü bilgisayarınıza VirtualBox veya benzer bir araç yükleyin
  2. Üretimde kullandığınız işletim sisteminin 32/64 VM'lerini oluşturun
  3. Genellikle sahte, rpmbuild, vb araçlarını yükleyin
  4. Paketinizin RPM'lerini ve VM'lerinizdeki her iki kemer için de ek bölümler oluşturun
  5. Test ettikten sonra sunucularınıza dağıtım için RPM'leri dahili deponuza aktarın
  6. Uygun bağımlılıkların alındığından emin olmak için tekrar test edin
  7. Yapılandırma yönetiminiz aracılığıyla yayınlayın.

Bu çalışacak. Sahte kullanmaktan daha iyi olan nedir? Sahte yapmanın daha kolay olacağını düşünürdüm, ama her iki şekilde de aynı şeyin gerçekleştiğinden şüpheleniyorum.
emory

Sahte ile hiçbir sorunum yok ve neredeyse tüm "nasıl bir rpm yapmak" docs yüklemek var inanıyoruz. Ancak root erişimi olmadan OP'nin hesaplarını sahte gruba nasıl ekleyeceğinden emin değilim, sahte kurulum vb. Ayrıca temiz yapı VM'lerine sahip olmak, istemeden bağımlı bağımlılıkların paketlere eklenmesini önlemeye yardımcı olur.
Ramin

Mükemmel nokta. Bunu düşünemedim. Bunu akılda tutarak, bunun doğru cevap olduğunu düşünüyorum.
emory

@emory geri bildiriminize dayanarak, VM'lerin neden genel olarak daha iyi bir çözüm olduğunu düşündüğümü açıkladım ve bence daha iyi bir yanıt veriyor. Beni okuduğun için teşekkürler. :-)
Ramin

@ Durumumda (işte) sadece kullanıcıyım . Sistem özel bir yapı sistemidir ve bu ana bilgisayardaki tüm geliştiricilerin kök ayrıcalıkları varsa, bu kutu 1 hafta sonra önyükleme yapmaz. ;) Yani Mock gibi bir araç kullanmak tam olarak kullanmak için doğru şey! Sanal makinelerin kurulması da otomatikleştirilebiliyorsa iyi bir fikirdir. Bence Vagrant (henüz test etmedim) bunun için doğru araç.
try-catch-nihayet

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.