গো-ল্যাং গো সরঞ্জাম ফিশের সাথে নয় তবে বাশের সাথে কাজ করে


5

আপনারা যারা মাছ জানেন তা জানেন না: http://fishshell.com/

একইভাবে, আপনি যদি গো কোডিং পরিবেশের সাথে পরিচিত না হন এবং এখনও এই ছোট ধাঁধাটি চেষ্টা করে দেখতে চান তবে এখানে কিছু তথ্য: http://golang.org/doc/code.html

যাইহোক, তাই আমি একটি গো-ল্যাং দেব সেট আপ করার চেষ্টা করছি। একটি নতুন মেশিনে পরিবেশ যেখানে আমি মাছকে চেষ্টা করছি।

তাই আমি আছে $GOPATHসেট /home/<me>/workspace/go-workspaceউভয় bashএবং fish। এই তার মানে goটুল একটি আশা bin, pkgএবং srcযে তলদেশে ডিরেক্টরি। যা আছে সেখানে।

যাইহোক, go getকিছু কোড সহ ডিরেক্টরিতে টাইপ করা (যা সাধারণত এটি নির্ভরতা ডাউনলোড করে) ফলন দেয়

package code.google.com/p/go.crypto/openpgp: cannot download, $GOPATH not set. For more details see: go help gopath
package code.google.com/p/go.crypto/openpgp/armor: cannot download, $GOPATH not set. For more details see: go help gopath
package code.google.com/p/go.crypto/ssh: cannot download, $GOPATH not set. For more details see: go help gopath
package github.com/codegangsta/cli: cannot download, $GOPATH not set. For more details see: go help gopath
package github.com/oleiade/reflections: cannot download, $GOPATH not set. For more details see: go help gopath
package launchpad.net/goamz/aws: cannot download, $GOPATH not set. For more details see: go help gopath
package launchpad.net/goamz/s3: cannot download, $GOPATH not set. For more details see: go help gopath

আমি একেবারে মিথ্যা বলে জানি কারণ আমি echo $GOPATHযে মূল্য নির্ধারণ করেছি তা চালাতে এবং পপ করতে পারি।

তারপরে, আশ্চর্যের বিষয়, যদি আমি একই কমান্ডটি bashএকই $GOPATHসেট দিয়ে চালাই তবে এটি ঠিক কাজ করে।

কেউ আমাকে বলতে পারেন কেন?

বা আরও সাধারণভাবে, আপনি কি আমাকে বলতে পারবেন যে কোনও প্রোগ্রাম কেন একটি শেলের মধ্যে পরিবেশের পরিবর্তনশীল সনাক্ত করতে পারে তবে অন্যটি নয়?

উত্তর:


10

আপনি কি $GOPATHরপ্তানি হিসাবে মাছ চিহ্নিত করতে মনে আছে ?

set -x GOPATH /home/<me>/workspace/go-workspace

এটি পরীক্ষা করার জন্য যথেষ্ট নয়

echo $GOPATH

যেহেতু ভেরিয়েবলটি রফতানি হয় তা নির্বিশেষে কাজ করবে। পরিক্ষা কর

bash -c 'echo $GOPATH'

যা কেবল GOPATHরফতানি করা হলে এর মান মুদ্রণ করবে । ব্যাশে আপনি এই জাতীয় ভেরিয়েবলগুলি রফতানি করুন:

export GOPATH=/home/<me>/workspace/go-workspace

আমি বিশ্বাস করি -xযে আমি যা অনুভব করছিলাম সেটাই ছিল। ডি ওহ।
লোগান

ধন্যবাদ এটি আমার জন্য কাজ করেছে, তবে আমাকে -gset -gx GOPATH <whatever>
সংশোধকটি

1

সমস্ত শেল ভেরিয়েবল পরিবেশগত পরিবর্তনশীল নয়। ইন bash, আপনি আছে চাই exportএকটি পরিবর্তনশীল এটা শিশু প্রসেস একটি পরিবেশ পরিবর্তনশীল হওয়ার জন্য (যদি যে পরিবর্তনশীল ইতিমধ্যে একটি এনভায়রনমেন্ট ভেরিয়েবল ছিল না)। এটি হ'ল ধরে FOOনেওয়া যে ইতিমধ্যে সংজ্ঞায়িত করা হয়নি, তবে কেবল কার্যকর করার FOO=barফলে FOOশিশু প্রক্রিয়ার পরিবেশে পরিবর্তনশীল দৃশ্যমান হবে না । আপনাকে এটি অনুসরণ করতে হবে export FOO, বা আপনি একবারে এটি করতে পেরেছিলেন export FOO=bar

আমি ধরে নেব অনুরূপ কিছু চলছে fish, যেখানে আপনি অবশ্যই GOPATHশেল ভেরিয়েবল হিসাবে সংজ্ঞায়িত করেছেন, এবং শেল ভেরিয়েবল হিসাবে পরিবেশে রফতানিও হবে না।

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