Go get এর সাথে ইনস্টল হওয়া প্যাকেজগুলি সরানো হচ্ছে


227

আমি অন্যথায় যে আমার প্যাকেজটি আমার রুট গো ইনস্টলটি go get packageসেট করতে হবে তা শিখার আগে আমি একটি প্যাকেজ ডাউনলোড করতে GOPATHদৌড়েছি (আমি আমার গো ইনস্টলকে কাস্টম থেকে পরিষ্কার এবং আলাদা কোর রাখতে পছন্দ করব)। আমি পূর্বে ইনস্টল করা প্যাকেজগুলি কীভাবে সরিয়ে ফেলব?


2
তাদের জন্য গো মডিউলগুলি
স্ট্যাকওভারফ্লো.com

উত্তর:


187

এটি কেবল উত্স ডিরেক্টরি এবং সংকলিত প্যাকেজ ফাইল মুছে ফেলা নিরাপদ। অধীনে সোর্স ডিরেক্টরিতে খুঁজুন $GOPATH/srcএবং অধীনে প্যাকেজ ফাইল $GOPATH/pkg/<architecture>, উদাহরণস্বরূপ: $GOPATH/pkg/windows_amd64


5
প্রথমে আমি $ GOPATH / pkg / আর্কিটেকচার / এর সন্ধান করলাম যা বিদ্যমান ছিল না। তখন আমি বুঝতে পেরেছিলাম আপনি যা উল্লেখ করছেন তা হ'ল OP গোপথ / পিকেজি / {। আর্কিটেকচার} example, উদাহরণস্বরূপ $ গোপথ / পিকেজি / উইন্ডোজ_আমডি .৪।
নিউক্লিওন

1
ডিফল্ট মান GOPATHহল /usr/lib/go
Flimm

245
যদি এটি নিরাপদ এবং সহজ হয় তবে কেন এটির কোনও উপকমান্ড নেই?
বেংট

71
এনপিএম থেকে আসছে, আমাদের আরও অনেক কিছু আছেgo
এসএফএফ

4
ম্যাকে: $ গোপথ = OME হোম / যান
রিকার্ডো মার্টিনস

151

আপনি সংরক্ষণাগার ফাইল এবং এক্সিকিউটেবল বাইনারিগুলি মুছতে পারেন যা go install(বা go get) এর সাথে একটি প্যাকেজের জন্য উত্পাদন করে go clean -i importpath...। এগুলি সাধারণত যথাক্রমে $GOPATH/pkgএবং নীচে থাকে $GOPATH/bin

...আমদানিপথটিতে অন্তর্ভুক্ত করার বিষয়ে নিশ্চিত হন , যেহেতু এটি প্রদর্শিত হয় যে, যদি কোনও প্যাকেজটিতে এক্সিকিউটেবল অন্তর্ভুক্ত থাকে তবে go clean -iকেবল এটি সরিয়ে ফেলবে এবং gore/gocodeনীচের উদাহরণের মতো সাব- প্যাকেজগুলির জন্য সংরক্ষণাগারগুলি ফাইল নয় ।

উত্স কোডটি এরপরে ম্যানুয়ালি সরানো দরকার $GOPATH/src

go clean-nএকটি শুকনো রানের জন্য একটি পতাকা রয়েছে যা এটি সম্পাদন না করে যা চালিত হবে তা মুদ্রণ করে, যাতে আপনি নিশ্চিত হতে পারেন (দেখুন go help clean)। এটি -rপুনরাবৃত্তিমূলকভাবে নির্ভরতাগুলি পরিষ্কার করার জন্য একটি লোভনীয় পতাকা রয়েছে, যা আপনি সম্ভবত ব্যবহার করতে চান না কারণ আপনি একটি শুকনো রান থেকে দেখবেন যে এটি প্রচুর স্ট্যান্ডার্ড লাইব্রেরি সংরক্ষণাগার ফাইলগুলি মুছে ফেলবে!

একটি সম্পূর্ণ উদাহরণ, যা আপনি পছন্দ করলে একটি স্ক্রিপ্টের ভিত্তি করতে পারেন:

$ go get -u github.com/motemen/gore

$ which gore
/Users/ches/src/go/bin/gore

$ go clean -i -n github.com/motemen/gore...
cd /Users/ches/src/go/src/github.com/motemen/gore
rm -f gore gore.exe gore.test gore.test.exe commands commands.exe commands_test commands_test.exe complete complete.exe complete_test complete_test.exe debug debug.exe helpers_test helpers_test.exe liner liner.exe log log.exe main main.exe node node.exe node_test node_test.exe quickfix quickfix.exe session_test session_test.exe terminal_unix terminal_unix.exe terminal_windows terminal_windows.exe utils utils.exe
rm -f /Users/ches/src/go/bin/gore
cd /Users/ches/src/go/src/github.com/motemen/gore/gocode
rm -f gocode.test gocode.test.exe
rm -f /Users/ches/src/go/pkg/darwin_amd64/github.com/motemen/gore/gocode.a

$ go clean -i github.com/motemen/gore...

$ which gore

$ tree $GOPATH/pkg/darwin_amd64/github.com/motemen/gore
/Users/ches/src/go/pkg/darwin_amd64/github.com/motemen/gore

0 directories, 0 files

# If that empty directory really bugs you...
$ rmdir $GOPATH/pkg/darwin_amd64/github.com/motemen/gore

$ rm -rf $GOPATH/src/github.com/motemen/gore

নোট করুন যে এই তথ্যটি go1.5 সংস্করণ গো সংস্করণে সরঞ্জামের উপর ভিত্তি করে ।


2
আপনি কীভাবে সমস্ত প্রকল্পের নির্ভরতা খুঁজে পাবেন?
মাইকেল ম্যাললেট

5
#!/bin/bash

goclean() {
 local pkg=$1; shift || return 1
 local ost
 local cnt
 local scr

 # Clean removes object files from package source directories (ignore error)
 go clean -i $pkg &>/dev/null

 # Set local variables
 [[ "$(uname -m)" == "x86_64" ]] \
 && ost="$(uname)";ost="${ost,,}_amd64" \
 && cnt="${pkg//[^\/]}"

 # Delete the source directory and compiled package directory(ies)
 if (("${#cnt}" == "2")); then
  rm -rf "${GOPATH%%:*}/src/${pkg%/*}"
  rm -rf "${GOPATH%%:*}/pkg/${ost}/${pkg%/*}"
 elif (("${#cnt}" > "2")); then
  rm -rf "${GOPATH%%:*}/src/${pkg%/*/*}"
  rm -rf "${GOPATH%%:*}/pkg/${ost}/${pkg%/*/*}"
 fi

 # Reload the current shell
 source ~/.bashrc
}

ব্যবহার:

# Either launch a new terminal and copy `goclean` into the current shell process, 
# or create a shell script and add it to the PATH to enable command invocation with bash.

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