কীভাবে প্রোগ্রামে হোমব্রিউয়ের সর্বশেষতম সংস্করণ নম্বরটি পাবেন?


2

কীভাবে প্রোগ্রামে হোমব্রিউয়ের সর্বশেষতম সংস্করণ নম্বরটি পাবেন?

আমি brew --versionএকটি সংস্করণ নম্বর পেতে ফলাফলটি স্ট্রিং করে স্ট্রিং দিয়ে আমার স্থানীয় কম্পিউটারে এটি খুঁজে পেতে পারি । মুক্তি পাওয়া হোমব্রিউয়ের জন্য এটি পাওয়ার একটি ভাল উপায় কী? আমি প্রোগ্রামক্রমে অনেক কম্পিউটারের জন্য হোমব্রু আপ-টু-ডেট রয়েছে যাচাই করতে চাই।


এই তিনটি প্রশ্ন হতে হবে? ক) ওয়েবসাইটটি যেখানে এটি প্রকাশ হয়েছে সেখানে কীভাবে হোমব্রু সংস্করণ পাবেন। খ) রিলিজের সাথে একটি কম্পিউটারে সংস্করণটি কীভাবে তুলনা করতে হবে গ) কীভাবে অনেকগুলি কম্পিউটার পরিচালনা করতে হবে (এমডিএম, অ্যাপল রিমোট ডেস্কটপ, স্ক্রিপ্টিং এবং এসএসএস ইত্যাদির মাধ্যমে ...) আপনার কোনটি জিনিস প্রয়োজন তা পরিষ্কার করার জন্য আপনি কি এটি সম্পাদনা করতে পারেন? এই থ্রেড শিখতে? তিনটি পৃথকভাবে জিজ্ঞাসা করা আদর্শ হবে যাতে আমরা বিদ্যমান প্রশ্নগুলির সাথে লিঙ্ক করতে পারি বা আপনি যে তিনটি প্রতিবন্ধকতার মুখোমুখি হতে পারেন সেগুলি নিয়ে ধ্যান করার প্রয়োজন ছাড়াই একটি অংশে একটি ভাল উত্তর সরবরাহ করতে পারি।
bmike

2
আমি মনে করি না আমি সত্যিই আপনার আইটেমগুলি বি এবং সি সম্পর্কে জিজ্ঞাসা করেছি। এটি কেবল যে প্রশ্নটি আমি জিজ্ঞাসা করছি তার কিছু পটভূমি সরবরাহ করার জন্য তাই কিছু সম্ভাব্য পাঠক / উত্তরদাতারা কেন আমি এটি করার চেষ্টা করছি তা অবাক করবেন না।
qazwsx

1
@ বিমিকে আমি মনে করি এটি এখানে কী জিজ্ঞাসা করা হচ্ছে তা যথেষ্ট পরিস্কার। ভার্বোসিটি সহজভাবে আরও কিছু প্রসঙ্গ সরবরাহ করে। এইভাবে আমি নির্মাণ-ভিত্তিক প্রশ্নটির ব্যাখ্যা করি: "আমি এক্স কীভাবে করব? আমি ইতিমধ্যে ওয়াই করতে জানি। কিন্তু এক্স করার একটি ভাল উপায় কি? (আমার লক্ষ্য এ অর্জনের জন্য আমার এক্স এবং ওয়াই দরকার) "- প্রকৃতপক্ষে কেবলমাত্র যা জিজ্ঞাসা করা হচ্ছে তা হ'ল এক্স: কীভাবে হোমব্রিউয়ের সর্বশেষ প্রকাশের সংস্করণ নম্বরটি পাবেন।
Synoli

উত্তর:


2

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

নোট করুন যে ২ 27 শে জুন, ২০১২ এবং হোমব্রাবির সংস্করণ ০.৯.১ থেকে সংস্করণ নম্বরটি major.minor.maintenanceএকটি নির্দিষ্ট সময়ের সাথে পৃথক সংখ্যাগুলি ব্যবহার করে একটি নির্দিষ্ট আদর্শ প্যাটার্ন বজায় রেখেছে । তাই এই পরীক্ষা করার জন্য যে মান কমান্ড তাদের দায়িত্ব অর্পণ করা উভয় ইনস্টল সংস্করণ এবং সর্বশেষ রিলিজ সংস্করণে ব্যবহৃত বদল থেকে প্রত্যাগত অপেক্ষাকৃত সহজ ভেরিয়েবল এই প্যাটার্ন অনুসরণ করুন।

একবার পরীক্ষা করার পরে, সংস্করণটির স্ট্রিংগুলি সংখ্যায় রূপান্তরিত হয় যাতে একটি বাইনারি তুলনা নির্ধারণ করতে পারে যে ইনস্টল করা সংস্করণ সর্বশেষ প্রকাশের সংস্করণের চেয়ে কম কিনা, যার পর্যায়ে উপযুক্ত পদক্ষেপ নিতে পারে।

নিম্নলিখিত bash স্ক্রিপ্টটি কীভাবে এটি কোড করতে পারে তার একটি উদাহরণ :

#!/bin/bash

    # Get installed version number and latest release version number.

localHomebrewVersion="$(brew --version | awk '/Homebrew [0-9]/{print $2}')"
latestHomebrewRelease="$(curl -sL https://api.github.com/repos/Homebrew/brew/releases/latest | ruby -rjson -e 'puts JSON.parse($<.read)["name"]')"

    # Test that both variables hold the expected pattern.

if [[ $localHomebrewVersion =~ [0-9]\.[0-9]{1,2}\.[0-9]{1,2} ]] && [[ $latestHomebrewRelease =~ [0-9]\.[0-9]{1,2}\.[0-9]{1,2} ]]; then

        # Function used to convert string version numbers to numeric values for testing.

    function version { echo "$@" | awk -F. '{ printf("%d%03d%03d%03d", $1,$2,$3,$4); }'; }

        # Test to see if the installed version number is less than the latest release version.

    if [[ $(version $localHomebrewVersion) -lt $(version $latestHomebrewRelease) ]]; then
        brew update
    else
        echo "Homebrew is already up-to-date."
    fi

else
        # One or both of the command substitutions '$(...)' returned unexpected output for the version variables.

    echo "At least one of the version variables contains an unexpected value."
fi

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

আপডেট: ইনস্টল করা সংস্করণটি সর্বশেষ প্রকাশিত সংস্করণের চেয়ে কম হলে পরীক্ষার আগে সংস্করণ ভেরিয়েবলগুলি প্রত্যাশিত প্যাটার্ন ধারণ করে একটি পরীক্ষা যুক্ত করেছে Added


1
গিটহাবের এটির জন্য একটি এপিআই রয়েছে, সুতরাং আরও স্থিতিশীল পদ্ধতিটি curl -sL https://api.github.com/repos/Homebrew/brew/releases/latest | ruby -rjson -e 'puts JSON.parse($<.read)["name"]'
হ'ল

1
@ সানোলি, আপনার মন্তব্যে কমান্ডের পরামর্শের জন্য ধন্যবাদ Thanks আমি আমার উত্তরে এটি অন্তর্ভুক্ত করেছি।
ব্যবহারকারী 3439894
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.