Saya ingin membuat skrip instalasi Alat Baris Perintah Xcode.
Di Mavericks,
xcode-select --install
akan membuka dialog yang meminta pengguna untuk menginstal, tetapi saya ingin memicu instalasi tanpa dialog, seperti menggunakan softwareupdate
perintah.
Apakah ada cara untuk melakukan ini?
Edit:
Secara khusus, xcode-select --install
meluncurkan aplikasi yang mengunduh dan menginstal alat tanpa mengharuskan pengguna untuk mengunduhnya secara manual atau memiliki akun Pengembang Apple. Tampaknya digunakan /System/Library/CoreServices/Install Command Line Developer Tools.app
untuk melakukan ini.
Saya ingin menggunakan mekanisme yang sama dengan Apple, tetapi tanpa GUI. Saya tidak ingin harus mengunduh secara manual .dmg yang berisi alat-alat karena ini tampaknya rapuh. Apple menyediakan beberapa alat baris perintah lainnya, seperti softwareupdate
dan install
yang mengunduh atau menginstal perangkat lunak langsung dari Apple, dan saya mencari yang sama untuk jenis distribusi ini.
Jawaban:
Seandainya saya bisa mengklaim kredit untuk yang ini, tetapi saya menemukannya terkubur di https://github.com/chcokr/osx-init/blob/master/install.sh
Ini bekerja pada VM 10.10 tanpa kepala saya tanpa login di UI. Pembaruan diterapkan untuk kompatibilitas dengan setidaknya 10.9-10.14
Ini menganggap Anda hanya memiliki 1 hasil untuk
softwareupdate -l | grep "\*.*Command Line"
- jika ini mengembalikan beberapa versi, Anda mungkin perlu logika yang lebih spesifik. (Saya tidak punya kasus repro)satu variasi yang tampaknya berfungsi (pengujian terbatas) pada 10.10-10.14 (10.9 tidak mengembalikan nomor versi osx dalam nama cli tools..jadi ini tidak berfungsi di sana):
beberapa contoh hasil:
sumber
rm /tmp/.com.apple.dt.CommandLineTools.installondemand.in-progress
setelah menjalankansoftwareupdate -i ...
, jika tidak panggilan berikutnyasoftwareupdate -l
ditampilkanCommand Line Tools ...
sebagai pembaruan yang tersedia. Pembaruan (yang seharusnya) ini tampaknya tidak ditampilkan di App Store, mungkin karenasoftwareupdate -l
hanya mencantumkan pembaruan "sistem", bukan pembaruan aplikasi.Unduh paket Alat Baris Perintah dari situs Pengembang Apple .
Pasang 1 DMG yang diunduh :
Jalankan penginstal melalui baris perintah:
Setelah selesai, unmount DMG dan hapus unduhan.
Keluarkan DMG 2 .
Hapus DMG.
1 Pada saat penulisan, DMG yang diunduh dan nama paketnya akurat, namun di masa depan, nama tersebut dapat berubah. Ingatlah untuk mengubah perintah (atau gunakan tab-completion) untuk mengisi bagian perintah yang relevan.
2 Jika perintah tidak berhasil, periksa disk yang cocok dengan nama mount (sesuai per
mount
).sumber
Alternatifnya adalah menggunakan applescript ini yang saya tulis:
https://gist.github.com/brysgo/9007731
sumber
Upaya untuk membersihkan gaya dan logika jawaban yang diterima, menjadikannya sebebas-independen versi mungkin, menggunakan
softwareupdate
dengan kapasitas penuh dan memperkenalkanos
variabel yang dapat digunakan kembali :sumber
Inilah yang saya gunakan, sebagian berdasarkan jawaban brysgo.
pembaruan: Apple terus menambahkan kolom baru ke database akses, Anda hanya perlu menentukan nilai untuk 5 pertama, memperbarui kode untuk mencerminkan ini.
sumber
Beberapa alternatif lagi dapat ditemukan pada jawaban ini:
Unduh Alat Baris Perintah XCode
Anda dapat mengunduh paket XCode 4.x CLTools dari situs unduhan resmi mereka melalui tautan langsung.
Berikut ini adalah skrip yang akan mengotomatiskan proses instalasi untuk Anda 1 .
Untuk menemukan tautan yang diperbarui untuk alat, Anda dapat menggunakan perintah ini:
[1] Tolong jangan menyalahgunakan / membebani server mereka
Anda mungkin menemukan bahwa lebih mudah untuk Login terlebih dahulu ke Situs Unduhan Pengembang Apple dan mengunduh Alat Baris Perintah terbaru yang tersedia di sana. Anda kemudian dapat meng-host
.dmg
pada server repo paket Anda sendiri dan dapat menginstalnya dengan andal.dmg
di banyak mesinhdiutil
tanpa harus masuk ke developer.apple.com.Pada 06/10/2015, tautan ke Alat Baris Perintah terbaru
dmg
adalah:http://adcdownload.apple.com/Developer_Tools/Command_Line_Tools_OS_X_10.10_for_Xcode_6.3.2/commandlinetoolsosx10.10forxcode6.3.2.dmg
sumber
dmg
, dan menyalin bagian-bagian penting dari jawaban secara lokal untuk jawaban ini.Saya menemukan bahwa jika Anda menginstal Home Brew, itu akan secara otomatis menginstal alat baris perintah.
Saya menguji ini menggunakan gambar gelandangan ini .
Jalankan perintah berikut untuk menginstal Homebrew , dan dengan demikian instal Alat Baris Perintah.
sumber