เหตุใดฉันจึงได้รับ“ เส้นทางนักพัฒนาซอฟต์แวร์ที่ไม่ถูกต้อง” เมื่อพยายามใช้ Git หลังจากอัปเกรดเป็น macOS Catalina


1509

หลังจากอัปเกรดเป็น macOS Catalina ฉันพยายามเรียกใช้gitจาก Terminal แต่มันทำให้ฉันมีข้อผิดพลาดต่อไปนี้:

xcrun: error: invalid active developer path (/Library/Developer/CommandLineTools), missing xcrun at: /Library/Developer/CommandLineTools/usr/bin/xcrun.

ฉันจะแก้ไขได้อย่างไร


34
ปัญหาเดียวกันที่เกิดขึ้นบน OSX Mojave เช่นกัน ฉันคิดว่าปัญหาเดียวกันแน่นอนในการอัพเกรดทุกรุ่น xcode-select --installทำงานบนโมฮาวี ไม่มีขั้นตอนพิเศษที่จำเป็น
Mrinal Saurabh

@MrinalSaurabh ดูเหมือนว่าจะเป็นอย่างนั้น
Housemd

12
ฉันรันคำสั่งxcode-select --installและฉันยอมรับข้อตกลงสิทธิ์การใช้งาน แต่จากนั้นระบบจะป็อปอัพข้อความโต้ตอบว่า "ไม่สามารถติดตั้งซอฟต์แวร์ได้เนื่องจากไม่สามารถใช้งานได้ในขณะนี้จากเซิร์ฟเวอร์ Software Update" ดังนั้นคอมไพล์ของฉันยังใช้งานไม่ได้ (ปัญหาเริ่มต้นหลังจากอัปเกรดเป็น Mojave และ XCode 10.1)
nbloqs

6
@nbloqs ฉันได้รับข้อความเดียวกันและแก้ไขโดยการดาวน์โหลดเครื่องมือ Command Line ด้วยตนเอง ข้อมูลเพิ่มเติม: ics.uci.edu/~pattis/common/handouts/macmingweclipse/ ......
K.Rijpstra

1
เกิดขึ้นอีกครั้งกับ Catalina ทำไมการอัพเกรดระบบจึงลบเครื่องมือ dev ออก
absmiths

คำตอบ:


2157

เปิด Terminal และเรียกใช้สิ่งต่อไปนี้:

xcode-select --install

สิ่งนี้จะดาวน์โหลดและติดตั้งเครื่องมือสำหรับนักพัฒนา xcode และแก้ไขปัญหา

คุณไม่จำเป็นต้องใช้ Xcode คุณสามารถติดตั้งเฉพาะเครื่องมือบรรทัดคำสั่งที่นี่มันเป็นเรื่องเกี่ยวกับ 130Mb

ปัญหาคือต้องมีการยอมรับข้อตกลงใบอนุญาตอย่างชัดเจน ตามขั้นตอนคุณอาจต้องรีเซ็ตพา ธ เป็น Xcode หากคุณมีหลายรุ่นหรือต้องการให้เครื่องมือบรรทัดคำสั่งทำงานโดยไม่ต้อง Xcode

xcode-select --switch /Applications/Xcode.app
xcode-select --switch /Library/Developer/CommandLineTools

ผมพบว่าวิธีการแก้ปัญหาในคำถามนี้, เครื่องมือบรรทัดคำสั่งไม่ทำงาน

คุณอาจได้รับข้อความแสดงข้อผิดพลาด: "ไม่สามารถติดตั้งซอฟต์แวร์ได้เนื่องจากไม่สามารถใช้งานได้จากเซิร์ฟเวอร์การอัพเดทซอฟต์แวร์" ในกรณีนี้xcode-select --resetทำงานเป็นแหลมโดยakozin


202
ทางออกนี้ไม่ช่วยฉัน ฉันพยายามxcode-select --resetและมันช่วย!
akozin

