Vraag Hoe kan ik een pakket zonder root-toegang installeren?


ik heb geen root-toegang op deze machine.

Ik zou graag willen weten of er een manier is waarop ik kan Ubuntu-pakketten downloaden en als niet-root installeren?

Waarschijnlijk in mijn ~/bin of ~/usr/share of zoiets? Zou dat werken?


101
2017-07-29 11:17


oorsprong


Hopelijk ondersteunen ze het binnenkort. - Domi
Je zou draagbare apps voor Linux kunnen gebruiken: geen installatie, geen root nodig. Vind het op appimage.org. Zelfs Linus Torvalds vindt het leuk. Dat is raar, want Linus houdt nooit van iets. - ipse lute
Ik stel voor het te proberen fakechroot. - Robert Pollak
Een combinatie van dpk -x en mv werkte voor mij. Of, als het even is dpk is niet beschikbaar, ar en piping / combineren met tar werkte voor mij op zeer beperkte systemen, zie hier - iolsmit


antwoorden:


Apt ondersteunt het niet direct, maar er zijn manieren om het te doen.

Eén is te gebruiken schroot om een ​​niet-root-chroot te maken. Dit is een beetje betrokken proces, maar je zou gemeenschaps hulp moeten kunnen vinden voor zoveel ontwikkelaars chroaderomgevingen instellen voor het compileren van code.

De tweede manier die ik ken is om te installeren vanuit een .deb-pakket. Mogelijk kunt u dit downloaden van een website of als het zich in de Ubuntu-repository's bevindt waarmee u kunt downloaden.

apt-get download package

Vervangen package met de naam van het pakket

Als u eenmaal uw deb file-oproep hebt gehad dpkg rechtstreeks vanaf de opdrachtregel. In het volgende voorbeeld wordt package.deb in uw basismap geïnstalleerd.

dpkg -i package.deb --force-not-root --root=$HOME 

Het nadeel van het gebruik van dpkg op deze manier is dat foutmeldingen waarschijnlijk cryptisch zijn; dpkg lost de afhankelijkheden niet automatisch op of maakt de directorystructuur die het verwacht.

Eindelijk zou u de apt-get source commando om de bron van het pakket op te halen en het te configureren om lokaal te installeren. Meestal ziet dit er ongeveer zo uit:

apt-get source package
cd package
./configure --prefix=$HOME
make
make install

Het nadeel van deze aanpak is dat je de ontwikkelomgeving die beschikbaar is voor deze aanpak überhaupt nodig hebt om te werken, en je zou kunnen merken dat je tientallen pakketten compileert om alle afhankelijkheden op te lossen.

BEWERK:

Als dpkg -i werkt niet (zie opmerkingen), ik raad dit alternatief aan:

dpkg -x package.deb dir

Hiermee wordt het .deb-pakket geëxtraheerd naar dir. Vervolgens kunt u het PATH exporteren waar het binaire bestand is. Zolang alle afhankelijkheden van het binaire bestand zijn geïnstalleerd, zou het normaal moeten werken.


93
2017-07-29 11:56



Als u root-toegang hebt, maar gewoon niet een bepaald pakket wereldwijd wilt installeren, kunt u dit gebruiken sudo apt-get build-dep package om alles te installeren wat nodig is om bouwen een pakket (na het ophalen van zijn bron met apt-get source). - Vladimir Panteleev
Dit antwoord is in 2010 geschreven. Zijn er sindsdien wijzigingen aangebracht in de manier waarop dit is gebeurd? - becko
Zelfs met --force-not-root krijg ik "dpkg: error: aangevraagde bewerking vereist superuser privilege" - Clément
Folks, --force-not-root --root=$HOMEof variaties daarvan zullen niet werken. Debian binaire pakketten zijn niet ontworpen om te worden geïnstalleerd in de homedirectory-periode. Of, om dit op een andere manier te zeggen ,. "In het volgende voorbeeld wordt package.deb in uw basismap geïnstalleerd.". Nee, dat zal het niet. - Faheem Mitha
Helaas zal dit niet werken. Ik heb geprobeerd --force-not-root --root=/your/custom/path - Viet


Ik neem aan dat je wilt installeren jEdit. Eerst moet je het pakket vinden en downloaden. Ik neem gewoon de deb-bestand van een spiegel en open een console / terminal:

  1. mkdir /tmp/jedit && cd /tmp/jedit - Maakt een nieuwe diretorie tmp en verandert erin.
  2. wget http://mirrors.kernel.org/ubuntu/pool/universe/j/jedit/jedit_4.3.1.dfsg-0ubuntu1_all.deb - Download pakket
  3. ar x jedit_4.3.1.dfsg-0ubuntu1_all.deb of, eenvoudig te typen, ar x *.deb - dit haalt de inhoud van het bestand eruit
  4. tar xvzf data.tar.gz -- het bestand data.tar.gz heeft alle dingen die je nodig hebt voor het uitvoeren van de software
  5. usr/bin/jedit opent de editor
  6. gedaan :-)

U kunt de bestanden naar een bepaald punt in uw basismap verplaatsen en vanaf daar uitvoeren.


16
2017-07-29 11:32



Merk op dat pre- en post-install scripts niet worden uitgevoerd; u moet ook zelf afhankelijkheden of paden oplossen. Maar bij een standaardinstallatie is dit voldoende voor veel bureaubladtoepassingen. - jbowtie
je kunt het pakket ook downloaden zonder ernaar te zoeken, doe gewoon apt-get download (zie ander antwoord) - lib
ik geloof dat je link kapot is. - Winnemucca


Ik schreef een programma genaamd JuJu wat in feite toestaat om een ​​hele kleine Linux-distributie (met alleen de pakketbeheerder) in je $ HOME / .juju-map te hebben.

Hiermee kunt u uw aangepaste systeem binnen de homedirectory toegankelijk maken via proot en daarom kunt u alle pakketten zonder rootprivileges installeren. Het zal correct worden uitgevoerd naar alle belangrijke linux-distributies, de enige beperking is dat JuJu kan draaien op linux kernel met minimaal aanbevolen versie 2.6.32.

Bijvoorbeeld, na de installatie van JuJu om jedit te installeren:

$>juju -f
(juju)$> pacman -S jedit
(juju)> jedit

9
2017-11-02 18:17



Dit gaat prima op Ubuntu, toch? - Seth♦
Ja, als de linux kernelversie van ubuntu groter is dan of gelijk is aan 2.6.32, zal deze werken. - user967489
Eerst dacht ik dat je het over had deze. De tweede gekapitaliseerde j maakt het verschil. - kon psych
De vraag was of we Ubuntu-pakket konden installeren. Met junest kunnen we alleen ArchLinux-pakketten en NIET een Ubuntu-pakket installeren. Voor b.v. als hetzelfde pakket niet beschikbaar is voor ArchLinux, dan zal dit niet helpen. Dat gezegd hebbende, bedankt voor Junest. - Kiran