Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การแก้ไขปัญหา >> การบำรุงรักษาคอมพิวเตอร์

แก้ไขข้อผิดพลาด 'xcrun: error: invalid active developer path' บน macOS – คู่มือขั้นตอนละเอียด

Git ขึ้นอยู่กับการพึ่งพา (dependencies) จำนวนมากภายใน Xcode command line tools ของ Apple เพื่อทำงานอย่างถูกต้อง หากคุณไม่ได้ติดตั้ง Xcode Tools คุณจะได้ข้อผิดพลาด xcrun: error: invalid active developer path (/Library/Developer/CommandLineTools) ทุกครั้งที่คุณพยายามรันคำสั่ง Git

คู่มือนี้อธิบายว่าข้อผิดพลาดนี้คืออะไร และทำไมคุณจึงอาจเห็นมัน เราจะนำคุณผ่านสถานการณ์ตัวอย่าง เพื่อให้คุณเข้าใจวิธีแก้ไขปัญหานี้

Git คืออะไร?

Git เป็นระบบควบคุมเวอร์ชัน (version control system) ที่นิยมที่สุด Git ติดตามการเปลี่ยนแปลงที่คุณทำกับไฟล์ ดังนั้นคุณจึงมีบันทึกว่าทำอะไรไปแล้ว และสามารถย้อนกลับไปยังเวอร์ชันเฉพาะได้หากจำเป็น Git ยังอำนวยความสะดวกในการทำงานร่วมกัน โดยอนุญาตให้การเปลี่ยนแปลงของหลายคนถูกรวม (merge) เข้าด้วยกันเป็นแหล่งที่มาเดียว

ดังนั้น ไม่ว่าคุณจะเขียนโค้ดที่คุณคนเดียวเห็น หรือทำงานในทีม Git ก็มีประโยชน์ต่อคุณ

Git เป็นซอฟต์แวร์ที่รันบนคอมพิวเตอร์ของคุณ ไฟล์ของคุณ รวมถึงประวัติของพวกมัน ถูกจัดเก็บบนคอมพิวเตอร์ของคุณ คุณยังสามารถจัดเก็บสำเนาของไฟล์และประวัติการแก้ไขบนโฮสต์ออนไลน์ (เช่น GitHub หรือ Bitbucket) ได้ การมีสถานที่ศูนย์กลางที่คุณสามารถอัปโหลดการเปลี่ยนแปลงและดาวน์โหลดการเปลี่ยนแปลงจากผู้อื่น ช่วยให้คุณทำงานร่วมกับนักพัฒนาคนอื่นได้ง่ายขึ้น Git สามารถรวมการเปลี่ยนแปลงได้โดยอัตโนมัติ อนุญาตให้สองคนทำงานบนส่วนต่างๆ ของไฟล์เดียวกัน และจากนั้นรวมการเปลี่ยนแปลงเหล่านั้นโดยไม่สูญเสียงานของกันและกัน!

Git เป็นซอฟต์แวร์ที่เข้าถึงได้ผ่านบรรทัดคำสั่ง (terminal) หรือแอปเดสก์ท็อปที่มี graphical user interface (GUI) เช่น Sourcetree

Xcode Tools คืออะไร?

Xcode เป็นสภาพแวดล้อมการพัฒนาและดีบัก (debugging) ของ Mac และมันให้ไฟล์การพัฒนาที่จำเป็นสำหรับแอปพลิเคชัน Mac OS X และ iOS

ก่อนที่นักพัฒนาจะสามารถพัฒนาซอฟต์แวร์บน Mac พวกเขาต้องติดตั้ง Xcode Command Line Tools ก่อน

Apple เสนอสภาพแวดล้อมการพัฒนาเต็มรูปแบบสำหรับโปรแกรมเมอร์ชื่อ Xcode คุณต้องติดตั้งแอปพลิเคชัน Xcode เต็มรูปแบบ หากคุณกำลังพัฒนาซอฟต์แวร์สำหรับ macOS, iOS, tvOS หรือ watchOS

มันไม่ได้ติดตั้งมาก่อน แต่คุณสามารถดาวน์โหลดได้จากเว็บไซต์นักพัฒนา Apple หรือ Mac App Store