44
ช่วยฉันหลังจากอัปเกรดเป็น macOS High Sierra แล้วลองวิ่งgit status
Felix Geenen

14
พิจารณาด้วยbrew updateหากคุณติดตั้งไว้
Mausy5043

13
เพิ่งแก้ไขปัญหาเดียวกันเมื่อฉันอัพเกรดจากเซียร่าเป็นไฮเซียร์ ฉันลองครั้งแรก--resetแต่นั่นก็ไม่ได้สร้างความแตกต่าง --installแก้ไขมัน!
iaforek

41
ยังคงใช้กับ macOS Mojave! ฉันคิดว่าทุกปีฉันกลับมาที่โพสต์นี้
Eric Majerus

72

หากคุณไม่ต้องการติดตั้งหรือใช้ Xcode (ฉันไม่ได้) คุณสามารถติดตั้งเครื่องมือคำสั่งเฉพาะสำหรับ Xcode (โปรดดูแก้ไข)

เงื่อนไข:

  • คุณมี AppleID

วิธีการแก้

ไปที่https://developer.apple.com/download/more/และหาเครื่องมือบรรทัดคำสั่ง OS X 10.11) สำหรับ Xcode 7.1 จากนั้นติดตั้งแพคเกจ. dmg ที่ดาวน์โหลดมา

เวอร์ชันที่ใหม่กว่า

ควรทำงานกับเครื่องมือบรรทัดคำสั่งรุ่นใหม่OS Xแต่ฉันได้ทดสอบเครื่องมือบรรทัดคำสั่ง OS X 10.11) สำหรับรุ่นเฉพาะXcode 7.1

อัปเดตเป็น macOS 10.13

หลังจากอัพเดต do macOS 10.13 ฉันต้องติดตั้งCommand Line Tools (macOS 10.13) for Xcode 9- ใช้งานได้ดี


แก้ไข

ตามที่ @sololopolus พูดถึงในความคิดเห็น

xcode-select --install

ติดตั้งเครื่องมือบรรทัดคำสั่งเฉพาะสำหรับ Xcode ด้วย

นอกจากนี้คุณยังสามารถตรวจสอบได้ที่: http://osxdaily.com/2014/02/12/install-command-line-tools-mac-os-x/

cliฉันกำลังออกจากคำตอบของฉันในกรณีที่คุณต้องการมีปัญหาเกี่ยวกับการติดตั้งผ่านทาง


PS ให้เครดิตกับคำตอบ SO นี้: https://stackoverflow.com/a/33593066/2029818


2
คุณจะต้องลงชื่อเข้าใช้ด้วย Apple ID ของคุณเพื่อดาวน์โหลดให้เสร็จสมบูรณ์
james.garriss

ใช่. แต่สำหรับฉันนั่นไม่ใช่ปัญหา ปัญหาคือฉันไม่ต้องการติดตั้ง Xcode แบบเต็ม ฉันจะอัปเดตคำตอบด้วยข้อมูลนี้
michalczukm

2
@michalczukm ฉันใช้ macOS 10.12.5 และติดตั้งรุ่นล่าสุด (ฉันคิดว่ามันเป็น CLT สำหรับ macOS 10.12 สำหรับ Xcode 8.3) และทำงานได้ดี แก้ไขปัญหาแล้วขอบคุณ
Mark Simpson

2
การทำงานxcode-select --installเช่นเดียวกับสถานะคำตอบอื่น ๆ ไม่ได้ติดตั้ง Xcode เพียงแค่เครื่องมือบรรทัดคำสั่ง
setholopolus

4
สำหรับ macOS Mojave xcode-select --installไม่ได้ผลสำหรับฉัน แต่ตั้งแต่วันที่ 30 กรกฎาคม 2018 คุณจะได้รับเครื่องมือบรรทัดคำสั่งรุ่นใหม่ล่าสุดสำหรับ macOS 10.4 (โมฮาวี) เมื่อคุณลงชื่อเข้าใช้บัญชี Apple Developer
Agile Bean

