ইয়াম সংগ্রহস্থল পরিষ্কার করার সর্বোত্তম উপায়?


10

আমাদের বিকাশকারীরা আপলোড করে এমন একটি কাস্টম ইয়ম রেপো রয়েছে।

সমস্যাটি হ'ল কিছু সময়ের পরে এটি পুরানো সংস্করণগুলিতে বিশৃঙ্খলা হয়ে যায়।

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

সেরা হ'ল যদি আমরা এক্স সংরক্ষণের শেষ সংস্করণটি নির্দিষ্ট করতে এবং অন্য কোনও কিছু মুছতে পারি। তারপরে আমরা এটি ক্রোন করতে পারি এবং এটি প্রতিদিন চালাতে পারি।

কোন ধারণা জন্য ধন্যবাদ।


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

দুর্দান্ত - আমি এটি প্রশংসা করব যদি এটি উন্মুক্ত উত্স হতে পারে। গিথুব এ পোস্ট করা একটি দুর্দান্ত উপায় ea
SyRenity

উত্তর:


13

"সহজ" উপায়টি হ'ল কেবল একটি ডিরেক্টরিতে সমস্ত কিছু ফেলে দেওয়া এবং চালানো:

rm $(repomanage --keep=2 --old /path/to/repo)
createrepo /path/to/repo

... আরও জটিল উপায় হ'ল কোজি / ইত্যাদি সেটআপ করা। আপনার বিল্ডগুলি করতে এবং ভাণ্ডার তৈরি করতে।


শীতল - ঠিক আমার যা প্রয়োজন তা ছিল।
SyRenity

দুর্দান্ত জিনিস, এটি সম্পর্কে অবগত ছিল না
ডায়াসনি

প্রযুক্তিগতভাবে, xargsপরিবর্তে আপনার এটি একসাথে ব্যবহার করা উচিত , কারণ অন্যথায় আপনি পেতে rm: missing operandপারেন (অপসারণের জন্য কোনও পুরানো আরপিএম না থাকলে)। সুতরাং:repomanage --keep=2 --old /path/to/repo | xargs rm -f
ড্যানিলা ভারশিনিন

Xargs ব্যবহার করার কারণ হ'ল rm $(repomanage --keep=2 --old /path/to/repo)সহজেই সর্বাধিক কমান্ডের দৈর্ঘ্য অতিক্রম করতে পারে। xargsযুক্তিগুলির একটি বিশাল তালিকাটি যত্ন নেবে। দেখুন: offbytwo.com/2011/06/26/things-you-didnt-
ज्ञान-

1

Yum-utils RPM থেকে "পুনঃব্যবস্থাপনা" ইউটিলিটিটি পরীক্ষা করে দেখুন। এটি আপনি যা খুঁজছেন ঠিক তা করে।

[root ~]# repomanage --help
usage:
  repomanage: manage a directory of rpm packages. returns lists of newest
            or oldest packages in a directory for easy piping to xargs
            or similar programs.
  repomanage [--old] [--new] path.


  options:
    -h, --help            show this help message and exit
    -o, --old             print the older packages
    -n, --new             print the newest packages
    -s, --space           space separated output, not newline
    -k KEEP, --keep=KEEP  newest N packages to keep - defaults to 1
    -c, --nocheck         do not check package payload signatures/digests
[root ~]#

0

বিল্ডগুলি শনাক্ত করতে আপনি যে সংস্করণ বা লেবেলিং সিস্টেমটি ব্যবহার করেন সেটিকে আমি উপকৃত করব। আপনি সার্ভারে চালিত একটি স্ক্রিপ্টের সাহায্যে তারিখ অনুসারে প্যাকেজগুলি সনাক্ত করতে পারেন hosting


আপনি ফাইলের নাম সংস্করণ পরীক্ষা করে বোঝাতে চান? এটি আমার চিন্তার রেখাটিও তবে এর জন্য একটি স্বয়ংক্রিয় স্ক্রিপ্টটি পেয়ে ভাল লাগবে।
SyRenity

1
এছাড়াও মনে রাখবেন যে ফাইলের নামটি প্রয়োজনীয়ভাবে সংস্করণটির সূচক নয়। অর্থাৎ, আমি যে কোনও কিছুতে একটি আরপিএমের নাম পরিবর্তন করতে পারি; yum পরিবর্তে আরপিএমের মেটাডেটা ব্যবহার করবে।
অ্যান্ড্রু এম।

0

যদি আপলোডগুলি প্রতিদিন ঘটে থাকে, তবে পুরানো ফাইলগুলি মুছে ফেলার বিষয়টি কেন বিবেচনা করবেন না যা নির্দিষ্ট কিছু দিন (তাদের অ্যাক্সেস / সংশোধন বারের নিরিখে) অতিক্রম করে? সেগুলি সন্ধান করুন এবং কেবল তাদের মুছুন। যদি আপনার ডেভেলপাররা আপলোড করার সময় এমন বিল্ড আপলোড করতে পারে যেগুলি আপলোড করার সময় তারা চলতি মাসের নামটি ফাইলনামে রাখে তবে এটি সরাসরি ফাইল নাম থেকে বোঝা যাবে যে ফাইলটি তথাকথিত মাসের বছরে আপলোড করা হয়েছিল এবং এটি ঠিক মুছে ফেলাতে বোঝায়? ফাইলের নাম দেখার ভিত্তিতে by আপনার স্ক্রিপ্ট অটোমেশনের পক্ষে কেবল সেই ফাইলগুলি অপসারণ বিবেচনা করা বা পূর্ববর্তী মাস এবং চলতি মাসের সাথে মেলে এমন ফাইলগুলি রাখা সহজ হবে। শুধু একটি ভাবনা.

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.