คุณจะไม่ต้องการแอปพลิเคชัน Xcode เต็มรูปแบบ หากคุณไม่ได้พัฒนาซอฟต์แวร์สำหรับอุปกรณ์ Apple (มันใช้พื้นที่ดิสก์มากกว่า 40 GB!)

แทนนั้น คุณจะดาวน์โหลดและติดตั้ง Xcode Command Line Tools มันเป็นแพ็กเกจขนาดเล็กสำหรับนักพัฒนาซอฟต์แวร์ ที่รวมเครื่องมือบรรทัดคำสั่งที่รันในแอปพลิเคชัน Terminal

เครื่องมือเหล่านี้ถูกใช้โดยโปรแกรมเมอร์บนระบบปฏิบัติการ Unix ตั้งแต่ยุคแรกของการคำนวณ และเป็นรากฐานของการพัฒนาซอฟต์แวร์เกือบทุกอย่าง

โชคดีที่แพ็กเกจ Xcode Command Line Tools ใช้พื้นที่ดิสก์เพียง 1.2 GB เท่านั้น

ในการติดตั้ง Xcode Command Line Tools บน Mac คุณมี 3 ตัวเลือก:

  • ติดตั้งแพ็กเกจ Xcode ทั้งหมด
  • ติดตั้ง Xcode Command Line Tools ผ่าน Terminal
  • ติดตั้ง Xcode Command Line Tools ผ่านการติดตั้ง Homebrew

หากคุณไม่ได้พัฒนาซอฟต์แวร์สำหรับอุปกรณ์ Apple เราไม่แนะนำให้ติดตั้งแพ็กเกจ Xcode เต็มรูปแบบ การดาวน์โหลดจะใช้เวลานานและใช้พื้นที่ดิสก์มากเกินไป แทนนั้น ลองวิธีที่เร็วกว่าสองวิธี

เนื่องจากระบบปฏิบัติการมีพื้นฐานมาจาก Unix มาตรฐานที่ยาวนานของการพัฒนาซอฟต์แวร์ macOS จึงเป็นแพลตฟอร์มยอดนิยมสำหรับการพัฒนาซอฟต์แวร์

คุณจะมีพื้นฐานที่มั่นคงสำหรับการเพิ่มเครื่องมือพัฒนา open source เกือบทุกอย่าง หากคุณติดตั้ง Xcode Command Line Tools

ข้อผิดพลาด Git xcrun: error: invalid active developer path คืออะไร?

เมื่อรันคำสั่ง git ใดๆ — เช่น git pull, git push, git clone, git status, git branch ฯลฯ — ผู้ใช้ได้รับข้อผิดพลาดบน macOS หลายเวอร์ชัน

ผู้ใช้ Mac Terminal บางรายอาจพบว่าการใช้ pip, Homebrew และเครื่องมือบรรทัดคำสั่งอื่นๆ ล้มเหลวหรือทำงานไม่ถูกต้อง พร้อมข้อความข้อผิดพลาวว่า "xcrun: error: invalid active developer path (/Library/Developer/CommandLineTools)" เครื่องมือบรรทัดคำสั่งเหล่านี้อาจหยุดทำงานหลังอัปเดตซอฟต์แวร์ระบบ macOS หากมันทำงานได้ดีก่อนหน้านี้

ข้อความข้อผิดพลาวปกติจะอ่านว่า:

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

สาเหตุของ Xcrun: error: invalid active developer path (/library/developer/commandlinetools)

ในกรณีส่วนใหญ่ ข้อผิดพลาว xcrun: error: invalid active developer path ปรากฏเมื่อพยายามรันคำสั่ง git ในแอป Terminal หลังอัปเดตหรืออัปเกรด ข้อผิดพลาดส่วนใหญ่ที่โผล่มา เกิดกับ Mac ที่เพิ่งอัปเดตเป็น Big Sur

การแจ้งเตือนข้อผิดพลาวข้างต้นอธิบายได้ด้วยตัวมันเอง มันบอกว่า active developer path ที่พบที่ /Library/Developer/CommandLineTools เป็น invalid (ไม่ถูกต้อง) หมายความว่า ข้อผิดพลาดนี้ไม่เกี่ยวข้องกับ git เอง แต่มันเกี่ยวกับ Command Line Tools แทน

