Bir paketi en iyi uygulamalara yerel olarak yükleme?


18

Git'i bir RHEL sunucusundaki bir kullanıcıya yerel olarak yüklemek istiyorum (root erişimim yok) Yazılımı yerel bir kullanıcı hesabına kurmanın en temiz / en düzenli yolu nedir?

  • Bu kullanıcıların giriş dizinindeki her şeyi yüklüyor musunuz?
  • Dizin düzeni nasıl görünürdü?
  • Kaynaktan veya RPM'den kurar mısınız?
  • RPM'den YUM veya RPM kullanırsanız?

Yanıtlar:


17

Kullanarak bir kullanıcı dizinine rpms yüklemek için yollar vardır rpm, ancak bunun düz ileri olduğuna inanmıyorum. Bunun bir yolu olduğuna inanmıyorum yum.

Standart uygulamam kaynağımdan evimdeki bir localdizine derlendi

$ mkdir ~/local
$ mkdir ~/local/bin
$ mkdir ~/local/lib
$ mkdir ~/local/include

/usr/localKök olduğunda olduğu gibi kaynak indiriyorum, örneğin ~/local/git.

Derlerken öneki localdizine ayarlıyorum

$ configure --prefix=/home/user_name/local
$ make
$ make install

Sonra ~/local/binbenim $ PATH içine ekleyin .bash_profile.

Tabii ki, kaynaktan yükleme ile acı, otomatik bağımlılık çözünürlüğü alamamanızdır. Bağımlılıkları kurmanız gerektiğini fark ederseniz, bunları yukarıdaki gibi derleyip kurun. Derlediğinizde git, derleme bayraklarını, bağımlılığın kitaplıkları için doğru konuma bakacak ve dosyaları içerecek şekilde güncellemeniz gerekir:

./configure --prefix=/home/user_name/local LDFLAG='-L/home/user_name/local/lib' CFLAGS='-I/home/user_name/local/include' CPPFLAGS='-I/home/user_name/local/include' CXXFLAGS='-I/home/user_name/local/include'

Bu mükemmel çalıştı, tavsiye için teşekkürler!
wiredin

13

Bir .rpm dosyası aslında cpiobasit bir formuna çok benzeyen bir arşiv biçimidir tar. Yardımcı rpm2cpioprogram muhtemelen sistemde yüklüdür ve kullanmak için ayrıcalık gerektirmez; dönüştürmek için standart çıkış yazar:

rpm2cpio whatever.rpm > whatever.cpio

man cpioKendine bakabileceğin bir tane var, ama şimdi yapmak istediğin şey arşivi "kopyala" modunda cpio'ya beslemek:

cat whatever.cpio | cpio -i

Büyük olasılıkla, dosyalar bir dizin ağacında düzenlenir, böylece dosyalar uygun konumlara (bin vb.) Girer. Bunlar pwd'nizde yoksa, bir hata alırsınız, ancak arşivdeki dosyaları listeler ( -t/ --listswitch ile aynı şeyi alabilirsiniz ). Dizinleri otomatik olarak oluşturmak istiyorsanız, tuşunu kullanın -d. Böylece bir rpm'yi açmanın hızlı bir yolu:

rpm2cpio whatever.rpm | cpio -i -d

$ HOME'a yüklemek için bunu kullanabilirsiniz. Tek sorun, programın bir şeyler bulmayı beklemesi durumunda olacaktır /etc, çünkü birçok şey derlendiğinde herhangi bir amaç için kurulum kodunu sabit olarak kodlar.

Kaynaktan inşa etmek muhtemelen daha iyi bir seçenektir (doğru konumu sağlayabildiğiniz için), ancak bunu her durumda çalıştırabilirsiniz, o zaman hızlı ve basittir.

Ayrıca, gece yarısı komutanı dosya tarayıcısı ( mc) ve muhtemelen diğer dosya tarayıcıları, bir rpm veya cpio (veya sıkıştırılmış katran veya zip) hiyerarşisinde gezinmenize ve arşivin açılmış gibi tek tek dosyaları kopyalamanıza (bir geçici dosya sistemi içindeki arşiv içeriğine göz atmak için).


0

Bu bir alternatif (yum kullanmayan) ve izin tuhaf olacak ama chowndaha sonra hedef kullanıcıya yapabilirsiniz : - ayrıca bir hit veya özledim :-(

#-## Download all dependency for the RPM -- 
#sudo yum install yum-utils
#sudo yumdownloader --resolve --destdir ~/download bash

#-## Install all downloaded to an alternate root 
#sudo rpm --initdb --root <user_home_dir>
#sudo rpm --root <user_home_dir> -Uvh --nodeps ~/download/*

Ardından yolunuza uygun yerleri ekleyin.

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.