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?


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.


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.


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.


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.


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


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
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.