สิ่งนี้เกิดขึ้นแม้ Command Line Tools จะติดตั้งบน macOS และทำงานได้ดีก่อนหน้านี้ หากข้อผิดพลาวปรากฏหลังอัปเกรด macOS การติดตั้ง "Command Line Tools" ใหม่บน Mac ของคุณควรจะแก้ไขปัญหาเกี่ยวกับ path ในการติดตั้ง "Command Line Tools"

วิธีจัดการกับ Git Xcrun: Error: Invalid Active Developer Path

สิ่งแรกที่คุณต้องทำเมื่อเจอข้อผิดพลาวนี้คือ ปิดหน้าต่าง Terminal และเปิดใหม่ หลังรีสตาร์ทแอปแล้ว ลองรันคำสั่งอีกครั้งดูว่าทำงานได้ไหม หากข้อผิดพลาวเกิดจากข้อผิดพลาดเล็กน้อย (glitch) การรีบูทแอปควรแก้ไขได้

คุณควรตรวจสอบอีกว่าแอป Terminal มีสิทธิ์เพียงพอที่จะรันคำสั่ง ให้เปิด Terminal แบบ elevated (สิทธิ์สูง) แทนที่จะเป็นคอนโซลทั่วไป เพื่อไม่ให้เจอปัญหาการเข้าถึง หากขั้นตอนเหล่านี้ไม่ช่วย ให้รีบูท Mac ก่อนลองทุกอย่างใหม่ทั้งหมด มันยังช่วยได้หากคุณเพิ่มประสิทธิภาพคอมพิวเตอร์ก่อนด้วย Outbyte macAries เพื่อกำจัดไฟล์ขยะและปัญหาเล็กน้อยอื่นๆ

หากข้อผิดพลาวคงอยู่จนขั้นตอนการแก้ไขพื้นฐานเหล่านี้ไม่ได้ผล ให้ทำตามวิธีแก้ไขด้านล่าง

เพื่อแก้ไขปัญหานี้ ให้ติดตั้ง Xcode หากคุณสนใจพัฒนาแอป iOS คุณสามารถติดตั้งเวอร์ชันเต็มและมันจะแก้ปัญหานี้ได้เช่นกัน ดาวน์โหลดไฟล์ Xcode .dmg จากเว็บไซต์นักพัฒนา Apple

หากคุณไม่ได้ใช้มันมาก คุณสามารถหาแพ็กเกจ command line tool สำหรับ Xcode และดาวน์โหลดและติดตั้งไฟล์ .dmg ที่ตรงกัน คุณสามารถดาวน์โหลดได้จากเว็บไซต์นักพัฒนา Apple

วิธีที่ 1: ติดตั้งหรือติดตั้งใหม่ Command Line Tools

หากคุณไม่ต้องการดาวน์โหลดอะไร และแค่อยากรันคำสั่งไม่กี่คำสั่งใน Terminal เพื่อแก้ปัญหานี้ นี่คือวิธีแก้สำหรับคุณ:

  1. เริ่มแอปพลิเคชัน Terminal คุณสามารถใช้แอปพลิเคชันเทอร์มินัลอื่นๆ ได้เช่นกัน สำหรับผู้ใช้ macOS: แอป Terminal อยู่ในโฟลเดอร์ Utilities ของโฟลเดอร์ Applications หรือใช้ Spotlight ค้นหา
  2. ใน Terminal พิมพ์คำสั่งต่อไปนี้และกด Enter เพื่อติดตั้ง command line tools: xcode-select –install
  3. นี่คือคำสั่งที่รันในเทอร์มินัลและจะติดตั้ง command line tools สำหรับ Xcode คุณควรได้ผลลัพธ์ดังนี้: xcode-select: note: install requested for command line developer tools
  4. คลิกปุ่ม Install
  5. ยอมรับ License Agreement โดยคลิกปุ่ม "Accept"

ปล่อยให้การติดตั้งทำงาน อย่าขัดจังหวะ มันอาจใช้เวลานาน ดังนั้นให้อดทน รีสตาร์ทแอปพลิเคชันเทอร์มินัล ตอนนี้ฉันไม่ต้องรีสตาร์ทเทอร์มินัล แต่รู้ว่าในบางกรณีมันไม่ทำงานหากไม่รีบูท

สุดท้าย คุณสามารถพิมพ์คำสั่งที่คุณใช้เมื่อได้รับข้อผิดพลาวอีกครั้ง เพื่อให้แน่ใจว่ามันรันโดยไม่มีข้อผิดพลาว (ในกรณีของฉันคือคำสั่ง git commit)

