소프트웨어 버전을 이해하면 문제를 해결하는 데 어떻게 도움이 됩니까?

오늘 저는 Linux용 Windows 하위 시스템에서 도구를 사용하는 동안 발생한 소프트웨어 버전과 관련된 문제를 어떻게 극복했는지 문서화해야겠다고 생각했습니다.

tl;박사



좀 더 일반적인 의미에서 저는 4년 전 소프트웨어 도구로 작업을 시작했을 때를 기억합니다. 일상적으로 소프트웨어로 작업하면서 직면하는 문제가 종종 다음과 같이 해결될 수 있다는 생각은 전혀 하지 않았습니다.
  • 사용 중인 버전 다운그레이드 또는 업그레이드
  • 다른 개인이 제공한 해결 방법 사용
  • 관리자인 Stackoverflow에 직접 문제를 제기하거나 인터넷의 다른 곳에서 질문

  • 예를 들어 Rust 생태계의 패키지 관리자 "Cargo"의 경우 사용 가능한 다른 버전here을 볼 수 있습니다.

    문제



    그래서 최근에 처음으로 Windows System for Linux(WSL)의 크레이트 문제publishing에 부딪쳤습니다.

    리포지토리가 마운트된 Windows 디렉토리에 기반을 둔 경우 cargo publish 명령이 작동하지 않는 것 같습니다.

    따라서 이 프로세스와 관련된 디렉토리는 다음과 같습니다.

    |-- ~/
    |-- /mnt/c/Users/david/Documents/Github/nixy                                           
    


    내 프로젝트가 Windows 사용자의 문서 폴더에 있음을 알 수 있습니다.

    다른 사람이 문제를 해결했습니까?



    바퀴를 재발명하지 않기 위해 어디로 가야할지 즉시 생각하지 않고 실행하려고 할 때 받은 오류 메시지cargo publish를 Google에서 검색했습니다.

    이것이 추적되는 문제here와 이것이 실제로 발생하는 이유에 대한 자세한 기술 정보here가 있습니다.

    해결 방법 중 하나 시도



    #8439의 댓글을 기반으로 오늘의 문제를 해결하기 위해 다음 단계를 수행했습니다.

    해결 방법의 디렉토리가 존재하는지 확인했습니다.

    wsl@DESKTOP-DCRMGFD:/mnt/c/Users/david/Documents/GitHub/nixy$ cd ~
    


    그런 다음 내가 있던 이전 디렉토리로 돌아갔습니다.

    wsl@DESKTOP-DCRMGFD:~$ cd -
    


    그런 다음 프로젝트의 상위 디렉토리로 이동했습니다.

    wsl@DESKTOP-DCRMGFD:/mnt/c/Users/david/Documents/Github/nixy$ cd ..
    


    그런 다음 프로젝트를 WSL 홈 폴더에 재귀적으로 복사했습니다.

    $ wsl@DESKTOP-DCRMGFD:/mnt/c/Users/david/Documents/Github/$ cp -R ./nixy ~
    


    그런 다음 WSL 홈 폴더의 두 번째 프로젝트 위치로 이동하여 게시 명령을 다시 실행했습니다.

    wsl@DESKTOP-DCRMGFD:/mnt/c/Users/david/Documents/Github$ cd ~
    wsl@DESKTOP-DCRMGFD:~$ ls
    nixy
    wsl@DESKTOP-DCRMGFD:~$ cd nixy
    wsl@DESKTOP-DCRMGFD:~/nixy$ ls
    Cargo.toml  LICENSE  README.md  src  target  tests
    wsl@DESKTOP-DCRMGFD:~/nixy$ cargo publish
        Updating crates.io index
       Packaging nixy v0.1.0 (/home/wsl/nixy)
       Verifying nixy v0.1.0 (/home/wsl/nixy)
       Compiling nixy v0.1.0 (/home/wsl/nixy/target/package/nixy-0.1.0)
        Finished dev [unoptimized + debuginfo] target(s) in 2.53s
       Uploading nixy v0.1.0 (/home/wsl/nixy)
    wsl@DESKTOP-DCRMGFD:~/nixy$ 
    


    해결 방법을 사용해야 합니까?



    아니! 이제 최신 버전의 Cargo로 업그레이드할 수 있으며 이것은 마운트된/mnt/c/ 디렉토리에서 작동할 것입니다.

    설치된 Cargo 버전을 확인하여 2020-10-14 버전을 사용 중이라고 알려주었습니다.

    wsl@DESKTOP-DCRMGFD:~/nixy$ cargo --version
    cargo 1.48.0 (65cbdd2dc 2020-10-14)
    


    수정 사항이 12월 7일에 마스터에 병합되었음을 #8950에서 볼 수 있습니다.



    그래서 Rust 툴체인을 업데이트하면 Cargo publish 명령이 업데이트됩니다.

    wsl@DESKTOP-DCRMGFD:/mnt/c/Users/david/Documents/Github$ rustup update
    


    이것은 실제로 수정이 병합되기 직전인 다음 Rust 버전을 제공하며, 1.50 및 이와 관련된 모든 버그 수정에 액세스하려면 야간 채널로 전환해야 할 수 있습니다.

    wsl@DESKTOP-DCRMGFD:/mnt/c/Users/david/Documents/Github$ cargo --version
    cargo 1.49.0 (d00d64df9 2020-12-05)
    


    마무리



    대부분 자유 시간에 Rust 생태계에 기여하여 이 게시물에서 제가 도움을 받은 것과 같은 수정 사항을 추가하는 멋진 사람들에게 감사드립니다!

    문제를 테스트하기 위해 내 Crate의 새 버전을 게시하면 이 게시물을 업데이트하는 것을 잊지 않도록 노력하겠습니다.

    다음 시간까지 아래 토론에 자유롭게 참여하십시오 👋.

    좋은 웹페이지 즐겨찾기