
خب شما به عنوان برنامه نویس گولنگ قصد دارید پکیج های مربوط به گولنگ را در پروژه خودتون استفاده کنید اما بارها با پیغام 403 گوگل در هنگام در یافت پکیج مواجه شدید . قصد دارم روش هایی رو برای رفع این مشکل ارائه کنم تا بتونیم همگی از این زبان برنامه نویسی و پکیج هاش استفاده کنیم.
خب تا حالا شده کامند زیر رو اجرا کنی که یک پکیج گولنگی رو دانلود کنی؟
go get github.com/klauspost/compress # این پکیج الگوریتم های مختلف فشرده سازی را ارائه می دهد
و با پیغام 403 Forbidden روبرو بشید؟
>> go get github.com/klauspost/compress go: downloading github.com/klauspost/compress v1.17.11 go: github.com/klauspost/compress@v1.17.11: reading https://proxy.golang.org/github.com/klauspost/compress/@v/v1.17.11.zip: 403 Forbidden
برای رفع این مشکل برای دولووپ و پروداکشن راه حل هایی وجود داره که این خطاها رفع بشن.
ابتدا پکیج را به صورت مستقیم از گیت دانلود می کنیم.
wget https://github.com/klauspost/compress/archive/refs/tags/v1.17.11.zip -O compress-v1.17.11.zip
پس از اتمام دانلود در مسیر دلخواه unzip کنید.
من معمولا یک دایرکتوری در root ایجاد می کنم و پکیج های تحریمی را در آن unzip می کنم.
sudo mkdir /go-pkg sudo chown -R $USER:$USER /go-pkg unzip compress-v1.17.11.zip -d /go-pkg
نکته: علت ساخت در root این است که در داکر فایل نیز برای دسترسی به پکیج به مشکل بر نخوریم . اگر نه می توانستیم در Home کاربر و یا در GOPATH یک دایرکتوری ایجاد کرد ولی در داکر فایل مجبور به عوض کردن آن می شدیم.سرویس داکر
بعد از اتمام کار در فایل go.mod پکیج ها را به صورت زیر اضافه کنید.
require github.com/klauspost/compress v1.17.11 replace github.com/klauspost/compress => /go-pkg/compress-1.17.11
در مورد داکر فایل نیز می توان به صورت زیر عمل کرد:
FROM golang:1.23 ENV CGO_ENABLED=0 ENV GOOS=linux WORKDIR /app RUN apt-get update && apt-get install -y curl unzip && rm -rf /var/lib/apt/lists/* RUN curl -L https://github.com/klauspost/compress/archive/refs/tags/v1.17.11.zip \ -o compress-v1.17.11.zip && \ mkdir -p /go-pkg && \ unzip compress-v1.17.11.zip -d /go-pkg && \ rm -rf compress-v1.17.11 COPY . . RUN go mod download RUN go build -o start main.go RUN chmod +x /app/start CMD ["sh", "-c", "/app/start"]
در انتها امیدوارم این آموزش بکارتون بیاد . شاد و پیروز باشید.