গিথুব সংগ্রহস্থলের একটি নির্দিষ্ট ট্যাগে কীভাবে "যান" পাবেন


89

আমি ইনফ্লাক্সডিবি ডাটাবেস (সংস্করণ v0.8.8) ব্যবহার করে সংকলন করার চেষ্টা করছি go get github.com/influxdb/influxdb

তবে এটি মাস্টার শাখাটি টানছে এবং আমার v0.8.8ট্যাগ লাগবে ।

আমি চেষ্টা করার চেষ্টা করেছি: go get github.com/influxdb/influxdb/releases/tag/v0.8.8কিন্তু এটি ব্যর্থ হয়েছে বলে খুঁজে পেল না।

আমি একটি নিয়মিত করার চেষ্টা go getমাস্টার শাখার, এবং তারপর নিজে ব্যবহার ট্যাগ চেক আউট gitমধ্যে GOPATH/src/github...corret সংস্করণ সেট করার জন্য।

শেষ পদ্ধতির সাহায্যে সমস্যাটি হ'ল আমি যখন এর সাথে নির্ভরতাগুলি টানানোর চেষ্টা করি তখন go get -u -f ./...তাদের মাস্টার শাখায় সন্ধান করার চেষ্টা করি এবং তাদের কিছু মাস্টার শাখায় বিদ্যমান থাকে না ...

টিএল; ডিআর : go getএকটি নির্দিষ্ট গিথব ট্যাগে সঞ্চালন করুন এবং সঠিক নির্ভরতা টানুন।


এটি চেষ্টা করুন .. গিট ট্যাগ -a v0.8.8 - "আপনার মন্তব্য"
অশোক লন্ডে

4
@ আশোকলন্ধে তিনি জিজ্ঞাসা করছেন যে কীভাবে একটি ট্যাগ ব্যবহার করবেন go get, কীভাবে এটি তৈরি করবেন না।
আশ্চর্যজনকভাবে

@ আশ্চর্যজনকভাবে ট্যাগ যুক্ত করার জন্য এটি আদেশ।
অশোক লন্ডে

আমার মনে হয় আমি কীভাবে একটি নির্দিষ্ট ট্যাগটি চেক করতে হবে তা চেষ্টা করার চেষ্টা করেছি এবং শেষবার চেষ্টা করেছিলাম এটি সম্ভব ছিল না ...
আশ্চর্যজনক

4
এই একবার দেখুন । শেষের স্লাইডগুলি কিছু নির্ভরতা পরিচালনার বিকল্প প্রস্তাব করে।
আশ্চর্যজনকভাবে

উত্তর:


35

এটি go getসরঞ্জাম ব্যবহার করে সম্ভব নয় । পরিবর্তে আপনাকে তৃতীয় পক্ষের গো প্যাকেজ পরিচালনার সরঞ্জাম ব্যবহার করতে হবে বা প্যাকেজগুলির জন্য নিজের কাঁটা তৈরি করতে হবে যা আপনি আরও সূক্ষ্ম দানাদার পরিচালনা করতে চান।

গুগলে কাজ করে এমন এক ব্যক্তির সাথে কথা বলেছিলেন এবং তিনি এই সমস্যা / প্রয়োজনীয়তার বিষয়টি স্বীকার করেছেন, তিনি বলেছিলেন যে তাঁর দল যা বিক্রেতাকে ব্যবহার করেছিল সেটি বেশ বড় এবং তারা সম্ভবত এটি খুব শীঘ্রই অফিসিয়াল সরঞ্জাম দিয়ে সমাধান করবে।

আরও পড়ুন:

Go 1.6 এ বিক্রয় করছে

Go 1.6 (এই পোস্টটি প্রথম দিকে লেখার পরে) পরীক্ষামূলক থেকে বিক্রেতাকে মুক্তি দেওয়া হয়েছে যা তৃতীয় পক্ষের সরঞ্জামগুলি ব্যবহার করে প্যাকেজের নির্দিষ্ট ট্যাগ / সংস্করণ ব্যবহারের প্রক্রিয়াটিকে সহজ করে তোলে। go getনির্দিষ্ট ট্যাগ বা সংস্করণ আনতে এখনও কার্যকারিতা নেই।

