මැක් ඕඑස් එක්ස් උපයෝගිතා GNU මූලික උපයෝගිතා සමඟ ප්‍රතිස්ථාපනය කරන්නේ කෙසේද?


197

මැක් ඕඑස්එක්ස් සහ ලිනක්ස් හි මා භාවිතා කළ උපයෝගිතා විධානය අතර යම් වෙනසක් ඇති බව මට පෙනී ගියේය. මගේ අත්දැකීම් එකමුතු කිරීමට මට අවශ්‍යයි.

මගේ සියලුම මැක් උපයෝගිතා GNU උපයෝගිතා සමඟ ප්‍රතිස්ථාපනය කරන්නේ කෙසේද?



2
මෙන්න මාර්ගෝපදේශයක් topbug.net/blog/2013/04/14/…
ඩෙනිස්

17
ඔබගේ බලාපොරොත්තු සුන්වීම් ගැන මම අනුකම්පා කරමි, නමුත් ඒවා ප්‍රතිස්ථාපනය කළ හොත් දිගු කාලීනව එය වඩාත් කලකිරීමට පත් වනු ඇතැයි මම විශ්වාස කරමි - homebrewපහත සඳහන් පරිදි භාවිතා කිරීමට මම නිර්දේශ කරන එකම දේ කිරීමට උත්සාහ කිරීමෙන් පසුව උපයෝගිතා භාවිතා කිරීමට ඉගෙන ගන්න. a g( gsed,, greadlinkආදිය) පද්ධති උපයෝගිතා වෙනුවට.
cwd


4
මම @cwd සමඟ එකඟ නොවෙමි, භාවිතා --with-default-namesකිරීම දේශීය පරිශීලකයාට පමණක් බලපායි. එය මැක් දිශානත පර්යන්ත උපයෝගිතා සමඟ ගැටළුවක් විය හැකිය, නමුත් ඔබ සෑම දෙයක් සඳහාම හෝම්බ rew භාවිතා කරන්නේ නම්, ඔබ ලිනක්ස් භාවිතා කරන බව මවා පෑමට ඉඩ ඇත. Iterm2 සමඟ මිශ්‍ර වී, එය මට හොඳට වැඩ කරයි, මූලික වශයෙන් මම මගේ ලිනක්ස් පෙට්ටි සමඟ ගෙදර සිටින බව මවා පෙන්විය හැකිය.
රේ ෆොස්

Answers:


227

මෙය g උපසර්ගය සමඟ GNU උපයෝගිතා සඳහා සමමුහුර්ත එකතු කරයි /usr/local/bin/:

brew install coreutils findutils gnu-tar gnu-sed gawk gnutls gnu-indent gnu-getopt grep

brew search gnuවෙනත් පැකේජ සඳහා බලන්න . ඔබට උපසර්ගයකින් තොරව විධාන භාවිතා කිරීමට අවශ්‍ය නම් ඔබේ /usr/local/opt/coreutils/libexec/gnubinවෙනත් නාමාවලි වලට පෙර උදාහරණයක් එක් කරන්න PATH.

$ brew info coreutils
coreutils: stable 8.21
http://www.gnu.org/software/coreutils
Depends on: xz
/usr/local/Cellar/coreutils/8.20 (208 files, 9.4M)
/usr/local/Cellar/coreutils/8.21 (210 files, 9.6M) *
https://github.com/mxcl/homebrew/commits/master/Library/Formula/coreutils.rb
==> Caveats
All commands have been installed with the prefix 'g'.

If you really need to use these commands with their normal names, you
can add a "gnubin" directory to your PATH from your bashrc like:

    PATH="/usr/local/opt/coreutils/libexec/gnubin:$PATH"

Additionally, you can access their man pages with normal names if you add
the "gnuman" directory to your MANPATH from your bashrc as well:

    MANPATH="/usr/local/opt/coreutils/libexec/gnuman:$MANPATH"

7
FWIW, මා සතුව හෝම්බ rew සූත්‍රයක්shiny-and-gnu.rb තිබේ, එය ඒ සියලු ශ්‍රේෂ් G
AL හි X

1
පළමු PATH ක්‍රියා කරයි, නමුත් MANPATH අසමත් විය, ඇයි? ඒ මම OSX10.10 භාවිතා කරන නිසාද? මම $ මාන්පාත් ප්‍රතිරාවය කළෙමි, මට /usr/local/opt/coreutils/libexec/gnuman:පෙනුනේ මුල් මෑන්පාත් ඇතුළත් නොවන බවයි. මගේ bashrc හි MANPATH conf ගැන අදහස් දැක්වීමෙන් පසුව, මට කිසිවක් නොලැබුණි ecoh $MANPATH. ඇත්ත වශයෙන්ම, මම භාවිතා කරන්නේ නම් man pwd, මට BSD අත්පොත ලැබුණි. මෙය නිවැරදි කරන්නේ කෙසේද?
සෙන්

