podłącz skrypt do apt-get

17

Mam /tmpna osobnej partycji i zamontowałem noexec. Używam Debiana.

Instalacja niektórych pakietów kończy się niepowodzeniem, ponieważ skrypty poinstalacyjne niektórych pakietów muszą zostać uruchomione /tmp.

Zastanawiałem się, czy byłoby możliwe „haka” prosty skrypt do apt-get, które byłyby uruchamiane za każdym razem przed apt-get, i ponownie zamontować /tmpdo exec. I podobnie, zamontuj go noexecpo apt-getzakończeniu.

użytkownik1968963
źródło

Odpowiedzi:

26

Możesz użyć dpkgsystemu haków, aby go ponownie zamontować - wstaw to /etc/apt/apt.conf.d/00exectmp:

DPkg::Pre-Invoke {"mount -o remount,exec /tmp";};
DPkg::Post-Invoke {"mount -o remount /tmp";};  
Chris Down
źródło
-1

Mambo, możesz po prostu zastąpić apt-getswoim skryptem.

Przejdź apt-getdo real-apt-get, a następnie utwórz skrypt o nazwie apt-getpodobnej do tej:

#!/bin/sh

mount -o remount -o ... /tmp
real-apt-get "$@"
mount -o remount -o ... -o noexec /tmp

W każdym razie nie podoba mi się to rozwiązanie. Łatwiej jest zmienić tymczasową zmienną środowiskową katalogu, gdy jej potrzebujesz. Coś w stylu (sh style):

mkdir /root/mytmp
TMPDIR=/root/mytmp
export TMPDIR
apt-get ...
rm -rf /root/mytmp

W ten sposób apt-get będzie używany /root/mytmpjako tymczasowy katalog. Nie trzeba zmieniać systemu.

andcoz
źródło
3
... dopóki aptpakiet nie zostanie zaktualizowany, to znaczy. Nie polecam mieszania się z plikami dostarczanymi przez pakiety.
reinierpost
Zgodnie z poprzednim komentarzem nadpisywanie dostarczonych plików binarnych to naprawdę zły pomysł ...! Zaakceptowana odpowiedź jest lepsza, ale nawet jeśli chcesz zrobić coś takiego, zapisz skrypt jako / usr / local / bin / apt-get (lub jeszcze lepiej, prawdopodobnie ~ / bin / apt-get, zakładając, że żaden inny użytkownik nie będzie tego chciał; upewnij się też, że jest on na twojej drodze). Następnie zamiast nazywać „real-apt-get”, po prostu użyj pełnej ścieżki / usr / bin / apt-get. Dzięki temu możesz otrzymywać aktualizacje bez problemów, bez zerwania skryptu. (Zależy to od / usr / local / bin przed / usr / bin w PATH - domyślnie w Debianie).
Jeremy Davis,