senaryoyu apt-get'e bağlamak


17

Ben /tmpayrı bir bölüme ve monte noexec. Debian kullanıyorum.

Bazı paketlerin yüklenmesi başarısız olur, çünkü bazı paketlerin yükleme sonrası komut dosyalarının çalıştırılması gerekir /tmp.

O "kanca" için basit bir komut dosyası mümkün olacağını merak ediyordum apt-getönce her zaman çalıştırmak olacaktır, apt-getve remount /tmpiçin exec. Ve benzer şekilde, bittikten noexecsonra yeniden takın apt-get.

Yanıtlar:


26

Yeniden dpkgtakmak için kanca sistemini kullanabilirsiniz - bunu yerleştirin /etc/apt/apt.conf.d/00exectmp:

DPkg::Pre-Invoke {"mount -o remount,exec /tmp";};
DPkg::Post-Invoke {"mount -o remount /tmp";};  

-1

Mumble, sadece apt-getbir komut dosyanızla değiştirebilirsiniz .

Taşı apt-getiçin real-apt-getadında bir komut dosyası oluşturmak, o zaman, ve apt-getbunun gibi:

#!/bin/sh

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

Her durumda, bu çözümü sevmiyorum. İhtiyacınız olduğunda geçici dizin ortamı değişkenini değiştirmek daha kolaydır. Gibi bir şey (sh tarzı):

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

Bu şekilde apt-get /root/mytmpgeçici yönerge olarak kullanılır. Sistemi değiştirmeye gerek yok.


3
... aptpaket yükseltilene kadar . Paketler tarafından sağlanan dosyalarla uğraşmayı önermiyorum.
reinierpost

Önceki yoruma göre, sağlanan ikili paket üzerine yazmak gerçekten kötü bir fikir ...! Kabul edilen cevap daha üstündür, ancak bunun gibi bir şeyle devam etmek isteseniz bile, komut dosyasını / usr / local / bin / apt-get (veya daha iyisi muhtemelen ~ / bin / apt-get) olarak kaydedin başka hiçbir kullanıcı istemez; ayrıca yolunuzda olduğundan emin olun). Sonra "real-apt-get" yerine tam yol / usr / bin / apt-get komutunu kullanın. O zaman senaryonuzu bozmadan güncellemeleri sorunsuz alabilirsiniz. (Bu, / usr / local / bin'in PATH'de / usr / bin'den önce olmasına bağlıdır - Debian'da varsayılan).
Jeremy Davis
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.