2
මක්නිසාද යත් findutils, PATH="/usr/local/Cellar/findutils/4.4.2/bin:$PATH"ස්ථාපන කොන්සෝල ප්‍රතිදානයේ සඳහන් නොවන ඔබ එකතු කළ යුතුය .
ශ්‍රීධර් සර්නොබත්

1
ඊට අමතරව, නිවැරදි මිනිසාගේ පිටුව ලබා ගැනීම සඳහා findutils, මෙය ඔබේ$MANPATH /usr/local/opt/findutils/share/man
ක්‍රිස්ටියන් ලෝන්ග්

2
En සෙන්: MANPATHපෙරනිමි පද්ධති අගය තබා ගැනීම සඳහා ආරම්භ කිරීමට නිවැරදි ක්‍රමය : MANPATH="/usr/local/opt/coreutils/libexec/gnuman:${MANPATH-/usr/share/man}". යතුර ඉදිවෙමින් පවතී ${var-default_value}.
dan

52

අමතරව brew install coreutils, ඔබ ද වැනි සමහර අනෙකුත් මෘදුකාංග පැකේජ, ස්ථාපනය කිරීමට අවශ්ය විය හැක gnu-sed, grep:

brew install findutils
brew install gnu-indent
brew install gnu-sed
brew install gnutls
brew install grep
brew install gnu-tar
brew install gawk

2019 ජනවාරි සිට --with-default-namesවිකල්පය ඉවත් කර ඇති බව සලකන්න , එබැවින් gඋපසර්ගය නොමැතිව භාවිතා කිරීමට නම් එක් එක් ද්විමය මාර්ගයට එක් කළ යුතුය .

පැරණි යොමුව ( --with-default-namesලබා ගත හැකි විට ): http://www.topbug.net/blog/2013/04/14/install-and-use-gnu-command-line-tools-in-mac-os-x/


brew install gawk(අනෙක් සියල්ල මෙන් නොව) ප්‍රතිස්ථාපනය වන බව සලකන්න ( awkසංකේතාත්මක සබැඳියක් හරහා /usr/local/bin/awk). ඔබ මුල් පවත්වා ගැනීමට ඔබට අවශ්ය නම් /usr/bin/awk, හුදෙක්rm /usr/local/bin/awk
wisbucky

18

ඒවා ප්‍රතිස්ථාපනය කිරීමට මම නිර්දේශ කරමි යැයි මට විශ්වාස නැත ; කෙසේ වෙතත්, ඔබට ඒවා වෙනත් මාර්ගයකට ස්ථාපනය කර ඒවා ඒ ආකාරයෙන් භාවිතා කළ හැකිය. සමස්තයක් ලෙස, ඔබ ලිනක්ස් වෙතින් පැමිණෙන්නේ නම් සහ තවත් “ජනක” * නික්ස් උපයෝගිතා සහ යෝග්‍යතාවයට සමාන පද්ධතියකට ප්‍රවේශ වීමට කැමති නම්, මම මැක්පෝර්ට්ස් සොයා බැලීමට නිර්දේශ කරමි: http://www.macports.org

නිදසුනක් ලෙස, ඇපල් විසින් ඇතුළත් කරන ලද GCC වලට වඩා / ඊට අමතරව නවතම "සාමාන්‍ය" GCC භාවිතා කිරීමට එය ඉඩ දෙයි.


3
උදාහරණයක් ලෙස, මැක් ඕඑස් එක්ස් වෙතින් තාර සහ සිප්, ග්නූ අනුවාදයන් නොදන්නා පාර-දත්ත ගැන දනී.
lhf

1
ඇපල් විසින් සපයන ලද යෙදුම් ඇත, ඒවා සමහර විධාන රේඛා මෙවලම් සඳහා වන GUIs වන අතර ඔබ ඒවා ප්‍රතිස්ථාපනය කළහොත් යෙදුම් අමුතු ලෙස හැසිරීමට පටන් ගත හැකිය, එබැවින් ප්‍රතිස්ථාපනය නොකොට එකතු කිරීම සමඟ යන්න.
Ɱark

දකුණ; මැක්පෝර්ට්ස් වැනි යමක් ඒවා එකතු කරයි, එය ඒවා ප්‍රතිස්ථාපනය නොකරයි.
ජොනතන්

