Mengedar Alat CLI
Penyusunan silang, goreleaser dan tap homebrew
Mengedar Alat CLI ialah pelajaran Go Academy percuma di CoddyKit. Ini ialah pelajaran 4 daripada 4. Sebanyak 3 pelajaran dalam laluan pembelajaran ini boleh dibaca sepenuhnya secara percuma — selepas itu, CoddyKit PRO membuka akses kepada semua pelajaran, serta latihan praktikal dengan penyunting kod terbina dalam dan tutor kecerdasan buatan yang tersedia 24/7. Pelajaran ini merupakan sebahagian daripada laluan pembelajaran Go Academy, dan kemajuan anda disegerakkan merentas web serta aplikasi CoddyKit. Kursus Go Academy merangkumi sejumlah 4 pelajaran.
go install untuk pengedaran setempat
go install github.com/user/tool@latest menyusun dan memasang binari ke dalam $GOPATH/bin. Pengguna perlu memasang Go.
Kompilasi silang
Go menyokong kompilasi silang secara asli. Tetapkan GOOS dan GOARCH untuk menyasarkan sistem pengendalian yang berbeza:
GOOS=linux GOARCH=amd64 go build -o myapp-linux-amd64
GOOS=darwin GOARCH=arm64 go build -o myapp-darwin-arm64
GOOS=windows GOARCH=amd64 go build -o myapp-windows-amd64.exeBendera binaan untuk keluaran
Buang maklumat nyahpepijat dan lumpuhkan CGO untuk binari yang lebih kecil dan statik:
CGO_ENABLED=0 go build -ldflags="-s -w" -o myappMenyematkan maklumat versi
Suntik maklumat masa binaan dengan ldflags:
var version = "dev"
var commit = "none"
// Build: go build -ldflags="-X main.version=1.2.3 -X main.commit=abc1234"GoReleaser
GoReleaser mengautomasikan kompilasi silang, pembungkusan (tar.gz, .zip), penjanaan jumlah semak dan pemuatan naik keluaran ke GitHub. Konfigurasikannya dalam .goreleaser.yaml.
# .goreleaser.yaml
builds:
- env: [CGO_ENABLED=0]
goos: [linux, darwin, windows]
goarch: [amd64, arm64]Tap Homebrew
Terbitkan formula Homebrew supaya pengguna macOS/Linux boleh memasang dengan brew install. GoReleaser boleh menjana formula itu secara automatik.
CI/CD GitHub Actions
Gunakan GitHub Action untuk membina dan menerbitkan keluaran pada setiap tolakan tag. GoReleaser mempunyai GitHub Action rasmi.
- name: Run GoReleaser
uses: goreleaser/goreleaser-action@v5
with: { version: latest, args: release --clean }
env: { GITHUB_TOKEN: "${{ secrets.GITHUB_TOKEN }}" }Pengedaran Docker
Letakkan CLI sebagai imej Docker untuk pengguna yang lebih menggemari bekas. Gunakan binaan berbilang peringkat untuk memastikan imej akhir minimum.
FROM golang:1.22 AS build
WORKDIR /app
COPY . .
RUN CGO_ENABLED=0 go build -o myapp
FROM scratch
COPY --from=build /app/myapp /myapp
ENTRYPOINT ["/myapp"]go:embed untuk aset
Benamkan fail statik (templat, skema konfigurasi) ke dalam binari dengan //go:embed supaya binari itu sepenuhnya kendiri.
//go:embed templates/*
var templates embed.FSModul berversi
Terbitkan modul CLI anda mengikut pensiaran versi modul Go. Untuk v2+, laluan import mesti mengandungi /v2 dan laluan modul go.mod mesti sepadan.
Keserasian ke belakang
Ikuti semver. Keluaran kecil boleh menambah bendera tetapi tidak boleh membuang atau menamakan semula bendera sedia ada. Perubahan yang memecahkan keserasian memerlukan kenaikan versi utama.
Semakan Pantas
Bagaimanakah anda membina binari Go statik untuk Linux pada mesin macOS?
Imbas Kembali: Pengedaran Alat CLI
Perkara utama:
- Kompilasi silang dengan GOOS/GOARCH; CGO_ENABLED=0 untuk binari statik
- GoReleaser untuk saluran paip keluaran automatik
- Suntik versi dengan -ldflags "-X main.version=..."
- go:embed untuk binari kendiri dengan aset terbenam
Pelajari Go dengan tutor kecerdasan buatan — percuma
Tulis dan jalankan kod sebenar dalam pelayar anda, dapatkan bantuan segera daripada tutor kecerdasan buatan yang tersedia 24/7, dan sambung semula dari tempat anda berhenti di web atau dalam aplikasi.
- Kursus
- 51
- Pelajaran
- 203
Soalan Lazim
Adakah pelajaran “Mengedar Alat CLI” percuma?
Ya — sebanyak 3 pelajaran dalam laluan pembelajaran Go Academy, termasuk “Mengedar Alat CLI”, boleh dibaca sepenuhnya secara percuma di web ini. Selepas itu, CoddyKit PRO membuka akses kepada semua pelajaran, serta latihan interaktif dengan penyunting kod terbina dalam dan tutor kecerdasan buatan yang tersedia 24/7. Kursus Go Academy merangkumi sejumlah 4 pelajaran.
Apakah yang akan saya pelajari dalam “Mengedar Alat CLI”?
Penyusunan silang, goreleaser dan tap homebrew Anda berlatih Go Academy menggunakan kod praktikal yang dijalankan terus dalam pelayar, manakala tutor kecerdasan buatan 24/7 menjawab soalan anda semasa anda mengikuti pelajaran.
Adakah saya memerlukan pengalaman untuk memulakan Go Academy?
Tiada pengalaman terdahulu diperlukan. Pembelajaran Go Academy di CoddyKit disusun untuk pelajar daripada peringkat pemula hingga lanjutan, jadi anda boleh bermula di sini atau dari awal dan belajar mengikut kadar anda sendiri. Ini ialah pelajaran 4 daripada 4.
Berapa lamakah pelajaran “Mengedar Alat CLI” diambil?
Kebanyakan pelajaran CoddyKit mengambil masa kira-kira 5–10 minit. Setiap pelajaran ringkas dan interaktif, jadi anda boleh membuat kemajuan secara berterusan dan menyambung tepat dari tempat anda berhenti di web atau aplikasi.
Bolehkah saya menulis dan menjalankan kod dalam pelajaran Go Academy ini?
Ya. Setiap pelajaran Go Academy menyertakan penyunting kod terbina dalam, jadi anda boleh menulis dan menjalankan kod sebenar terus dalam pelayar serta menerima maklum balas kecerdasan buatan serta-merta — tanpa memerlukan persediaan setempat.
Semua pelajaran dalam kursus ini
- Asas Cobra
- Bendera dan Bendera Kekal
- Subperintah dan Kumpulan Perintah
- Mengedar Alat CLI