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.