admin olmayanlar için kullanıcı evinde yum yüklemek


51

Ben büyük bir bilgisayar sisteminde yönetici olmayan bir kullanıcıyım. Sistemde yüklü olmayan güncel paketlere ihtiyacım var. Onları yüklemek için yum kullanmak istiyorum. Sudo, admin veya root erişimi olmayan bir kullanıcı olarak, paketleri ev dizinime yüklemek için paket yönetimini kullanabilir miyim? Her zaman kaynakları kaynaktan kullanabilirim, ama yum kullanabilmek hayatı kolaylaştıracak.


1
yum ikilisi suid kökü olmadığı sürece (şansı azdır).
h3rrmiller,

1
@ h3rrmiller, ancak $ HOME'da programları yükleyebilecek herhangi bir paket yöneticisi var mı ve dolayısıyla sudo erişimi gerektirmiyor mu? OSX'teki MacPorts'un yapabildiğini biliyorum. Linux için bu seçenekler nelerdir?
Bant Genişliği

Yanıtlar:


8

İkili dosyaların çoğu, altındaki belirli konumlara yüklenmek üzere derlenir /.

Gentoo Öneki ve Rootless GoboLinux ve belki 0install gibi root dışı paket yöneticileri var .

Söylediğiniz gibi, kendinizi derlemeniz bu sorunu hafifletir ya da bir chroot kullanır. Ancak, chrooting ile en büyük engeliniz, çekirdek paylaşılan nesnelere bağlanmak ve önkoşullar olacaktır.


10
Chroot burada bir seçenek değil. Chroot için kök olmanız gerekir.
Marco

38

Kullanmak yerine yum, istediğiniz RPM'leri bulun ve indirin. Onları root olmadan doğrudan yükleyemezsiniz, ancak RPM paketleri aslında fantezi .cpio dosyalarıdır ve içeriklerini açabilirsiniz. Bunu yapmanın en kolay yolu, muhtemelen mc("gece yarısı komutanı") dosya tarayıcısı (şimdiye kadarki en büyük yazılım parçalarından biri) 'dir ve bu, .rpmdosyalarının içeriğine göz atmanızı ve dosyalarınızı doğrudan kopyalamanızı sağlar.

Sans rpm2cpio, sonra .cpio dönüştürmek için kullanabilirsiniz, sonra cpiodosyaları içine çıkarmak ve doğru yerlere koymak. Bunların her ikisi de zaten redhat veya fedora sistemine kurulacak. İşte "xsnow" kurulumu için bir örnek: (muhtemelen bunu boş bir dizinde yapmak istersiniz):

»rpm2cpio xsnow-1.42-17.fc17.x86_64.rpm > xsnow.cpio

Benim sistemime uygun bir .rpm bulduğumu fark ettim, fc17 x86_64. Bu önemlidir, çünkü bunlar diğer bileşenlerle bağlantılı olan önceden derlenmiş ikili dosyalardır. Şimdi .cpio dosyasını çıkarın:

»cpio -idv < xsnow.cpio 
./usr/bin/xsnow
./usr/share/doc/xsnow-1.42
./usr/share/doc/xsnow-1.42/README
./usr/share/man/man6/xsnow.6.gz
212 blocks
Press any key to continue...

Bu dizin ağacına göz atarsam, bağımlılıkları çözmeme yardımcı olabilecek bazı meta bilgiler dışında, ihtiyacım olan her şey var. Bu kullanarak bulunabilir rpm -q -p [package] --[query]:

»rpm -q -p xsnow-1.42-17.fc17.x86_64.rpm --requires
warning: xsnow-1.42-17.fc17.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID d2382b83: NOKEY
libX11.so.6()(64bit)  
libXext.so.6()(64bit)  
libXpm.so.4()(64bit)  
libc.so.6()(64bit)  
libc.so.6(GLIBC_2.2.5)(64bit)  
libc.so.6(GLIBC_2.3.4)(64bit)  
rpmlib(CompressedFileNames) <= 3.0.4-1
rpmlib(FileDigests) <= 4.6.0-1
rpmlib(PayloadFilesHavePrefix) <= 4.0-1
rtld(GNU_HASH)  
rpmlib(PayloadIsXz) <= 5.2-1

Bütün bunlara zaten sahip olduğuma eminim. Şimdi tüm yapmam gereken, xsnow 'u $ PATH dosyamda çalıştırılabilir hale getirmek.

»cp ./usr/bin/xsnow ~/bin

Viyola! Şimdi xsnowhiçbir şey yazamıyorum ve izleyebiliyorum, çünkü xsnow, KDE :( ile iyi bir şekilde çalışmıyor, ancak umarım sürecin jisti açıktır.

Kütüphaneleri kurmanız gerekiyorsa, onlar için evde de bir dizin oluşturmanız ve ~/.bashrcşunları eklemeniz gerekir :

export LD_LIBRARY_PATH=/home/you/lib

@siamii Daha iyi bir cevabınız var mı?
Marcin,

5
Tamam, peki birisi cpio dosyaları oluşturmak için bir araç yapıp, her şeyi ./usr/bin $ PREFIX / usr / bin vb.
Bant Genişliği

2
İki buçuk yıl sonra, yardımcı cevabınız için teşekkürler. Bunu bir satırda yapabilirsiniz: mkdir xsnow; cd xsnow; wget - 0 - 195.220.108.108/linux/rpmfusion/nonfree/fedora/releases/17/… | rpm2cpio - | cpio -idv
Larry Engholm

1
Bunu 2 yıldan fazla bir süredir ofis bilgisayarımda kullanıyorum ve her seferinde bir cazibe işlevi görüyor. Sana içten şükranlarımı iletmek istiyorum. Keşke üniversitemin BT'si yetkin olsa.

Bunu yaparken her defasında bir '' '': '': '' '' '' '' '' '' '' '' '' '' '' '' '' O '' '' '' '' '' '' '' '' '' '' '' 'O' '' '' '' '' '' '' '' '' '' 'Değil SÖYLE' '' '' '' '' '' '' '' '' '' '' '' '' '' Değil: '' '' '' '' '' '' '' '' '' 'Değil:' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' Sadece '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' Burada Az bir = ';'; '' '' '' '' '' '' '' ~ '' adlı bağlantılarını deneyin.) Bunu yaparken, bir kerede bir ve bir süre sonra karşılaşamıyorum. Ben sudo olmadan bu dosyaları oluşturmak, ama sonra nedense ben onları kaldırmak için sudo kullanmak gerektiğini unutmayın
Phylliida
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.