আমি কীভাবে একটি yum সংগ্রহস্থলটি আয়না করতে পারি তবে প্রতিটি প্যাকেজের কেবলমাত্র নতুন সংস্করণ ডাউনলোড করতে পারি?


8

আমি http://yum.puppetlabs.com/ এ নিম্নলিখিত Yum / RPM সংগ্রহস্থলগুলি আয়না করতে চাই :

পুতুল সংগ্রহস্থলিতে প্রকাশিত প্রতিটি পুতুল পণ্য রয়েছে এবং এটি প্রায় 8 জিবিতে বেশ বড়। আমার কেবলমাত্র ফাইলগুলির নতুন সংস্করণগুলি আয়না করা দরকার।

আমি ব্যবহার করে ভান্ডারটি আয়না করার চেষ্টা করেছি reposync --newest-only:

reposync --config=puppetlabs.repo.el6 --repoid=puppetlabs-products --repoid=puppetlabs-deps --newest-only --download_path=el/6 --quiet --downloadcomps

এবং এটি আমার মতো নতুন প্যাকেজগুলি ডাউনলোড করে। যাইহোক, reposync স্বয়ংক্রিয়ভাবে নিয়মিত ডিরেক্টরি গঠন (তৈরি করে না x86_64, noarch, SRPMS, ইত্যাদি) এবং আয়না না repodata.xml। ফলস্বরূপ, আমার ইয়াম ক্লায়েন্টরা এর মতো ত্রুটি পান:

[root@web1 ~]# yum --quiet install puppet
http://mirrors.example.org/pub/puppet/el/6/puppetlabs-deps/x86_64/repodata/repomd.xml: [Errno 14] PYCURL ERROR 22 - "The requested URL returned error: 404 Not Found"
Trying other mirror.
Error: Cannot retrieve repository metadata (repomd.xml) for repository: puppetlabs-deps. Please verify its path and try again
[root@web1 ~]# 

কোনও ইউম রেপো থেকে প্রোগ্রামিয়ালি কেবল নতুন ফাইলগুলি মিরর করার এবং স্ট্যান্ডার্ড সংগ্রহস্থল ডিরেক্টরি কাঠামো অনুসরণ করার কোনও উপায় আছে কি?


2
আমি অফহ্যান্ড জানি না, তবে এটি একটি আকর্ষণীয় প্রশ্ন। ব্যক্তিগতভাবে আমি এটি নিয়ে চিন্তা করি না। 8 জিবি স্থানীয় আয়নার আমার 276 গিগাবাইটের একটি ক্ষুদ্র ভগ্নাংশ ...
মাইকেল হ্যাম্পটন

অবশ্যই আমি জানি, কেন 8 জিবি সম্পর্কে উত্তেজিত। আমি কেবল দক্ষ হওয়ার চেষ্টা করছি :) তদ্ব্যতীত, কখনও কখনও আমাকে দ্রুত ইপিইএল বা সেন্টোস রেপোর আরও একটি ইয়াম মিরর স্থাপন করতে হবে এবং সেগুলি বেশ বড়। আমার সত্যিই কেবল প্যাকেজগুলির সর্বশেষতম এন সংস্করণগুলি দরকার।
স্টিফান লাসিউস্কি

উত্তর:


7

reposync এটি করার একমাত্র নির্ভরযোগ্য উপায় os আপনাকে একটি পৃথক ফোল্ডারে প্রতিটি আর্কিটেকচার ডাউনলোড করতে একটি ছোট বাশ স্ক্রিপ্ট তৈরি করতে হবে এবং পুনরায় সংযোগ পরামিতি (-a) ব্যবহার করতে হবে এবং তারপরে মেটাডেটা উত্পন্ন করতে ক্রিয়েরেপো চালাতে হবে run

এখানে আমার কাছে একটি ছোট স্ক্রিপ্ট রয়েছে (এটি উবুন্টুতে চলছে তবে কিছু যায় আসে না, আপনি ধারণাটি পান):

বিড়াল সিঙ্ক-রেপোস

#!/bin/bash

reposync -n -c /etc/yum/yum.conf -p /repos/centos6 -d -r base -r updates -r extras -r centosplus -r contrib
createrepo -g /repos/centos6/base/repodata/comps.xml /repos/centos6/base
createrepo /repos/centos6/updates
createrepo /repos/centos6/extras
createrepo /repos/centos6/centosplus

reposync -n -c /etc/yum/yum.conf -p /repos -d -r vmware -r home_xtreemfs
createrepo /repos/vmware
createrepo /repos/home_xtreemfs

reposync -n -c /etc/yum/yum.conf -p /repos/vz -d -r openvz-utils -r openvz-kernel-rhel6
createrepo /repos/vz/openvz-utils
createrepo /repos/vz/openvz-kernel-rhel6

