شغّل "/usr/sbin/freebsd-update.fixed fetch" أولاً
من المحتمل أن يتحقق Poudriere مما إذا كان تحديث freebsd قد عثر على أي تحديثات قبل إخباره بتثبيت التحديثات (التي قد تكون غير موجودة) ، وذلك لتجنب إرباك المستخدمين بالرسالة أعلاه.
~ / git / poudriere # grep 'Run. * first' 'التي freebsd-update` صدى "تشغيل '$ 0 install' أولاً." صدى "تشغيل '$ 0 وجلب' أولاً."
يأتي هذا من freebsd-update
.
بدون مزيد من السياق في التقرير ، لست متأكدًا من مكان عرض هذا وتحت أي ظروف.
المشكلة هي أن jail.sh يدير /usr/sbin/freebsd-update.fixed fetch install
. إذا وجد fetch
أنه لا توجد تحديثات مطلوبة (على سبيل المثال ، إنه إصدار جديد لا يحتوي على أي إرشادات أمنية حتى الآن) ، ثم يقوم install
بطباعة الرسالة المربكة.
الحل هو تشغيل /usr/sbin/freebsd-update.fixed fetch
، ومعرفة ما إذا كان قد تم جلب أي تحديثات ، ثم تشغيل /usr/sbin/freebsd-update.fixed install
.
كيف يمكنني تحديد ما إذا تم جلب أية تحديثات؟
تحقق مما إذا كان /var/db/freebsd-update/f465c3739385890c221dff1a05e578c6cae0d0430e46996d319db7439f884336-install
هو رابط رمزي.
أفضل عدم القيام بمثل هذا الانتهاك للطبقة وجعل Poudriere يعتمد على الملفات الداخلية لـ freebsd-update مثل هذا. سأقوم فقط بإخفاء الرسالة بدلاً من ذلك (كما هو الحال مع التعليمات البرمجية الأخرى مثل فحوصات tty).
إذا كان بإمكان Poudriere اكتشاف ما إذا كان الجلب قد تم للتو ، فلماذا يقوم freebsd-update بطباعة الرسالة؟
لماذا يطبع freebsd-update الرسالة
لأن freebsd-update fetch install
مرادف لـ freebsd-update fetch; freebsd-update install
.
حسنًا ، لكنك تخبرني أن poudriere يمكنه اكتشاف ما إذا تم جلب التحديثات للتو ، لذلك يجب أن يكون freebsd-update install
قادرًا أيضًا على عدم طباعة رسالة لا طائل من ورائها إذا لم يكن هناك شيء تم جلبه بالفعل. ستعمل مقارنة بسيطة mtime على هذا كما نفعل مع pkg update
خلال إظهار الرسالة فقط بعد أن تكون آخر عملية جلب هي فترة زمنية قديمة.
نعم ، من المحتمل أن يعالج freebsd-update ذلك. السبب في أنني لم أفعل ذلك في الأصل هو أنني لم أرغب في تشجيع الأشخاص على تنزيل التحديثات وتثبيتها بشكل أعمى.
ولكن في هذه المرحلة ، حتى إذا قمت بإصلاح تحديث freebsd ، فإن poudriere سوف يستدعي كود تحديث freebsd القديم لعدة سنوات ، لذا فإن تعليم poudriere لإزالة ذلك سيوفر بعض الارتباك.
التعليق الأكثر فائدة
نعم ، من المحتمل أن يعالج freebsd-update ذلك. السبب في أنني لم أفعل ذلك في الأصل هو أنني لم أرغب في تشجيع الأشخاص على تنزيل التحديثات وتثبيتها بشكل أعمى.
ولكن في هذه المرحلة ، حتى إذا قمت بإصلاح تحديث freebsd ، فإن poudriere سوف يستدعي كود تحديث freebsd القديم لعدة سنوات ، لذا فإن تعليم poudriere لإزالة ذلك سيوفر بعض الارتباك.