ඔබට මැක්පෝර්ට්ස් සමඟ පෙරනිමියෙන් ග්නූ උපයෝගිතා භාවිතා කිරීමට අවශ්‍ය නම් /opt/local/libexec/gnubinඔබේ PATHපරිසර විචල්‍යයේ ඉදිරිපස කොටස එකතු කළ හැකිය .
ලකුණු පත්‍රය

9

මෙය හරියටම කිරීමට මම පිටපතක් ලියා ඇත! පිටපත මෙහි (හෝ පහළ) නැරඹිය හැකිය . කෙසේ වෙතත්, මෙම පෝස්ට් එක කලින් සම්බන්ධ කළ ස්ක්‍රිප්ටයේ නවතම අනුවාදය පිළිබිඹු කරනු ඇතැයි මට සැමවිටම සහතික විය නොහැක.

ස්ක්‍රිප්ට් ධාවනය කිරීමෙන් පසු, හෝම්බ rew ස්ථාපනය කරනු ඇත (දැනටමත් නොමැති නම්), ඊට සම්බන්ධ සියලුම GNU උපයෝගිතා ස්ථාපනය කරනු ඇත (දැනටමත් නොමැති නම්), සහ PATHවිචල්‍යය ස්ථාපිත උපයෝගිතා වලින් ගොඩනගනු ඇත.

#!/bin/bash

# Install Homebrew (if not already installed)
ruby -e "$(curl -fsSL "\
"https://raw.githubusercontent.com/Homebrew/install/master/install)"

# Install required packages from Homebrew
brew tap homebrew/dupes
brew install coreutils binutils diffutils ed findutils gawk gnu-indent gnu-sed \
  gnu-tar gnu-which gnutls grep gzip screen watch wdiff wget bash gdb gpatch \
  m4 make nano file-formula git less openssh python rsync svn unzip vim \
  --default-names --with-default-names --with-gettext --override-system-vi \
  --override-system-vim --custom-system-icons

# Empty the .bash_path file that holds GNU paths
> ~/.bash_path

# Build PATH variable script in ~/.bash_path
for i in /usr/local/Cellar/*/*/bin; do
  echo 'export PATH="'$i':$PATH"' >> ~/.bash_path
done
for i in /usr/local/Cellar/*/*/libexec/gnubin; do
  echo 'export PATH="'$i':$PATH"' >> ~/.bash_path
done
for i in /usr/local/Cellar/*/*/share/man; do
  echo 'export MANPATH="'$i':$MANPATH"' >> ~/.bash_path
done
for i in /usr/local/Cellar/*/*/libexec/gnuman; do
  echo 'export MANPATH="'$i':$MANPATH"' >> ~/.bash_path
done

# Check if .bash_path is being called from .bash_profile
PATCH=`grep "~/.bash_path" ~/.bash_profile`
if [ "$PATCH" == "" ]; then
  # Add Ubuntu-style PS1 to .bash_profile
  cat <<EOF > ~/.bash_profile
export PS1="\[\033[1;32m\]\u@\h\[\033[0m\]:\[\033[1;34m\]\w\[\033[0m\]# "
EOF
  # Add .bash_path to .bash_profile
  echo "source ~/.bash_path" >> ~/.bash_profile
fi

1
විවේචනාත්මක අදහස් දැක්වීමකින් තොරව ඔබ පහත් අයට ආදරය කරන්නේ නැද්ද? පිටපතට ස්තූතියි.
ජස්ටින් ෆෝස්

Ust ජස්ටින්ෆෝර්ස් ප්‍රශ්නයක් නැත! ප්‍රතිපෝෂණයට ස්තූතියි.
මැටි ෆ්‍රීමන්

2
-1. මෙම ස්ක්‍රිප්ට් ඕනෑවට වඩා මැජික් කරයි. මෙම සියලු .bash_path-mangling ඔබ @ user495470 හා xuhdev ගේ @ පිළිතුරු අනුගමනය කරනවා නම් හොඳ නැහැ අවශ්ය වේ. PS1 වෙනස් කිරීම මෙම ප්‍රශ්නයේ විෂය පථයෙන් සම්පූර්ණයෙන්ම බැහැර ය.
ග්‍රෙග් ඩුබිකි

1
Reg ග්‍රෙග් ඩුබිකි අවාසනාවකට මෙන්, මෙම සමහර පැකේජ සඳහා "මැන්ග්ලිං" යන බාෂ් මාර්ගය අවශ්‍ය වේ. ඔබට මෙය ඔබම පරීක්ෂා කර බැලිය හැකිය. PS1 වෙනස් කිරීම සම්බන්ධයෙන්: මෙම ස්ක්‍රිප්ට් පුද්ගලික භාවිතය සඳහා වේ. එය ආපසු හැරවීමට කැමති ඕනෑම කෙනෙකුට එය ඉතා පහසුවෙන් කළ හැකිය.
මැටි ෆ්‍රීමන්