reposync -n -c /etc/yum/yum.conf -p /repos/nginx -d -r nginx-stable -r nginx-mainline
createrepo /repos/nginx/nginx-stable
createrepo /repos/nginx/nginx-mainline

টিপস জন্য ধন্যবাদ। এই ধরণের কাজগুলি ডিরেক্টরি স্ট্রাকচারটিতে reposyncযুক্ত করার উপর জোর দেয় repoid। এর অর্থ একটি কমান্ডের মতো reposync --config=puppetlabs.repo.el6 --repoid=puppetlabs-products --newest-only --arch=x86_64' creates a bizarrely named directory like 'x86_64/puppetlabs-productsযখন আমার কেবল 'x86_64 /' দরকার।
স্টিফান লাসিউইস্কি

হ্যাঁ, আমি এটির পাশাপাশি বিরক্তিকরও বোধ করি তবে আপনি যদি এটি একটি সিমিলিংক তৈরি করেন বা এটির মতো কিছু কাজ করে। অন্যদিকে, আপনার যদি বিনিয়োগের সময় থাকে তবে পুনরায় সংযোগ এবং ক্রিয়েটারপো হলেন পাইথন স্ক্রিপ্ট যা আপনার প্রয়োজনীয়তাগুলি মাপসই করতে পারেন :)।
ফ্লোরিন আসভোয়াই

4
পোস্টের সময়ে সম্ভবত উপলভ্য ছিল না, তবে ভবিষ্যতের পাঠকদের সুবিধার জন্য: --Norepopath ডাউনলোডের পথে পুনঃনাম যোগ করবেন না। কেবলমাত্র একক সংগ্রহস্থল সিঙ্ক করার সময় ব্যবহার করা যেতে পারে (পুনরায় নাম যুক্ত করতে ডিফল্ট হয়)।
মাইকেজোনসিতে

3

আপনি সজ্জা এবং yum আরপিএম বিতরণকারী প্লাগইন দিয়ে এটি করতে পারেন ।

যখন কোনও নতুন রেপো একত্রিত করার সময়, প্রতিটি আরপিএমের কেবলমাত্র একটি ভেরিসন পেতে, রেকর্ড_ল্ড_কাউন্টটি ধরে রাখুন_ લ્ડ_ কাউন্ট প্যারামিটার সেট করুন

retain_old_count
Count indicating how many old rpm versions to retain; by default it will 
download all versions available.

লাইন বরাবর তাই কিছু:

$ pulp-admin rpm repo create \
          --repo-id=rhel6-puppet-products \
          --relative-url=rhel6-puppet-products \
          --feed=http://yum.puppetlabs.com/el/6/products/ \
          --retain-old-count 1
$ pulp-admin rpm repo sync run  \
          --repo-id=rhel6-puppet-products \

আপনি যা চান তা অর্জন করা উচিত। একটি দ্রুত শুরু গাইড রয়েছে যা আপনাকে আগে কীভাবে চেষ্টা করে না সে ক্ষেত্রে জিনিসটি কীভাবে কাজ করে সে সম্পর্কে আপনাকে ধারণা দেওয়া উচিত।


0

আপনি যা করতে চান তার জন্য আরও একটি সহজ বিকল্প, স্পেসওয়াক, ব্যবহার করা সহজ, আপনি রেপো ম্যানেজার এবং আপনার হোস্টগুলির মধ্যে একটি সুরক্ষিত সংযোগ স্থাপন করতে পারেন, কোন প্যাকেজগুলি সিঙ্ক করতে চান এবং আপনার হোস্টগুলিকে সরবরাহ করতে চান তা সিঙ্কগুলি নির্ধারণ করতে পারেন আপডেট এবং প্যাচগুলি এবং আরও অনেক দুর্দান্ত বৈশিষ্ট্য।


স্পেসওয়াকটি দেখতে সুন্দর লাগছে, তবে আমার প্রয়োজনের পরে এটি আরও বেশি করে। আমরা ইতিমধ্যে পুতুল, ফোরম্যান এবং অন্যান্য সিস্টেমগুলি ব্যবহার করে প্রভিশনের চেষ্টা করছি।
স্টিফান লাসিউইস্কি

0

সম্পাদনা করুন / ইত্যাদি / sysconfig / uln-yum- মিরর পরিবর্তন ALL_PKGS = 0

0 -> সর্বশেষতম ডাউনলোড করুন, 1 -> সমস্ত সংস্করণ ডাউনলোড করুন


5
আপনার উত্তরটি সত্যই কার্যকর হতে আরও প্রসঙ্গে প্রয়োজন। আপনি এটি সম্পাদনা করতে সক্ষম? উদাহরণস্বরূপ, এটি কীভাবে একটি সংগ্রহস্থল সরবরাহ করে? এই উত্তরটি কি অন্য উত্তরের পাশাপাশি রয়েছে?
টিম
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.