如上圖
安裝Laravel的官方文件中提到:
執行
composer global require "laravel/installer"
安裝程式後,可以在~/.composer/vendor/bin目錄下找到laravel指令,但是今天卻發現此次設定的主機的路徑竟是~/.config/composer/vendor/bin,多出了一個.config的資料夾
仔細查閱相關資料後才發現,原來
假如電腦主機若是採用 freedesktop.org standards標準的作業系統,他會先偵測環境變數中XDG_CONFIG_HOME是否有設定,若沒有設定的話,就會自動幫你加上.config
If your system uses freedesktop.org standards, which it detects by looking for environment variables beginning with XDG_, then Composer uses $XDG_CONFIG_HOME/composer/, falling back to $HOME/.config/composer/ if that isn't set.
若要解決這個困擾(至少操作時跟路徑跟官方文件一致比較不會出錯),可從兩個方向著眼:
1.更改全域的設定,主機內全部使用者受惠
sudo vi /etc/profile
2.更改個別使用者
vi ~/.profile
同樣都是在檔案的最後一行加上
export XDG_CONFIG_HOME="$HOME"
這樣一來,當電腦重新啟動後,XDG_CONFIG_HOME環境變數就會先執行了,但假如你先前已經安裝過Composer的話,可能就需要再重新裝一次囉
註:其他XDG環境變數請參閱Environment variables
註:察看目前5.7的laravel Document官方文件,已經將安裝目錄改為~/.config/composer/vendor/bin,所以上面的XDG_CONFIG_HOME已毋需修改。
參考文件:
- Why is COMPOSER_HOME empty?
- Where should the XDG_CONFIG_HOME variable be defined?
- XDG Base Directory support
沒有留言:
張貼留言