5

මාකෝස් සීඑල්අයි නැවුම් ග්නූ / ලිනක්ස් සීඑල්අයි අත්දැකීමක් බවට විනිවිද පෙනෙන ලෙස පරිවර්තනය කරන පිටපතක් මා විසින් ලියා ඇත

  • නැතිවූ GNU වැඩසටහන් ස්ථාපනය කිරීම
  • යල් පැන ගිය GNU වැඩසටහන් යාවත්කාලීන කිරීම
  • පෙර ස්ථාපනය කරන ලද BSD වැඩසටහන් ඔවුන්ගේ කැමති GNU ක්‍රියාත්මක කිරීම සමඟ ප්‍රතිස්ථාපනය කිරීම
  • ජනප්‍රිය GNU / Linux බෙදාහැරීම් අතර පොදු වැඩසටහන් ස්ථාපනය කිරීම

https://github.com/fabiomaia/linuxify

git clone https://github.com/fabiomaia/linuxify.git
cd linuxify/
./linuxify install

සෑම දෙයක්ම පහසුවෙන් අහෝසි කිරීමටද එය ඔබට ඉඩ සලසයි.

./linuxify uninstall

1
පළමු විධානය ක්‍රියාත්මක කිරීමට උත්සාහ කිරීම ( git clone git@github.com.:fabiomaia/linuxify.git) එය මුලින් පැවසුවේ "සත්කාරක 'github.com' හි සත්‍යතාව තහවුරු කළ නොහැකි බවයි. මම ටයිප් yesකර Enter එබුවෙමි. ඊට පස්සේ ඒක කිව්වේ git@github.com: Permission denied (publickey). fatal: Could not read from remote repository. Please make sure you have the correct access rights and the repository exists.මොකක්ද වැරැද්ද?
izogfif

@izogfif ඒ වෙනුවට HTTPS සමඟ ක්ලෝන කිරීමට උත්සාහ කරන්නgit clone https://github.com/fabiomaia/linuxify.git
fabiomaia

1
ඔව්, එය සාර්ථක විය. කරුණාකර, ඔබේ පිළිතුර යාවත්කාලීන කරන්න (ආරම්භයේදීම එම ඩොලර් ඉවත් කරන්න - පෙළ තෝරාගත් විට ඒවා පිටපත් කර කොන්සෝලය තුළට පිටපත් කරන්න).
izogfif

@izogfif යෝජනා වලට ස්තූතියි.
ෆැබියෝමියා

0

PATH සහ MANPATH පරිසර විචල්‍යයන් සැකසීමට විකල්පයක් ලෙස (මම ඇත්ත වශයෙන්ම නිර්දේශ කරමි), ද්විමයයන් දැනට පවතින PATH ස්ථානයකට සමමුහුර්ත කළ හැකිය:

හෝම්බ rew coreutilsද්විමය ස්ථාපනය කරන්නේ කොතැනදැයි ඔබ දැනගත යුතුය .

/usr/local/opt/coreutils/bin

මෙම /usr/local/optබහලුම යාවත් කාලීන කිරීම අතර වෙනස් කිරීමට අපහසු බව එහිදී බරපැනක් ගබඩා සාපේක්ෂව ස්ථීර ගොනු වේ.

එවිට ඔබට ඔබගේ PATH හි දැනටමත් ඇති ස්ථානයකට සංකේතාත්මක සබැඳි නිර්මාණය කළ හැකිය. එය PATH හි මුල් වරට පටවන ලද මාර්ගයක් විය යුතුය, මන්ද PATH පළමු වරට පැමිණි, පළමු සේවා පදනම මත සෙවීමයි. /usr/local/binබැලීම මත පදනම් වූ හොඳ තේරීමක් echo $PATH.

which sha256sum # prove it is not on PATH
ln -s /usr/local/opt/coreutils/bin/sha256sum /usr/local/bin/
which sha256sum # prove it is on PATH

මේ ආකාරයෙන්, සංකේතාත්මක සබැඳි නිර්මාණය කිරීම පාහේ පහසු වනු ඇත . සමහර අවස්ථාවලදී, ඔබට දැඩි පාලනයක් අවශ්‍ය විටදී මෙන්, එය ඔබගේ PATH සහ MANPATH වෙත සම්පූර්ණ නාමාවලියක් එකතු කරනවාට වඩා හොඳ විකල්පයකි.

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.