WSL에서 Fish_config 웹 UI를 시작하는 중 오류가 발생했습니다.

WSL에서 Fish_config 웹 UI를 시작하는 중 오류가 발생했습니다.

fish웹 UI 모드를 사용하여 셸을 사용자 정의 하고 싶지만 실행 시 fish_config colors다음 오류가 표시됩니다.

surface@Surface ~> fish_config starting-colors
Web config started at file:///tmp/web_configoafehdco.html
Hit ENTER to stop.
Start : This command cannot be run due to the error: The system cannot find the file specified.
At line:1 char:1
+ Start "file:///tmp/web_configoafehdco.html"
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : InvalidOperation: (:) [Start-Process], InvalidOperationException
    + FullyQualifiedErrorId : InvalidOperationException,Microsoft.PowerShell.Commands.StartProcessCommandd                                                                                                                                                                                                                                                                            

Linux용 Windows 하위 시스템에서 Ubuntu를 실행하고 있습니다.

답변1

일부 기사를 살펴봤지만 정답을 찾지 못한 후에 실행하면 'help' 브라우저가 열리고 다음을 가리키는 것을 발견했습니다.

file://wsl%24/Ubuntu-20.04/usr/share/doc/fish/index.html#variables-for-changing-highlighting-colors

우리가 달리려고 할 때물고기 구성, 이는 다음을 가리킨다.

"file://wsl%24/Ubuntu/tmp/web_configpo_b9wan.html"

즉, wsl%24/Ubuntu를 wsl%24/Ubuntu-20.04로 변경해야 합니다.

이렇게 하려면 먼저 webconfig 디렉터리를 엽니다.

cd /usr/share/fish/tools/web_config

이제 webconfig.py 파일에 쓰기 권한을 부여하십시오.

sudo chmod 777 webconfig.py

webconfig.py 파일에서 "file:///" + f.name"다음 줄을 수정합니다 ."file://wsl%24/Ubuntu-20.04" + f.name


다음을 실행하여 파일의 권한을 원래 상태로 다시 변경합니다.chmod 644 webconfig.py

이제 가셔도 됩니다.

답변2

이 문제는 WSL2 배포판에 최신 버전이 없기 때문에 발생하는 것 같습니다 fish. 해결 방법은 wslWSL2 감지를 수정하는 것입니다.fish/usr/share/fish/tools/web_config/webconfig.py

귀하의 것을 편집 /usr/share/fish/tools/web_config/webconfig.py하고 기능을 is_wsl()다음과 동일하게 변경하십시오.

 def is_wsl(): 
     """ Return whether we are running under the Windows Subsystem for Linux """ 
     if "linux" in platform.system().lower() and os.access("/proc/version", os.R_OK): 
         with open("/proc/version", "r") as f: 
             # Find 'Microsoft' for wsl1 and 'microsoft' for wsl2 
             if "microsoft" in f.read().lower(): 
                 return True 
     return False

특히,"마이크로소프트"를 "마이크로소프트"로 변경하세요. (대문자에서 소문자 "m")

더 많은 정보를 원하시면 읽어주세요이 문제Fish Shell의 github 저장소에서 엽니다.

관련 정보