it-swarm.dev

كيفية تجاهل الصراعات في تثبيتات دورة في الدقيقة

لدي مجموعة من ملفات rpm في مجلد. أحاول تثبيتها باستخدام: rpm -ivh *.rpm حتى تتمكن دورة في الدقيقة من العناية بترتيب التثبيت الصحيح.

في بعض هذه rpms لديّ إصدار أحدث مثبت في نظامي ، لذلك أحصل على سبيل المثال:

package info-5.0-1 (which is newer than info-4.13a-2) is already installed

/opt/freeware/man/man1/infokey.1 from install of info-4.13a-2 conflicts with file from package info-5.0-1

هل هناك طريقة لتجاهل ملف .rpm القديم وحل التبعية مع الإصدار الجديد المثبت بالفعل؟ فكرت في خيار القوة. ولكن كيف - قوة يحل الصراعات؟ الكتابة فوقها بالإصدار الأقدم أو تتجاهلها فقط وتترك الإصدار الجديد؟

أي أفكار هي موضع ترحيب.

29
Cobra Kai Dojo

ال --force سوف يقوم الخيار بإعادة تثبيت الحزم المثبتة بالفعل والكتابة فوق الملفات المثبتة بالفعل من الحزم الأخرى. أنت لا تريد هذا بشكل طبيعي.

إذا طلبت من rpm تثبيت جميع RPMs من بعض الأدلة ، فستقوم بذلك بالضبط. rpm لا يمكن تجاهل RPMs المدرجة للتثبيت. يجب عليك إزالة RPMs غير الضرورية يدوياً من القائمة (أو الدليل).

يمكنك إزالة RPM القديمة و rpm ستحل التبعية مع الإصدار الأحدث من RPM المثبت. ولكن هذا لن ينجح إلا في حالة عدم اعتماد أيٍّ من أدوات RPM التي سيتم تثبيتها بالضبط على الإصدار القديم.

إذا كنت تحتاج حقًا إلى إصدارات مختلفة من نفس RPM ، فيجب أن تكون RPM relocatable . يمكنك بعد ذلك إخبار rpm بتثبيت دورة في الدقيقة محددة في دليل مختلف. إذا لم تكن الملفات متعارضة ، فيمكنك فقط تثبيت إصدارات مختلفة مع rpm -i (zypper in لا يمكن تثبيت إصدارات مختلفة من نفس RPM). أنا على سبيل المثال العبوة Ruby gems as RPMs relocatable في العمل. لذلك يمكنني تثبيت إصدارات مختلفة من نفس الأحجار الكريمة.

لا أعرف أي الملفات التي تتعارض مع عدد الدورات في الدقيقة ، ولكن إذا كانت جميعها عبارة عن صفحات "عادلة" ، فبإمكانك ببساطة الكتابة فوق الجديدة مع القديمة مع rpm -i --replacefiles. المشكلة الوحيدة في هذا الأمر هي أنه يمكن أن يخلط بين شخص ما يقرأ صفحة الرجل العجوز ويعتقد أنه من أجل الإصدار الفعلي. مشكلة أخرى ستكون rpm --verify أمر. ستشكو الحزمة الجديدة إذا قامت الحزمة القديمة بالكتابة فوق بعض الملفات.

هل هذا ربما يكون نسخة مكررة من https://serverfault.com/questions/522525/rpm-ignore-conflicts ؟

22
xoryves

جرب أمر Freshen:

rpm -Fvh *.rpm
8
Kalim Sayyed

من السياق ، كان سبب التعارض إصدار الحزمة.
دعنا نلقي نظرة على الكتيب عن rpm:

--force
    Same as using --replacepkgs, --replacefiles, and --oldpackage.

--oldpackage
    Allow an upgrade to replace a newer package with an older one.

لذلك ، يمكنك تنفيذ الأمر rpm -Uvh info-4.13a-2.rpm --force لحل مشكلتك.

6
James