কীভাবে তৃতীয় পক্ষের প্যাকেজগুলি আপডেট করবেন?


189

গোলং প্যাকেজগুলি কীভাবে সক্রিয়ভাবে বৃদ্ধি এবং উন্নতি করে তা অবাক করে দেখছি প্যাকেজ সংস্করণগুলির সমস্যাটি কীভাবে সমাধান করা হবে?

আমি দেখতে পাচ্ছি যে একটি উপায় হ'ল একটি প্রকল্প ফোল্ডারের অধীনে তৃতীয় পক্ষের প্যাকেজগুলি সঞ্চয় করা।

তবে আমি যদি এটি দিয়ে ইনস্টল করব go get?

উত্তর:


308

go getতালিকাভুক্ত প্রথম ডিরেক্টরিতে প্যাকেজটি ইনস্টল করবে GOPATH(একটি পরিবেশের ভেরিয়েবল যা ডিরেক্টরিগুলির একটি পৃথক পৃথক ডিরেক্টরি থাকতে পারে)। আপনি go get -uবিদ্যমান প্যাকেজ আপডেট করতে ব্যবহার করতে পারেন ।

আপনি নিজের go get -u allপ্যাকেজ আপডেট করতে ব্যবহার করতে পারেনGOPATH

বড় প্রকল্পগুলির জন্য, প্রতিটি প্রকল্পের জন্য বিভিন্ন জিওপ্যাথ তৈরি করা যুক্তিসঙ্গত হতে পারে, যাতে প্রকল্প বিতে একটি লাইব্রেরি আপডেট করার ফলে প্রকল্প বিতে সমস্যা দেখা দেয় না A

পরিবেশের পরিবর্তনশীল go help gopathসম্পর্কে আরও জানতে টাইপ করুন GOPATH


2
সমস্ত প্যাকেজগুলি কী সর্বশেষ সংস্করণে আপডেট করা সম্ভব, বান্ডেল আপডেটের মতো?
চৌরবিন

73
go get -u all পুনরুত্থানের জন্য কেবল দুঃখিত হওয়া উচিত , তবে অন্য কারও সন্ধানের ক্ষেত্রে।
ড্যান অ্যান্ডারসন

go get -u allআর কাজ করে না! কমপক্ষে Go 1.13 এর জন্য GOPATH- এ এই কমান্ডটি চালানো একটি সতর্কতা ফিরিয়ে দেবে: `সতর্কতা" সমস্ত "কোনও প্যাকেজ মিলছে না"
কন্ট্রাপাক

Go 1.12.9 এর সাথে কাজ করে
fviktor

61

@ টাক্স উত্তরটি দুর্দান্ত, কেবলমাত্র এটি যুক্ত করতে চেয়েছিলেন যে আপনি নির্দিষ্ট প্যাকেজ আপডেট করতে যান ব্যবহার করতে পারেন :

go get -u full_package_name

18

যেহেতু প্রশ্নটিতে তৃতীয় পক্ষের লাইব্রেরিগুলি উল্লেখ করা হয়েছে এবং সমস্ত প্যাকেজ নেই তাই আপনি সম্ভবত ওয়াইল্ডকার্ড ব্যবহার করে ফিরে যেতে চান।

ব্যবহারের ক্ষেত্রে: আমি কেবলমাত্র আমার সমস্ত প্যাকেজগুলিই গিথুব ভিসিএসের কাছ থেকে আপডেট করতে চাই, তবে আপনি কেবল বলেছেন:

go get -u github.com/... // ('...' being the wildcard). 

এটি এগিয়ে যাবে এবং কেবলমাত্র বর্তমান গিথুব প্যাকেজগুলি আপডেট করবে $GOPATH

একই কোনও ভিসিএসের মধ্যেও প্রযোজ্য, বলুন আপনি কেবল ওগ্রানাইজিটন এ এর ​​রেপো থেকে সমস্ত প্যাকেজ আপগ্রেড করতে চান যেহেতু তারা নির্ভর করে এমন একটি হটফিক্স প্রকাশ করেছে যেহেতু:

go get -u github.com/orgA/...

11

উপরের উত্তরগুলিতে নিম্নলিখিত সমস্যাগুলি রয়েছে:

  1. তারা আপনার অ্যাপ্লিকেশন সহ সমস্ত কিছু আপডেট করে (যদি আপনার অনুমতি ছাড়াই থাকে)।
  2. তারা ইতিমধ্যে আপনার প্রকল্প থেকে অপসারণ করা প্যাকেজগুলি আপডেট করেছে তবে ইতিমধ্যে আপনার ডিস্কে রয়েছে on

এগুলি এড়াতে, নিম্নলিখিতগুলি করুন:

  1. আপনি আপডেট করতে চান এমন তৃতীয় পক্ষের ফোল্ডারগুলি মুছুন।
  2. আপনার অ্যাপ ফোল্ডারে যান এবং চালান go get -d

1

1.13 যান

(মডিউল রুট ডিরেক্টরি থেকে এক্সিকিউট)

নির্দিষ্ট নির্ভরতা আপডেট করুন:

go get -u <package-name>

সর্বশেষ অপ্রত্যক্ষ বা প্যাচ আপগ্রেডগুলিতে প্রত্যক্ষ ও অপ্রত্যক্ষ নির্ভরতা আপডেট করুন (প্রাক-প্রকাশগুলি উপেক্ষা করা হবে):

go get -u ./...
# or
go get -u=patch ./...

রেফারেন্স:

https://github.com/golang/go/wiki/Modules#daily-workflow

go help get



-2

পথে যান এবং টাইপ করুন

go get -u ./..

এটি সমস্ত প্রয়োজনীয় প্যাকেজ আপডেট করবে।


এই আক্ষরিক ব্যাখ্যা কাজ করে না। আরও কিছু প্রসঙ্গ সহায়ক হবে।
কনট্রাপাক

2
আমি বিশ্বাস করি তিনি go get -u ./...(3 বিন্দু) বোঝাতে চেয়েছিলেন
ব্রায়ান
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.