MacOS में कोई sha256sum नहीं


17

मैंने sha256sumहाई सिएरा में उपयोग करने की कोशिश की ; मैंने इसे स्थापित करने का प्रयास किया MacPorts, जैसे:

sudo port install sha256sum

काम नहीं किया।

क्या करें?


macOS में सभी बीएसडी की तरह एक देशी md5उपयोगिता है।
Kusalananda

जवाबों:


38

CoreUtils पैकेज को ब्रू फॉर्मूले के रूप में भी प्रकाशित किया जाता है । तो अगर आपने Brew स्थापित किया है तो आप भी बस चला सकते हैं:

brew install coreutils

फिर जोड़ने PATH="/usr/local/opt/coreutils/libexec/gnubin:$PATH"के लिए ~/.bashrc, चलाने source ~/.bashrcऔर बस हो गया।


U & L में आपके पहले उत्तर के लिए बधाई। मैं ब्रू को मैकपोर्ट पसंद करता हूं, लेकिन हां, यह एक व्यवहार्य विकल्प है।
रुई एफ रिबेरो

1
यह स्वीकृत उत्तर होना चाहिए!
मिल्कनक्विज़

1
@Milkncokiez अगर कोई मुझे समझाने का प्रयास करता है कि क्यों एक macports सवाल एक सही समाधान के रूप में होना चाहिए एक काढ़ा समाधान मैं सभी कान हूँ।
रुई एफ रिबेरो

17

थोड़ी जाँच-पड़ताल करने के बाद, मुझे GitHub में एक असंबंधित सॉफ्टवेयर में एक टिकट मिला। Sha256sum कमांड MacOSX में गायब है , जिसमें कई समाधान हैं:

  • कोरुटिल स्थापित करना

    sudo port install coreutils
    

    sha256sumपर स्थापित होता है/opt/local/libexec/gnubin/sha256sum

  • एक और संभावित समाधान के रूप में, opensslनिम्न का उपयोग कर :

function sha256sum() { openssl sha256 "$@" | awk '{print $2}'; }
  • shasumMacOS के मूल कमांड का उपयोग करते हुए अभी तक एक और :
function sha256sum() { shasum -a 256 "$@" ; } && export -f sha256sum

1

मिग 82 का अनुपूरक उत्तर, जिसका उत्तर कोर्यूटिल्स में सभी निष्पादनों के लिए जी-प्रीफिक्स को संभालता है। मैं एक कसकर काटा हुआ घोल पेश करता हूं।

Coreutils के साथ स्थापित होने के बाद

brew install coreutils

में परिणाम ls /usr/local/bin/gsha* इच्छा सूची जी पहले से जुड़ा हुआ निष्पादनयोग्य:

  • /usr/local/bin/gsha1sum
  • /usr/local/bin/gsha224sum
  • /usr/local/bin/gsha256sum
  • /usr/local/bin/gsha384sum
  • /usr/local/bin/gsha512sum

समाधान यह है कि आप उन लोगों के लिए एक प्रतीकात्मक लिंक बनाएं जो आप एक गैर-उपसर्गित नाम का उपयोग करना चाहते हैं (या बीएसडी निष्पादनयोग्य पर भरोसा करने वाले कुछ कार्यक्रमों को तोड़ने में जोखिम लेते हैं और नो जी उपसर्ग होमब्रेव विकल्प का उपयोग करते हैं)

उदाहरण

shaarray=(\
/usr/local/bin/gsha1sum
/usr/local/bin/gsha224sum
/usr/local/bin/gsha256sum
/usr/local/bin/gsha384sum
/usr/local/bin/gsha512sum
)
function installsha() {
  for i in "${shaarray[@]}"
  do
    printf "$i\n" | perl -pe 'printf $_; s/gsha/sha/' | xargs -n 2 ln -s
  done
}
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.