কীভাবে বিক্রেতারা কাজ করে সে সম্পর্কে আরও: ভেন্ডর ফোল্ডারটি বোঝা এবং ব্যবহার করা

Go 1.11 এ মডিউলগুলি

Go 1.11 নির্ভরতা পরিচালন ব্যবস্থার উন্নতি করতে মডিউল নামে একটি পরীক্ষামূলক বৈশিষ্ট্য প্রকাশ করেছে, তারা এটি Go 1.12 এ স্থিতিশীল হিসাবে প্রকাশের আশা করছে: Go 1.11 এ মডিউল সম্পর্কে তথ্য


4
গুগল অংশ সম্পর্কে আপনি কি আরও কিছু বিশদ বর্ণনা করতে পারেন? গো সম্প্রদায়ের মেলিং তালিকায় এটি নিয়ে একটি বড় আলোচনা রয়েছে, সেখানে অন্য কোনও দিকনির্দেশনা নেই যা এখানে আলোচনা হয়নি?
নয়_এ_গল্ফার

4
@ নট_এ_গল্ফার এটি এমন এক ব্যক্তি যাঁরা গো দলের অংশ নন, তবে এই বিষয়ে কথা বলেছেন যে তারা বর্তমানে অভ্যন্তরীণভাবে বিক্রেতাদের ব্যবহার করছেন এবং এটি বেশ বড়। সুতরাং তাদের সরকারী সরঞ্জামগুলির সাহায্যে এটি আরও ভালভাবে সমাধান করার আগ্রহ ছিল। মনে করুন এটি যদিও একটি আনুষ্ঠানিক বিবৃতি ছিল, এটি আরও পরিষ্কার করে দেবে।
রবিন অ্যান্ডারসন

4
আফাইক, একমাত্র প্রস্তাবটি কোনও সরকারী বিক্রেতার / নির্ভরতা ফাইল ফর্ম্যাটের জন্য। এটি এখনও দুর্দান্ত, প্রকল্পগুলি কোনও নির্ভরতার সরঞ্জামের সাথে আবদ্ধ হবে না এবং তারা যে কোনও সমাধান চাইলে (যেমন আমি পুনর্বিবেচনা লক করা পছন্দ করি, অন্যরা বিক্রেতাকে পছন্দ করে) তার সাথে বাধা দিতে পারে।
জিমবি

