অ্যাপ্লিকেশন পেতে একটি স্ক্রিপ্ট হুক


17

আমি /tmpএকটি পৃথক পার্টিশন আছে, এবং মাউন্ট noexec। আমি দেবিয়ান ব্যবহার করছি

কিছু প্যাকেজ ইনস্টলেশন ব্যর্থ হয়, কারণ কিছু প্যাকেজের ইনস্টলেশন-পরবর্তী স্ক্রিপ্টগুলি চালানো দরকার /tmp

আমি ভাবছিলাম যে এটি একটি সহজ স্ক্রিপ্ট "হুক" করা সম্ভব হবে apt-get, যা প্রতিবার আগে চালানো হবে apt-getএবং এর পুনঃনির্মাণ /tmpহবে exec। আর একইভাবে, এটি পুনরারোহণ noexecপর apt-getসমাপ্ত হয়েছে।

উত্তর:


26

আপনি dpkgএটির পুনঃমাউন্ট করতে হুক সিস্টেমটি ব্যবহার করতে পারেন - এটি এতে রাখুন /etc/apt/apt.conf.d/00exectmp:

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

-1

বিড়বিড় করা, আপনি কেবল apt-getনিজের স্ক্রিপ্ট দিয়ে প্রতিস্থাপন করতে পারেন ।

এখান apt-getথেকে সরান real-apt-getএবং তারপরে, এর apt-getমতো নামে একটি স্ক্রিপ্ট তৈরি করুন :

#!/bin/sh

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

যাই হোক না কেন, আমি এই সমাধান পছন্দ করি না। আপনার প্রয়োজন হলে অস্থায়ী ডিরেক্টরি পরিবেশের পরিবর্তনশীলটিকে সহজেই পরিবর্তন করা যায়। এর মতো কিছু (শ স্টাইল):

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

এইভাবে আপ্ট- /root/mytmpগেট অস্থায়ী দির হিসাবে ব্যবহার করবে । সিস্টেম পরিবর্তন করার দরকার নেই।


3
... aptপ্যাকেজ আপগ্রেড না হওয়া পর্যন্ত , এটি। আমি প্যাকেজগুলির দ্বারা সরবরাহিত ফাইলগুলির সাথে গণ্ডগোলের প্রস্তাব দিই না।
পুনরায় পোস্টার

পূর্ববর্তী মন্তব্য অনুসারে, প্যাকেজ সরবরাহ করা প্যাকেজগুলি ওভাররাইট করা সত্যিই খারাপ ধারণা ...! গৃহীত উত্তরটি সর্বোত্তম, তবে আপনি যদি এই জাতীয় কিছু নিয়ে এগিয়ে যেতে চান না, তার পরিবর্তে, স্ক্রিপ্টটি / usr / স্থানীয় / বিন / অ্যাপট-গেট হিসাবে সংরক্ষণ করুন (বা আরও ভাল, সম্ভবত ~ / বিন / এপটি-পেতে অনুমান) অন্য কোনও ব্যবহারকারী এটি চাইবে না; এটিও আপনার পথে রয়েছে তা নিশ্চিত করুন)। তারপরে "রিয়েল-এপট-গেট" কল করার পরিবর্তে কেবল পুরো পথটি / usr / bin / apt-get ব্যবহার করুন। তারপরে আপনি আপনার স্ক্রিপ্টটি না ভেঙে কোনও সমস্যা আপডেট করতে পারবেন। (এটি উপর নির্ভর করে / usr / স্থানীয় / বিন PATH এর আগে / usr / বিন - দেবিয়ানে ডিফল্ট)।
জেরেমি ডেভিস
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.