42

สำหรับmacOS High Sierraเพียงรันคำสั่งเดียวกัน:

xcode-select --install

และทุกอย่างจะกลับไปทำงาน


2
แม้ว่าฉันจะไม่มี Xcode?
Vitaly Zdanevich

5
@VitalyZdanevich ที่ติดตั้ง xcode;)
minigeek

7
@VitalyZdanevich มันไม่ได้ติดตั้ง Xcode osxdaily.com/2014/02/12/install-command-line-tools-mac-os-x มันติดตั้งเครื่องมือบรรทัดคำสั่งโดยไม่ต้อง xcode
setholopolus

2
-1 คำตอบจากปี 2560 นี้เพียงแค่นำสิ่งที่อธิบายไว้ในคำตอบที่ตอบกลับมาใหม่ของโปสเตอร์ต้นฉบับ
JakeGould

26

นี่คือขั้นตอนที่ฉันต้องผ่านสำหรับโมฮาวี:

ก่อนxcode-select --resetอื่น

ต่อไปฉันต้องอัปเกรดเครื่องมือ xcode เป็นเวอร์ชันล่าสุด: sudo softwareupdate -ia --verbose(NB: การดำเนินการอัปเดตที่มีอยู่ทั้งหมดจาก app store มีวิธีระบุว่าคุณต้องการอัปเดตแอป / โปรแกรมเดียวเพียงอย่างเดียว แต่ฉันไม่รู้ หัวของฉัน)

คุณสามารถลองคำสั่งนี้อีกครั้งหากมันแสดงพฤติกรรมที่ไม่สอดคล้องกันในระหว่างการลองครั้งแรก

git statusสุดท้ายตรวจสอบว่ามันทำงานได้โดยใช้คำสั่งคอมไพล์ที่คุณเลือกเช่น


1
ใช่สิ่งนี้จะช่วยแก้ปัญหาจาก High Sierra ไปยัง Mojave หลังจากนั้นให้รันsudo xcodebuild -license
user9869932

สิ่งที่มีลิขสิทธิ์คือกุญแจสำคัญ
Hamlett

19

ฉันพยายามxcode-select --installแต่ฉันถูกบังคับให้ติดตั้งได้จากApp Store

จากนั้นทุกสิ่งคอมไพล์ก็วิ่งได้อย่างราบรื่น


13

คำตอบที่ยอมรับนั้นถูกต้อง แต่โปรดทราบด้วยว่าคอมไพล์ไม่ได้ทำให้ชัดเจนหากข้อผิดพลาดนั้นมาจากระยะไกลหรือจากภายใน หากคุณกำลังใช้ OS X บนระยะไกลของคุณของคุณติดตั้งปัญหาอาจจะอยู่ในด้านระยะไกลและคุณจะเห็นข้อผิดพลาดเดียวกันบนgit cloneและแต่ไม่ได้อยู่ในgit pullgit status


พระเจ้าผู้เป็นที่รักฉันโง่เพียงไรในขณะนี้ ...
Olof_t

11

xcode-select --installและxcode-select --resetไม่ทำงานสำหรับฉัน

ฉันต้องดาวน์โหลดด้วยตนเองจากเว็บไซต์ Apple Developers: https://developer.apple.com/download/

เลือกบรรทัดคำสั่งของระบบปฏิบัติการปัจจุบันของคุณ

สกรีนช็อตสำหรับลิงค์


ต้องทำเช่นนี้สำหรับ Xcode 11b2 ซึ่งถูกกล่าวหาว่าติดตั้งเครื่องมือบรรทัดคำสั่งและยังพบข้อผิดพลาดนี้ การติดตั้งเครื่องมือบรรทัดคำสั่งใหม่ทำงาน
green_knight
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.