Chciałbym zainstalować pakiety oprogramowania, podobne do apt-get install <foo>
:
- Bez
sudo
i - Do lokalnego katalogu
Celem tego ćwiczenia jest wyodrębnienie niezależnych wersji na moim serwerze ciągłej integracji .
Nie mam nic przeciwko kompilacji ze źródła, jeśli tego właśnie potrzeba, ale oczywiście wolałbym najprostsze możliwe podejście. Próbowałem, apt-get source --compile <foo>
jak wspomniano tutaj, ale nie mogę go uruchomić dla pakietów takich jak autoconf. Otrzymuję następujący błąd:
dpkg-checkbuilddeps: Unmet build dependencies: help2man
Mam help2man skompilowany w katalogu lokalnym, ale nie wiem, jak poinformować o tym apt-get. Jakieś pomysły?
AKTUALIZACJA : Znalazłem odpowiedź, która prawie działa na https://askubuntu.com/a/350/23678 . Problem chroot
polega na tym, że wymaga sudo. Problem apt-get source
polega na tym, że nie wiem, jak rozwiązać zależności. Muszę powiedzieć, chroot
wygląda bardzo atrakcyjnie. Czy istnieje równoważne polecenie, które nie wymaga sudo?
sudo
katalogu i do katalogu niesystemowego.Odpowiedzi:
Zasadniczo nie jest to wykonalne, ponieważ zepsułbyś system zależności apt.
Istnieją dwa rozwiązania:
Zainstaluj pakiet źródłowy, przejdź do katalogu źródłowego, skonfiguruj i zainstaluj pakiet niezależnie od systemów pakowania ręcznie w wybranym katalogu.
Nie wymaga rootowania, pobiera źródło pakietu, rozpakowuje go w katalogu w bieżącym katalogu. Następnie możesz przejść do tego katalogu, dokonać modyfikacji źródła, skonfigurować instalację w innym celu itp.
Konfiguracja, do którego katalogu instalacyjnego powinny przejść programy, zależy jednak od konkretnego programu. Wiele programów używa
./configure --prefix localdir
do kierowania instalacji do katalogu lokalnego; ale nie zawsze tak jest.Utwórz środowisko chroot, w którym zainstalujesz pakiety:
Teraz utworzyłeś fałszywą instalację w katalogu myfancyinstall /
Możesz użyć apt-get install w klatce chroot, aby zainstalować cokolwiek zechcesz.
źródło
apt-get source
bez--compile
wydaje się tłumić ostrzeżenie o niezaspokojonych zależnościach (co pozwala mi je rozwiązać samodzielnie)ar vx mypackage.deb
. Następnie przeanalizuj zawartość pakietu i dowiedz się, jak zainstalować go ręcznie.używając powłoki bash i uzyskując plik „package.deb” (zakładając, że nazwa paczki to „pakiet”), możesz uruchomić następującą komendę, aby osiągnąć to, co chcesz - zainstalować pakiet, aby katalog domowy był traktowany w ten sam sposób ”/ ”będzie traktowane w normalnej instalacji.
To jest polecenie:
Możesz napotkać pewne błędy, takie jak brak $ HOME / var / lib / dpkg / lock, więc po prostu utwórz wszystkie brakujące pliki, które otrzymasz z błędów, a następnie instalacja powinna działać bez sudo.
zauważ, że jeśli „apt-get download” nie działa, możesz spróbować „apt download” lub „apitutde download package”.
jeśli żadna z metod nie działa, możesz po prostu pobrać pakiet ręcznie ze strony http://packages.ubuntu.com/
inną metodą byłoby uruchomienie komendy chroot z parametrem $ HOME, a następnie zainstalowanie w taki sam sposób jak powyżej tylko bez --root = $ HOME. to polecenie wprowadziłoby cię do powłoki, w której „/” jest twoim bieżącym $ HOME. aby powrócić do normalnego trybu, nie zapomnij „wyjść”
powodzenia.
źródło
Jeśli korzystasz z udostępnionego hostingu internetowego z
ssh
dostępem, aleapt-get
bez roota itp. Lub w podobnie ograniczonym systemie, poniższe działania mogą być dla Ciebie odpowiednie. To działało dla mnie w systemie, w którymuname -a
coś zwróciłoSMP Debian 4.9.65-3+deb9u2~bpo8+1 (2017-01-05) x86_64 GNU/Linux
źródło