Instalowanie pakietu .deb w katalogu domowym


31

Czy jest możliwe zainstalowanie .debpakietu całkowicie w moim katalogu domowym w debian?


Możesz zbudować pakiet deb, który instaluje się w dowolnym miejscu. Ale dlaczego miałbyś chcieć? Pakiety powinny być instalowane w systemie.
Faheem Mitha

5
@Faheem Mitha - Nie wszyscy mamy dostęp do root'a do naszych uniksowych pudeł, wiesz, z pewnością nie mam tam, gdzie pracuję. Jeśli potrzebujemy pakietu (RPM w moim przypadku) do korzystania z jakiegoś oprogramowania, byłoby miło, gdybyśmy mogli zainstalować go w przestrzeni użytkownika, zamiast rozmawiać z działem IT i zmusić go do zainstalowania pakietu w naszym systemie.
Mark Booth,

@FaheemMitha Kolejną rzeczą jest testowanie nowej wersji pakietu. Jeśli chcę udostępnić konkretny pakiet tylko jednemu użytkownikowi, nie instaluję go w całym systemie.
Erathiel,

@Erathiel Cóż, to naprawdę przypadek użycia maszyny wirtualnej.
Faheem Mitha,

@FaheemMitha Może, a może nie;) Moim przypadkiem użycia była maszyna programistyczna z kilkoma użytkownikami służącymi jako środowiska programistyczne. Musiałem podbić pakiet do nowej wersji tylko dla jednego konkretnego użytkownika, abyśmy mogli przetestować, jak zachowuje się nowa wersja. Ale sam serwer jest maszyną wirtualną, więc częściowo masz rację;)
Erathiel,

Odpowiedzi:


19

To zależy od tego, co rozumiesz przez „zainstaluj”. Możliwe jest wyodrębnienie zawartości pliku .deb przy użyciu dpkg-deb -x <filename.deb>, ale to, czy rzeczywiście możesz używać oprogramowania po wyodrębnieniu go lokalnie, zależy od tego, jak jest napisany. Wiele programów dla systemu Linux spodziewa się znaleźć pliki zasobów w standardowych lokalizacjach określonych w czasie kompilacji, takich jak /usr/sharelub /usr/lib, co zakończy się niepowodzeniem, jeśli oprogramowanie nie zostanie zainstalowane w zwykłej lokalizacji. Również ogólnosystemowe pliki konfiguracyjne zainstalowane przez pakiet, takie jak .desktoppliki tworzące wpisy w menu Start, nie będą działać zgodnie z przeznaczeniem, jeśli zostaną zainstalowane w niewłaściwej lokalizacji.


3
powinno byćdpkg-deb -x app.deb /path/to/target/dir/
qed

lub po prostu dpkg -x app.deb / path / to / target / dir /
Erik Aronesty

5

Dziękujemy za wszystkie komentarze i odpowiedzi. To było oprogramowanie, w którym sam się pakowałem, w którym chciałbym przeprowadzić kilka podstawowych kontroli, czy moje opakowanie jest prawidłowe. Jestem rootem na moim komputerze, ale nie chciałbym tam przeprowadzać prawdziwej instalacji ani na razie nie chcę używać obrazu wirtualnego. Wymyśliłem to rozwiązanie: https://serverfault.com/questions/23734/is-there-any-way-to-get-apt-to-install-packages-to-my-home-directory, który doskonale działa dla ja atm.


5
@Ivogel pyta: „Strona, do której prowadzisz link, ma wiele postów i nie mogę powiedzieć, które z nich było dla Ciebie rozwiązaniem. Czy możesz to określić?”
drs

4

Zauważ, że korzystanie z systemu pakietów Debiana wymaga dostępu do konta root. Tak więc instalacja pakietu deb w katalogu domowym użytkowników wymaga dostępu do konta root. Jeśli masz dostęp do konta root, sensowniej jest po prostu zainstalować w systemie jak zwykle.

Jeśli nie masz dostępu do roota, nie możesz użyć systemu pakietów Debiana. Z pewnością możesz rozpakować plik deb na jego części składowe i umieścić go w katalogu domowym, ale zrobienie tego nie miałoby większego sensu. Proponuję wybrać instalację lokalną. W zależności od instalowanego oprogramowania może ono mieć jakiś wewnętrzny system zarządzania pakietami, z którego można korzystać.


Nie wiem, czy został dodany po tej odpowiedzi, ale dpkg ma opcję --force-non-root, której można użyć do obejścia tego.
Bruce Adams,

@BruceAdams Nie widzę tej opcji na liście na stronie podręcznika. Czy możesz podać referencje?
Faheem Mitha

Jeśli uruchomisz dpkg --help wspomina - force-thing. Jeśli uruchomisz dpkg --force-help, zobaczysz więcej szczegółów. Zobacz na przykład askubuntu.com/questions/193695/…
Bruce Adams

@BruceAdams Ok, ja to widzę, ale nie mam pojęcia jak to działa: not-root Try to (de)install things even when not root.
Faheem Mitha

Zobacz moje pytanie stackoverflow.com/questions/47099045/... Jednak w chwili pisania tego tekstu nie ma jeszcze odpowiedzi. Więc też nie mam pojęcia.
Bruce Adams,
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.