Mengapa Ketika saya menginstal Komposer pada Windows 7/8/10, atau beberapa program yang sesuai dengan UNIX seperti GNU Tar , saya perlu menetapkan nilai Path mereka, dan jika tidak, mereka tidak akan dapat digunakan oleh program lain?
6
%PATH%
, Anda bisa mengetik perintah baru di "shell".Jawaban:
Saya menjawab ini untuk Microsoft Windows. Saya melihat ada juga tag Linux di sini. Nah, konsep yang sama berlaku. (Catatan Linux lebih lanjut disebutkan dalam paragraf terakhir.)
Anda dapat menggunakan program jika tidak ada dalam direktori yang ditentukan oleh variabel lingkungan PATH. Namun, ini agak kurang nyaman.
Sebagai contoh, saya sering menjalankan 7-Zip meskipun tidak ada di jalur. Jadi alih-alih memulai baris perintah dengan "7z", saya membuat baris perintah mulai dengan:
"C:\Program Files\7-Zip\7z.exe"
Itu tidak seburuk kelihatannya, karena apa yang saya ketik sebenarnya biasanya lebih mirip:
C: \ tabPro tab7 tab7tab
(Saya mendengarkan bunyi bip yang dapat terjadi jika ada kesalahan ketik, dan setelah ekspansi terakhir saya dengan tabkunci, saya juga memeriksa keakuratan baris perintah, untuk memastikan itu menjalankan apa yang saya inginkan.)
Suatu program dapat memeriksa bagaimana Anda merujuk program pada baris perintah, dan dapat memeriksa direktori Anda saat ini. Jadi suatu program dapat bertindak berbeda berdasarkan apakah itu ada dalam PATH. Namun, itu tidak mungkin.
Solusi alternatif: Sesuaikan variabel lingkungan PATH untuk juga menyertakan direktori tempat program diinstal.
Solusi alternatif lain: Cukup tempatkan file yang dapat dieksekusi ke dalam direktori yang sudah ada di PATH. (Namun, beberapa program lebih rumit, karena mereka mungkin juga memerlukan file lain, seperti file DLL, disalin ke direktori seperti itu; oleh karena itu, pendekatan ini biasanya tidak disarankan untuk program yang Anda perlu "instal", dengan menjalankan "instalasi" program ". Namun, untuk executable sederhana yang hanya dapat dijalankan tanpa memerlukan banyak file dukungan, ini sering dapat dilakukan.)
Di Linux, ada beberapa perbedaan kecil: Anda hanya akan menggunakan "
echo ${PATH}
" bukan "echo %PATH%
", gunakan garis miring bukan garis miring terbalik, gunakan7za
untuk 7-Zip bukan7z.exe
. Jika Anda ingin menyesuaikan jalur, Anda dapat menggunakan perintah yang berbeda, sepertiexport
, tetapi sangat tergantung pada shell apa yang Anda gunakan.)sumber
PATH adalah variabel lingkungan pada sistem operasi mirip Unix, DOS, OS / 2, dan Microsoft Windows, yang menetapkan sekumpulan direktori tempat program yang dapat dijalankan. Secara umum, setiap proses eksekusi atau sesi pengguna memiliki pengaturan PATH sendiri.
DOS, OS / 2, dan Windows
Beberapa program dapat menambahkan direktori mereka ke bagian depan konten variabel PATH selama instalasi, untuk mempercepat proses pencarian dan / atau mengabaikan perintah OS. Di era DOS, itu adalah kebiasaan untuk menambahkan garis
PATH {program directory};%PATH%
atau .SET PATH={program directory};%PATH%
AUTOEXEC.BAT
Ketika sebuah perintah dimasukkan dalam shell perintah atau panggilan sistem dibuat oleh program untuk menjalankan program, sistem pertama-tama mencari direktori kerja saat ini dan kemudian mencari path, memeriksa setiap direktori dari kiri ke kanan, mencari nama file yang dapat dieksekusi yang cocok dengan nama perintah yang diberikan. Program yang dapat dijalankan memiliki ekstensi nama file
EXE
atauCOM
, dan skrip batch memiliki ekstensiBAT
atauCMD
. Ekstensi nama file yang dapat dieksekusi lainnya juga dapat didaftarkan ke sistem.Unix dan Unix-like
Ketika nama perintah ditentukan oleh pengguna atau panggilan exec dibuat dari suatu program, sistem mencari
$PATH
, memeriksa setiap direktori dari kiri ke kanan dalam daftar, mencari nama file yang cocok dengan nama perintah. Setelah ditemukan, program dijalankan sebagai proses anak dari command shell atau program yang mengeluarkan perintah.Sumber: PATH_ (variabel)
sumber
Di Windows, aplikasi dapat mendaftarkan jalurnya
{HKCU|HKLM}\Software\Microsoft\Windows\CurrentVersion\App Paths
di bawah dalam registri. Windows kemudian akan mengingat di mana menemukan file .exe masing-masing, tanpa membengkakPATH
variabel lingkungan.Dari Pendaftaran Aplikasi :
Misalnya, instalasi Windows default memiliki entri registri:
Ini memungkinkan WordPad untuk memulai dari Mulai / Jalankan dengan mengetikkan saja
wordpad
(ataustart wordpad
pada cmd prompt) meskipun%ProgramFiles%\Windows NT\Accessories
tidak ada dalam PATH.sumber
start
-start wordpad
akan bekerja, tetapi tidakwordpad
akan. (Pada level API perbedaannya adalah bahwastart
panggilan ShellExecEx yang mengenali dan menggunakanApp Paths
, saat menjalankan langsung memanggil CreateProcess yang tidak.)start
dalam hal ini, alih-alih nama program yang ingin Anda jalankan, maka itu tidak berfungsi. Dan detail kecil ini adalah masalah besar. (Saya tahu tentang perbedaannya, terima kasih.)