Jak mogę zainstalować pakiet bez dostępu do konta root?


125

Nie mam dostępu do konta root na tym komputerze.

Chciałbym wiedzieć, czy istnieje sposób, aby pobrać pakiety Ubuntu i zainstalować je jako użytkownik inny niż root?

Prawdopodobnie w moim ~/binlub ~/usr/shareczy coś takiego? Czy to zadziała?


1
Mamy nadzieję, że wkrótce to poprą.
Domi

4
Możesz używać przenośnych aplikacji dla systemu Linux: bez instalacji, bez rootowania. Znajdź na appimage.org . Nawet Linus Torvalds lubi to. To dziwne, bo Linus nigdy niczego nie lubi.
ipse lutnia

Proponuję spróbować fakechroot .
Robert Pollak,

Połączenie dpk -xi mvdziałało dla mnie. Lub, jeśli nawet dpknie jest dostępny, ara przesyłanie / łączenie z tardziałaniem dla mnie działało na bardzo ograniczonych systemach, zobacz tutaj
iolsmit

Odpowiedzi:


107

Apt nie obsługuje go bezpośrednio, ale są na to sposoby.

Jednym z nich jest schrootutworzenie chroota innego niż root. Jest to nieco zaangażowany proces , ale powinieneś znaleźć pomoc dla społeczności, ponieważ wielu programistów konfiguruje środowiska chroot do kompilowania kodu.

Drugi sposób, jaki znam, to instalacja z pakietu .deb. Możesz być w stanie pobrać to ze strony internetowej lub jeśli jest w repozytoriach Ubuntu, które możesz pobrać.

apt-get download package

Zamień packagena nazwę pakietu

Po otrzymaniu pliku deb wywołaj dpkgbezpośrednio z wiersza poleceń. Poniższy przykład zainstaluje pakiet.deb w twoim katalogu domowym.

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

Wadą używania dpkg w ten sposób jest to, że komunikaty o błędach prawdopodobnie są tajemnicze; dpkg nie rozwiązuje automatycznie zależności ani nie tworzy oczekiwanej struktury katalogów.

Na koniec możesz użyć apt-get sourcepolecenia, aby pobrać źródło pakietu i skonfigurować go do instalacji lokalnej. Zwykle wygląda to tak:

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

Wadą tego podejścia jest to, że potrzebujesz dostępnego środowiska programistycznego, aby to podejście w ogóle działało, a może się okazać, że kompilujesz dziesiątki pakietów w celu rozwiązania wszystkich zależności.

EDYTOWAĆ:

Ponieważ dpkg -inie działa (patrz komentarze), sugeruję tę alternatywę:

dpkg -x package.deb dir

Spowoduje to rozpakowanie pakietu .deb do katalogu. Następnie możesz wyeksportować ŚCIEŻKĘ tam, gdzie jest plik binarny. Tak długo, jak zainstalowane są wszystkie zależności pliku binarnego, powinien on działać normalnie.


1
Jeśli masz dostęp do konta root, ale po prostu nie chcesz instalować konkretnego pakietu globalnie, możesz użyć go sudo apt-get build-dep packagedo zainstalowania wszystkiego, co jest potrzebne do zbudowania pakietu (po uzyskaniu jego źródła apt-get source).
Vladimir Panteleev

19
Ta odpowiedź została napisana w 2010 roku. Czy od tego czasu wprowadzono jakieś zmiany?
becko

36
Nawet z opcją --force-not-root otrzymuję komunikat „dpkg: błąd: żądana operacja wymaga uprawnień administratora”
Clément,

10
Ludzie --force-not-root --root=$HOMElub ich odmiany nie będą działać. Pakiety binarne Debiana nie są zaprojektowane do instalacji w katalogu domowym, kropka. Lub, mówiąc inaczej: „Poniższy przykład zainstaluje pakiet.deb w twoim katalogu domowym.”. Nie zrobi tego.
Faheem Mitha,

1
Niestety to nie zadziała. Próbowałem--force-not-root --root=/your/custom/path
Viet

16

Zakładam, że chcesz zainstalować jedit . Najpierw musisz znaleźć pakiet i go pobrać. Po prostu biorę plik deb z jakiegoś mirrora i otwieram konsolę / terminal:

  1. mkdir /tmp/jedit && cd /tmp/jedit- Wprowadza nowy katalog tmpi zmienia się w nim.
  2. wget http://mirrors.kernel.org/ubuntu/pool/universe/j/jedit/jedit_4.3.1.dfsg-0ubuntu1_all.deb - Pobierz pakiet
  3. ar x jedit_4.3.1.dfsg-0ubuntu1_all.deblub łatwe do wpisania ar x *.deb- to wyodrębnia zawartość pliku
  4. tar xvzf data.tar.gz- plik data.tar.gzzawiera wszystkie elementy potrzebne do uruchomienia oprogramowania
  5. usr/bin/jedit otwiera edytor
  6. gotowy :-)

Możesz przenieść pliki do dowolnego miejsca w katalogu domowym i stamtąd je uruchomić.


11
Pamiętaj, że skrypty przed instalacją i po instalacji nie są uruchamiane; musisz także samodzielnie rozwiązać wszelkie zależności lub ścieżki. Ale przy domyślnej instalacji jest to wystarczające dla wielu aplikacji komputerowych.
jbowtie

możesz także pobrać pakiet bez szukania go, po prostu zrób apt-get download (zobacz inną odpowiedź)
lib

wierzę, że twój link jest zepsuty.
Winnemucca

9

Napisałem program o nazwie JuJu, który zasadniczo pozwala mieć naprawdę małą dystrybucję linuksa (zawierającą tylko menedżera pakietów) w katalogu $ HOME / .juju.

Pozwala mieć dostęp do twojego niestandardowego systemu w katalogu domowym przez proot, a zatem możesz instalować dowolne pakiety bez uprawnień roota. Będzie działał poprawnie dla wszystkich głównych dystrybucji Linuksa, jedynym ograniczeniem jest to, że JuJu może działać na jądrze Linux z minimalną zalecaną wersją 2.6.32.

Na przykład po zainstalowaniu JuJu w celu zainstalowania jedit:

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

To będzie działać dobrze na Ubuntu, prawda?
Seth

Tak, jeśli wersja Ubuntu jądra Linuksa jest większa lub równa 2.6.32, będzie działać.
user967489,

2
Na początku myślałem, że o tym mówisz . Druga wielka litera j robi różnicę.
kon psych

1
Pytanie brzmiało, czy moglibyśmy zainstalować pakiet Ubuntu. W czerwcu będziemy mogli zainstalować tylko pakiet ArchLinux, a NIE pakiet Ubuntu. Na przykład, jeśli ten sam pakiet nie jest dostępny dla ArchLinux, to nie pomoże. To powiedziawszy, dzięki za Junest.
Kiran
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.