Halaman ini menjelaskan cara menambahkan, melihat, dan menghapus gem Ruby dan versi gem.
Sebelum memulai
Instal dan lakukan inisialisasi Google Cloud CLI.
Google Cloud CLI versi 354.0.0 atau yang lebih baru diperlukan untuk menjalankan perintah bagi repositori Ruby. Anda dapat memeriksa versi dengan perintah:
gcloud versionJika repositori target tidak ada, buat repositori paket Ruby.
Pastikan Ruby telah diinstal. Untuk petunjuk penginstalan, lihat Google Cloud tutorial untuk menyiapkan Ruby.
(Opsional) Tetapkan default untuk perintah gcloud.
Peran yang diperlukan
Untuk mendapatkan izin yang Anda perlukan untuk mengelola gem, minta administrator untuk memberi Anda peran IAM berikut di repositori:
-
Melihat gem atau file dalam gem:
Pembaca Artifact Registry (
roles/artifactregistry.reader) -
Mendownload atau menginstal gem:
Pembaca Artifact Registry (
roles/artifactregistry.reader) -
Menambahkan gem ke repositori:
Penulis Artifact Registry (
roles/artifactregistry.writer) -
Menghapus gem:
Administrator Repositori Artifact Registry (
roles/artifactregistry.repoAdmin)
Untuk mengetahui informasi selengkapnya tentang pemberian peran, lihat Mengelola akses ke project, folder, dan organisasi.
Anda mungkin juga bisa mendapatkan izin yang diperlukan melalui peran khusus atau peran bawaan lainnya.
Menambahkan gem
Paket di Ruby disebut gem, dengan setiap gem berisi nama, versi dan platform. Project Ruby juga harus berisi gemfile, yang merupakan file konfigurasi yang menentukan dependensi gem yang diperlukan.
Mode repositori: standar
Saat Anda membangun project Ruby, file distribusi akan disimpan di subdirektori lib
dalam project Anda. Kemudian, Anda dapat menggunakan RubyGems untuk mengupload gem ke repositori standar.
Untuk menambahkan gem ke repositori Artifact Registry:
gem push GEM_NAME --host https://LOCATION-ruby.pkg.dev/PROJECT/REPOSITORY
Dengan:
- GEM_NAME adalah nama gem yang akan di-push ke repositori Anda.
- LOCATION adalah lokasi repositori Anda.
- PROJECT adalah project ID. Jika flag ini tidak ada, maka project default saat ini atau akan digunakan.
- REPOSITORY adalah nama repositori Anda di Artifact Registry.
Melihat gem dan versi
Mode repositori: standar
Untuk melihat paket dan versi paket menggunakan Google Cloud konsol
atau gcloud:
Konsol
Buka halaman Repositories di Google Cloud console.
Di daftar repositori, klik repositori yang sesuai.
Halaman Packages mencantumkan paket di repositori.
Klik paket untuk melihat versi paket.
gcloud
Untuk menampilkan daftar paket dalam repositori, jalankan perintah berikut:
gcloud artifacts packages list [--repository=REPOSITORY] [--location=LOCATION]
Ganti kode berikut:
REPOSITORYadalah nama repositori. Jika Anda mengonfigurasi repositori default, Anda dapat menghapus tanda ini untuk menggunakan default.-
LOCATIONadalah lokasi repositori regional atau multi-regional. Jika Anda mengonfigurasi lokasi default, Anda dapat menghilangkan tanda ini untuk menggunakan default.
Untuk melihat versi paket, jalankan perintah berikut:
gcloud artifacts versions list --package=PACKAGE \
[--repository=REPOSITORY] [--location=LOCATION]
Ganti kode berikut:
PACKAGEadalah ID paket atau ID yang sepenuhnya memenuhi syarat untuk paket.REPOSITORYadalah nama repositori. Jika Anda mengonfigurasi repositori default, Anda dapat menghapus tanda ini untuk menggunakan default.-
LOCATIONadalah lokasi repositori regional atau multi-regional. Gunakan flag ini untuk melihat repositori di lokasi tertentu. Jika Anda mengonfigurasi lokasi default, Anda dapat menghilangkan tanda ini untuk menggunakan default.
Untuk repositori jarak jauh, daftar yang ditampilkan harus menyertakan semua dependensi langsung dan transitif.
Mencantumkan file
Mode repositori: standar
Anda dapat mencantumkan file dalam repositori, file dalam semua versi paket tertentu, atau file dalam versi tertentu dari paket.
Untuk semua perintah berikut, Anda dapat menetapkan jumlah maksimum file yang akan ditampilkan
dengan menambahkan tanda --limit ke perintah.
Untuk mencantumkan semua file dalam project, repositori, dan lokasi default saat nilai default dikonfigurasi:
gcloud artifacts files list
Untuk mencantumkan file dalam project, repositori, dan lokasi tertentu, jalankan perintah:
gcloud artifacts files list \
--project=PROJECT \
--repository=REPOSITORY \
--location=LOCATION
Untuk mencantumkan file untuk semua versi paket tertentu:
gcloud artifacts files list \
--project=PROJECT \
--repository=REPOSITORY \
--location=LOCATION \
--package=PACKAGE
Untuk mencantumkan file untuk versi paket tertentu:
gcloud artifacts files list \
--project=PROJECT \
--repository=REPOSITORY \
--location=LOCATION \
--package=PACKAGE \
--version=VERSION
Ganti nilai berikut:
LOCATION: lokasi regional atau multi-regional repositori.PROJECT: Google Cloud Project ID Anda. Jika project ID Anda berisi titik dua (:), lihat Project cakupan domain.REPOSITORY: nama repositori tempat penyimpanan image.PACKAGE: nama paket.VERSION: versi paket.
Contoh
Pertimbangkan informasi paket berikut:
- Project:
my-project - Repository:
my-repo - Lokasi repositori:
us-west1 - Paket:
my-app
Perintah berikut mencantumkan semua file di repositori my-repo di
lokasi us-west1 dalam project default:
gcloud artifacts files list \
--location=us-west1 \
--repository=my-repo
1.0.
gcloud artifacts files list \
--project=my-project \
--location=us-west1 \
--repository=my-repo \
--package=my-app \
--version=1.0
Menginstal gem
Mode repositori: standar
Untuk menginstal rilis stabil terbaru paket:
gem install GEM_NAME
Untuk repositori standar, Anda mendownload paket langsung dari repositori.
Untuk repositori jarak jauh, Anda mendownload salinan paket yang di-cache dan dependensinya. Jika salinan yang di-cache tidak ada, repositori jarak jauh akan mendownload paket dari sumber upstream dan meng-cache-nya sebelum menayangkannya kepada Anda. Anda dapat memverifikasi bahwa repositori jarak jauh mengambil paket dari sumber upstream dengan melihat daftar paket di repositori.
Untuk repositori virtual, Artifact Registry menelusuri repositori upstream untuk paket yang diminta.
- Repositori jarak jauh upstream akan mendownload dan meng-cache paket yang diminta jika salinan yang di-cache tidak ada. Repositori virtual hanya menayangkan paket yang diminta, tidak menyimpannya.
- Jika Anda meminta versi yang tersedia di lebih dari satu repositori upstream, Artifact Registry akan memilih repositori upstream yang akan digunakan berdasarkan setelan prioritas yang dikonfigurasi untuk repositori virtual.
Misalnya, pertimbangkan repositori virtual dengan setelan prioritas berikut untuk repositori upstream:
main-repo: Prioritas ditetapkan ke100secondary-repo1: Prioritas ditetapkan ke80.secondary-repo2: Prioritas ditetapkan ke80.test-repo: Prioritas ditetapkan ke20.
main-repo memiliki nilai prioritas tertinggi, sehingga repositori virtual
selalu menelusurinya terlebih dahulu.
secondary-repo1 dan secondary-repo2 memiliki prioritas yang ditetapkan ke 80. Jika
paket yang diminta tidak tersedia di main-repo, Artifact Registry
akan menelusuri repositori ini berikutnya. Karena keduanya memiliki nilai prioritas yang sama,
Artifact Registry dapat memilih untuk menayangkan paket dari salah satu repositori
jika versi tersedia di keduanya.
test-repo memiliki nilai prioritas terendah dan akan menayangkan artefak yang disimpan jika
tidak ada repositori upstream lain yang memilikinya.
Informasi tambahan
Saat Anda mengirim atau menarik gem dari repositori Artifact Registry, jika gem yang diminta atau dependensinya tidak ditemukan di repositori yang Anda tentukan, klien gem Anda akan menggunakan sumber lain yang ditentukan dalam gemfile untuk gem Anda.
Jika Anda hanya ingin mengambil dan
menginstal langsung dari Artifact Registry, jalankan perintah berikut
untuk menghapus sumber non-Artifact Registry dari gemfile Anda:
gem sources --remove SOURCE
Untuk menambahkan kembali rubygems.org sebagai sumber:
gem sources --add SOURCE
Dengan SOURCE adalah alamat sumber, seperti
https://rubygems.org.
Menghapus paket dan versi
Mode repositori: standar
Anda dapat menghapus paket dan semua versinya, atau menghapus versi tertentu.
- Setelah menghapus paket, Anda tidak dapat mengurungkan tindakan tersebut.
- Untuk repositori jarak jauh, hanya salinan paket yang di-cache yang dihapus. Sumber upstream tidak terpengaruh. Jika Anda menghapus paket yang di-cache, Artifact Registry akan mendownload dan men-cache-nya lagi saat repositori menerima permintaan untuk versi paket yang sama pada waktu berikutnya.
Sebelum menghapus paket atau versi paket, pastikan Anda telah menyampaikan atau mengatasi dependensi penting apa pun di dalamnya.
Untuk menghapus paket:
Konsol
Buka halaman Repositories di Google Cloud console.
Di daftar repositori, klik repositori yang sesuai.
Halaman Packages mencantumkan paket di repositori.
Pilih paket yang ingin dihapus.
Klik HAPUS.
Di kotak dialog konfirmasi, klik DELETE.
gcloud
Jalankan perintah berikut:
gcloud artifacts packages delete PACKAGE \
[--repository=REPOSITORY] [--location=LOCATION] [--async]
Ganti kode berikut:
PACKAGEadalah nama paket di repositori.REPOSITORYadalah nama repositori. Jika mengonfigurasi repositori default, Anda dapat menghapus tanda ini untuk menggunakan default.-
LOCATIONadalah lokasi repositori regional atau multi-regional. Gunakan flag ini untuk melihat repositori di lokasi tertentu. Jika Anda mengonfigurasi lokasi default, Anda dapat menghilangkan tanda ini untuk menggunakan default.
Flag --async menyebabkan perintah segera ditampilkan,
tanpa menunggu operasi yang sedang berlangsung selesai.
Untuk menghapus versi paket:
Konsol
Buka halaman Repositories di Google Cloud console.
Di daftar repositori, klik repositori yang sesuai.
Halaman Packages mencantumkan paket di repositori.
Klik paket untuk melihat versi paket tersebut.
Pilih versi yang ingin dihapus.
Klik HAPUS.
Di kotak dialog konfirmasi, klik DELETE.
gcloud
Jalankan perintah berikut:
gcloud artifacts versions delete VERSION \
--package=PACKAGE \
[--repository=REPOSITORY] [--location=LOCATION] \
[--async]
Ganti kode berikut:
VERSIONadalah nama versi yang akan dihapus.PACKAGEadalah nama paket di repositori.REPOSITORYadalah nama repositori. Jika mengonfigurasi repositori default, Anda dapat menghapus tanda ini untuk menggunakan default.-
LOCATIONadalah lokasi repositori regional atau multi-regional. Gunakan flag ini untuk melihat repositori di lokasi tertentu. Jika Anda mengonfigurasi lokasi default, Anda dapat menghilangkan tanda ini untuk menggunakan default.
Flag --async menyebabkan perintah segera ditampilkan,
tanpa menunggu operasi yang sedang berlangsung selesai.
Batasan
Artifact Registry tidak mendukung penambahan repositori sebagai sumber menggunakan perintah
gem sources -add. Namun, Anda dapat menambahkan sumber secara manual ke file.gemrc, atau meneruskan tanda--sourcelangsung di perintahgemAnda.Artifact Registry tidak mendukung penarikan gem menggunakan
gem fetch.