মডিউলগুলি সত্যই কোড সংকলকগুলির উপর নির্ভরতার সাথে মোকাবিলা করে না, যা আমাদের ব্যবহারের জন্য প্রোটোক-জেন-ফিক্স সংস্করণ সহ অন্য কোথাও যেতে ব্যবহার করতে বাধ্য করে। এভাবে আমাদের 2 টি ভিন্ন জায়গায় একই সংস্করণটির ট্র্যাক রাখতে হবে (কারণ গ্রন্থাগারগুলি জেনারেটরের সাথে
দৃly়ভাবে

24

go mod এখন পাওয়া যায়।

যাদের জন্য নির্দিষ্ট ট্যাগের বাইনারি তৈরি করা দরকার তাদের জন্য এখানে আমার উপায়:

mkdir temp
cd temp
go mod init .
go get -d -v github.com/nsqio/nsq@v1.1.0
mkdir bin
go build -o bin/nsqd.exe github.com/nsqio/nsq/apps/nsqd

ব্যাখ্যা:

  • উপরের কোডটি এনএসকিউ v1.1.0 টান এবং তৈরি করে nsqd
  • go mod init .go.modবর্তমান ডিরেক্টরিতে একটি ফাইল তৈরি করে , যা go getপুনর্বিবেচনা / ট্যাগগুলির সাহায্যে সক্ষম করে । ( এই লিঙ্কটি দেখুন )
  • -d অর্থ "কেবল ডাউনলোড করুন", আপনি যদি সরাসরি ইনস্টলেশন চান তবে এই পতাকাটি বাদ দিন এবং এই লাইনের নীচে বিল্ড কমান্ডগুলি।
  • -v এর অর্থ "হ'ল ভার্বোজ"
  • উপরের কোডটি উইন্ডোজের জন্য। আপনি যদি লিনাক্স ব্যবহার করেন তবে এর bin/nsqd.exeসাথে প্রতিস্থাপন করুন bin/nsqd

ডাউনলোড করা মডিউলটি এতে সঞ্চিত %GOPATH%\pkg\mod। আপনি যদি আপনার GOPATHডিরেক্টরিটিকে কলুষিত করতে না চান তবে একটি নতুন তৈরি করুন GOPATHএবং এটিতে সেট করুন ।


4
1.13 যেতে গিয়ে go mod initএকটি মডিউল আইডি প্রয়োজন, উদাহরণস্বরূপgo mod init local/build
আর্কি

11

আমি এর সাথে সাফল্য পেয়েছি:

  • ট্যাগ ছাড়াই get কমান্ড চালান - এটি মাস্টার শাখার ক্লোন করা উচিত should
  • ক্লোন ডিরেক্টরিতে যান এবং আপনি যে ট্যাগ বা শাখাটি চান তা চেকআউট করুন।
  • আবার go get কমান্ডটি চালান, এটির পরীক্ষা করা শাখায় কমান্ডটি প্রক্রিয়া করা উচিত।

4
প্রথম রানটিতে আপনি go get -d <git-url>কেবল প্যাকেজগুলি ডাউনলোড করতে এবং ইনস্টলেশনটি এড়িয়ে যেতে পারেন।
ওয়েবওয়ার্স

আপনার নির্দিষ্ট ট্যাগের প্রয়োজন হলে এটি ব্যবহার করা উচিত, gopkg.in খুব সীমাবদ্ধ।
হৃষীকেশ কুমার

4

এই প্রশ্নটি গো মডিউলগুলির পূর্বাভাস দেয় তবে ভবিষ্যতের রেফারেন্সের জন্য নির্দিষ্ট সংস্করণ আনার জন্য Go 1.11 এ সঠিক পদ্ধতিটি হ'ল:

go get github.com/influxdb@[version]

অথবা একটি নির্দিষ্ট গিট ট্যাগ পেতে:

go get github.com/influxdb@[gitref]


1

কমপক্ষে গিট সংগ্রহস্থলের জন্য আমার এই সমস্যাটির সমাধানের জন্য একটি (কিছুটা হ্যাকিশ, তবে কাজ করা) পদ্ধতি রয়েছে: গেট'ড প্যাকেজগুলি সাধারণ উত্স নিয়ন্ত্রণের সংগ্রহস্থল হিসাবে, সাধারণ গিট সরঞ্জাম ব্যবহার করে যে কেউ ট্যাগগুলি পরীক্ষা করে দেখতে পারে (কমান্ড লাইন থেকে গিট ব্যবহার করতে পারে) , আমি আটলসিয়ান সোর্স ট্রি ব্যবহার করছি)।

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

আমি এখন প্রতিবারের মতো আমি নতুন গো প্যাকেজ ব্যবহার করি এবং আমার গোপথ-রেপোতে প্রতিশ্রুতিবদ্ধ এবং ঠেলাতে পারি। যখন আমার সতীর্থরা এই রেপো থেকে টানুন এবং একটি গিট সাবমডিউল আপডেট (বা কেবল সোউটারটি এর মাধ্যমে আপডেট করুন, যা এটি স্বয়ংক্রিয়ভাবে ঘটে) তখন প্যাকেজের তাদের সংস্করণটি যেমন আছে তেমন আমার টেবিলে চেক আউট হয়ে যায়।

অবশ্যই এটি কেবল গিট সোর্স নিয়ন্ত্রণে থাকা প্যাকেজগুলির জন্য কাজ করে ...


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