instalowanie pakietów bez dostępu sudo

11

Czy istnieje prosty sposób instalowania pakietów z dużym drzewem zależności, pod warunkiem, że nie masz dostępu administratora? Powiedzmy na przykład, że chcę zainstalować Firefoksa. Firefox ma mnóstwo zależności, z których każda ma swoje własne zależności itp. Zainstalowanie ich w sposób „./configure; make; make install” potrwa wieczność.

Czy istnieje opcja, którą mogę dać apt-get, aby instalował się w katalogu osobistym? Czy jest jakiś sposób na zhakowanie go, aby wykonać dla mnie cały ciężki podnoszenie?


źródło
spróbuj zadać pytanie na stronie www.superuser.com lub jeśli pytanie do serwera dotyczy www.serverfault.com

Odpowiedzi:

4

Możesz zainstalować pojedyncze pliki .deb w swoim katalogu domowym za pomocą:

dpkg-deb -x /path/to/some.deb $HOME

Ale to nie zajmuje się zależnościami takimi jak aptitude lub apt-get.

Egon Willighagen
źródło
Użyłem tej metody, aby zainstalować atom dla Julii na mojej stacji roboczej. Dodatkowo stworzyłem alias dla atomu w ~ / .bashrc: alias atom = "/ path / to / the / executable / atom / binary / file". Następnie uruchom: source ~ / .bashrc, jesteś gotowy do uruchomienia atomu w terminalu.
Dobra wola
2

Sprawdź NixOs ( LWN ). Pakiety są izolowane (czasem dystrybucja musi je załatać) i mogą być instalowane kilka razy, w różnych wersjach lub przez różnych użytkowników.

jhbuild może zautomatyzować duży proces cmmi. Ale ktoś musi napisać zestaw modułów (wykres zależności).

Jeśli korzystasz z ręcznego konfigurowania / wykonywania wszystkich czynności instalacyjnych, możesz użyć stow, aby uprościć instalację rzeczy w domu. Stow jest pomocny w instalowaniu rzeczy w kilku prefiksach, ale użyj tylko jednego prefiksu do rozwiązania zależności.

dpkg może zostać zmuszony do instalacji w innym prefiksie za pomocą instdir / admindir / root, ale jest to przydatne tylko w środowiskach chroot.

Tobu
źródło
0

Nie kompiluj Firefoksa ze źródła, po prostu zainstaluj pakiet binarny w swoim katalogu domowym.

W tym artykule Mozilla KnowledgeBase wyjaśniono, jak to zrobić. Zasadniczo musisz tylko wyodrębnić plik archiwum i wykonać firefoxw nim plik; wszystkie zależności są już uwzględnione, więc nie musisz niczego instalować apt.

EDYCJA: Nie, nie istnieje ogólna metoda, przynajmniej dlatego, że większość aplikacji (szczególnie GUI) wymaga, aby wiele powiązanych z nimi danych było umieszczanych w dobrze znanych lokalizacjach, takich jak / usr / share, i jest w niej zakodowana (cóż, można go skonfigurować w czasie kompilacji, ale nie chcesz ponownie kompilować wszystkiego, jak powiedziałeś w pytaniu). Możesz więc po prostu sprawdzić wstępnie skompilowane pakiety binarne, które szukają zasobów w katalogu uruchamiania, a nie systemowych.

Whitequark
źródło
interpretuję pytanie dotyczące praktyk zarządzania pakietami. podejrzewam, że Firefox jest tylko przykładem, więc metody specyficzne dla Firefoksa nie są zbyt przydatne.
szarlatan
Dzięki, zredagowałem post. Informacje o przeglądarce Firefox są nadal przydatne.
whitequark
0

Myślę, że odpowiedź brzmi „nie”. Po pierwsze, baza danych pakietów jest dostępna tylko przez root, a po drugie, niektóre / wiele pakietów ma zakodowane ścieżki, które uniemożliwiają ich przeniesienie. Użycie chroota byłoby możliwą odpowiedzią, ale do tego potrzebujesz również roota, lub przynajmniej kogoś z rootem, aby dać ci ograniczone prawa.

Peter Eisentraut
źródło
0

Uważam, że musisz zrobić chroot, a następnie zainstalować tam swoje pakiety.

ref: https://help.ubuntu.com/6.10/ubuntu/packagingguide/C/appendix-chroot.html https://wiki.ubuntu.com/DebootstrapChroot

rogerdpack
źródło
uprawnienia administratora są wymagane w każdym razie, aby utworzyć chroota, więc dlaczego nie wystarczy zainstalować pakiety zamiast ? Poza tym szanse, że Twój sysadmin da ci pełne uprawnienia roota (lub nawet związane z apt) są znacznie, dużo mniejsze niż dla chroota. Nie jest (prawie) niebezpieczny dla systemu hosta.
whitequark