Kök olmadan bir RPM'yi nasıl yükleyebilirim?


49

Kök izinlerinin olmadığı bir makineye RPM'yi nasıl yükleyebilirim? Sadece kişisel bir çalışma dizininde kullanmak üzere bir paket kurmak istiyorum. SuSe SLES10 kullanıyorum.

Lütfen beni suçlama "Bu fikir çok aptal, bunu yapmamalısın çünkü tüm talepler şirket kök tanrısından geçmeli, sonsuza dek yaşayabilir."

Bunu kök tanrıdan isteyebileceğimi biliyorum, ama vurulacağım (kusursuz, kusursuz sebeplerden eminim ...). Ayrıca, yapacağını söylese bile, onu kurmaya asla doyamayacak.


6
Bu hiç de bir kopya değil. Yolu geçersiz kılmak, ayrıcalıklı olmayan bir kullanıcının her zaman rpm kullanmasına izin vermez.
John T.

Sağol HarryMC. Bunu kontrol edeceğim. Ayrıca, insanların benimkilerin bir kopyası olduğunu düşündüğü diğer bilete bağlantı ekleme. Belki de ekmek kırıntıları başkasına yardım eder: superuser.com/questions/160530/override-rpm-install-path
Ross Rogers

Daha iyi bir gelecek için appimage.org adresine bakın .
Ross Rogers

Yanıtlar:


56
cd my-dir;
rpm2cpio to-install.rpm | cpio -idv

Bir RPM Paketini Kurmadan Çıkarma bölümüne bakın (rpm extract komutu) .


2
Bunu yaptım ve cpio '1 blok' basımı dışında hiçbir şey yapmıyor gibi görünüyor. Ben yanlış bir şey mi yaptım?
Nate Parsons,

Teşekkürler. Kaynaktan yükleyebildiğime göre, RPM'lerle uğraşmama gerek yok
Nate Parsons

10
Bu sadece RPM'nin içeriğini açar ve bulunduğunuz yere atar. Bu, sonuçların işe yaradığı anlamına gelmez (yapılandırması, olması gerektiği yerde değildir ...)
vonbrand

Keşke size sadaka ödülü kazandırabilirsem. Teşekkür ederim!
macetw

3

Rpm paketleri içeriği nasıl çıkarılır?

export ins=foo-bar.rpm
rpm2cpio $ins | cpio -idv

tar.gzArşiv nasıl çıkarılır?

gzip -dc foo-bar.tar.gz | tar xvf –
cd foo-bar-dir

tar.gzPaketleri geçerli dizine çıkarma

export file=foo-bar.tar.gz
# Note that `xovf` switch order *matters*
gzip -dc $file | tar -xovf -

İkili olmayan dosyalar nasıl oluşturulur

./configure --prefix=$HOME && make && make install

1

Başka bir seçenek de, genellikle --prefixdüğmeyi kullanarak yükleme dizinini değiştirebileceğiniz kaynaktan yüklemektir .


1
Normalde bunu yapıyorum, ancak biraz daha fazla otomasyon olmasını umuyordum.
Ross Rogers

2
Benim için bu işe yaramıyor çünkü / var içindeki bir dosyaya kilitlenmeye çalışıyor (ve izin reddedildi).
Nir Friedman

0

Bence "ayrıcalıklı" olmadan bir rpm'yi "kurmaya" "gerçek" cevabı , yapamazsın . AMA aslında yükleme işlemine başlayabileceğinizi farz ediyorum ...

RPM'ler, genellikle Dosya Sistemi Hiyerarşisini izleyen bir spesifikasyon dosyasında (.spec) verilen talimatların bir listesini kullanarak kurulur. Bu hiyerarşideki yolların çoğu, kullanıcı yolları değil, hemen hemen her zaman işletim sistemi yoludur. Dolayısıyla, kullanıcı adınız bir RPM'nin kurduğu tüm yollara erişemezse, o zaman kesinlikle başarısız olur. Tüm yollarını /home/me(veya sahip olduğunuz başka bir yol) ile ön ekleyen bir RPM oluşturursanız , o zaman işe yarayacaktır. Bu, bir src.rpm edinmeyi ve diğer cevaplarda açıklandığı şekilde çıkarmayı ve sonra yeniden inşa etmeyi gerektirir. Bunu yaptığınızda, sadece root erişimi almayı veya yazılımı sıfırdan oluşturmayı düşünebilirsiniz (genellikle yazılımı birçok makineye dağıtmayı planlamıyorsanız ne yaparsınız).

Manuel oluşturma işleminde size yardımcı olacak zekice numaralar vardır. Örneğin, tüm bağımlılıklarınızı almak için bir RPM'de listelenen bağımlılıkları kullanabilirsiniz: https://stackoverflow.com/a/13877738/1236128 .

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.