หากถูกบอกว่าการดาวน์โหลดต้องการพื้นที่มากกว่า 7 GB โปรดทราบว่าคุณจะถูกบังคับให้ดาวน์โหลดแอปพลิเคชัน Xcode โดยเฉพาะจากเว็บไซต์นักพัฒนา Apple

คำสั่งข้างต้นควรแก้ไขปัญหาได้ หากคุณไม่ได้รันคำสั่งต่อไปนี้ด้วย:

xcode-select –reset

แม้จะแก้ปัญหาของคุณได้ ขั้นตอนต่อไปอาจเป็นการตั้งค่า path สำหรับ command line tools ให้รันได้โดยไม่ต้องใช้ Xcode: xcode-select –switch /Library/Developer/CommandLineTools

หากคุณกำลังทำงานกับ Node.js และโมดูลที่ต้องการ node type คุณอาจพบคำเตือนต่อไปนี้ในเทอร์มินัลของคุณ:

xcode-select: error: tool 'xcodebuild' requires Xcode

but active developer directory '/Library/Developer/CommandLineTools' is a command line tools instance

ข้อผิดพลาวนี้เกิดขึ้นเมื่อ developer directory ที่ xcodeselect ชี้ไปที่ /Library/Developer/CommandLineTools เมื่อต้องการ Xcode เต็มรูปแบบ (เกิดขึ้นเมื่อ CommandLineTools ติดตั้งหลัง Xcode) คุณสามารถแก้ไขปัญหานี้ได้อย่างรวดเร็วโดยการอัปเดต developers directory ไปที่ Xcode.app: sudo xcode-select -s /Applications/Xcode.app/Contents/Developer

วิธีที่ 2: ติดตั้งจากหน้าดาวน์โหลด Apple Developer

หากคุณติดตั้งหรือติดตั้งใหม่ Command Line Tools จาก Terminal แล้ว รีสตาร์ท Mac แล้ว และข้อผิดพลาวยังคงอยู่ คุณสามารถลองติดตั้ง Command Line Tools ด้วยตนเองโดยใช้ไฟล์ DMG โดยตรงจาก Apple

คุณต้องการ Apple ID เพื่อเข้าถึงการดาวน์โหลด จากนั้นไปที่ developer.apple.com และดาวน์โหลด Command Line Tools for Xcode (เวอร์ชันล่าสุด) และติดตั้งด้วยตนเอง

หากคุณใช้ Homebrew คุณต้องอัปเดตมัน คุณไม่ควรติดตั้ง Homebrew ใหม่หรือลบแล้วติดตั้งใหม่ การอัปเดตแบบง่ายๆ ควรจะทำงานได้

วิธีที่ 3: บังคับให้ Terminal ใช้ Xcode

หากคุณติดตั้ง Xcode บน Mac แล้ว คุณสามารถข้ามขั้นตอนการติดตั้งข้างต้นและบังคับให้ Terminal ใช้ Xcode's CommandLine tools ได้ เพื่อทำเช่นนี้ คุณต้องใช้คำสั่งต่อไปนี้:

  • sudo xcode-select –reset
  • sudo xcodebuild -license

หากคุณมี Xcode หลายเวอร์ชัน คุณสามารถเลือกเวอร์ชันที่ต้องการด้วยคำสั่งนี้: xcode-select –switch /Applications/Xcode.app

คุณยังสามารถเลือกที่จะรัน Command Line Tools โดยไม่ใช้ Xcode: xcode-select –switch /Library/Developer/CommandLineTools

สรุป

ปัญหานี้อาจเกิดขึ้นหลังอัปเดตระบบปฏิบัติการ และทำให้บริการที่รันได้ก่อนหน้านี้เป็นไร้ประโยชน์เป็นเวลานาน อย่างไรก็ตาม วิธีแก้ไขข้างต้นควรจะแก้ไขปัญหา xcrun: error: invalid active developer path (/library/developer/commandlinetools) ที่คุณกำลังเผชิญ หากไม่มีวิธีไหนทำงานได้กับคุณ รู้สึกเสรีใจที่จะแชร์ข้อความข้อผิดพลาวของคุณในส่วนความคิดเห็นด้านล่าง