Cygwin 오류 - '/bin/bash' 실행 실패: 해당 파일이나 디렉터리가 없습니다.

Cygwin 오류 - '/bin/bash' 실행 실패: 해당 파일이나 디렉터리가 없습니다.

C:\Cygwin64방금 Windows 7에 Cygwin을 다운로드하여 설치했습니다. 제가 설치한 설치 폴더가 300MB 미만이었을 때 1.2GB의 데이터로 구성된 폴더 로 성공적으로 설치된 것 같습니다 . 그러나 바탕화면 바로가기를 클릭하면 mintty.exe오류가 표시됩니다.

'/bin/bash' 실행 실패: 해당 파일이나 디렉터리가 없습니다.

이것은 내가 모든 기본 파일을 설치했다는 사실에도 불구하고 그 bash일부로 추정되며 그렇지 않은 경우에도 설치 프로그램은 나중에 이를 필수 패키지로 표시하고 자체적으로 설치했습니다. 그럼 여기서 무슨 일이 일어나고 있는지 아는 사람 있나요? 이것은 Cygwin을 성공적으로 설치하기 위한 마지막 날의 네 번째 시도일 수 있습니다. 나는 그것을 가질 운명이 아니라고 생각하기 시작했습니다.

답변1

이번에는 파일을 별도로 다운로드하고 로컬에 저장된 폴더(옵션 2 및 3)에서 설치하는 대신 넷(설치 프로그램의 옵션 1)에서 다운로드하여 설치하기로 선택했습니다. 해당 옵션을 선택하면 설치가 완료되지 않은 이유가 확실하지 않지만 이제 bash오류 없이 실행할 수 있습니다.

답변2

웹에서 직접 기본 새로 설치한 후에도 동일한 문제가 발생했습니다.

"C:\cygwin64\bin"으로 이동하여 "ash.exe"를 복제하고 복사본의 이름을 "bash.exe"로 변경하여 문제를 해결했습니다.

(Bash가 없어서 이 불길한 재 파일을 발견했기 때문에 저는 이것을 우연히 시도했습니다.)

답변3

문제

원할 경우 아래로 건너뛰어 두 가지 솔루션, 특히 두 번째 솔루션을 살펴볼 수 있습니다.

System32내 컴퓨터의 손상된 부분을 복구한 후( 디렉토리가 손상된 후 - 윽!) 방금 이 문제에 직면했습니다. 이런 종류의 일이 이전에 발생했는데(다른 상황으로 인해) C:\cygwin64폴더가 있는 디렉토리가 여전히 있었고 최소한 다른 파일이 아직 남아 있어요.

이전에는 항상 실행하여 간단히 다시 설치할 수 있었습니다 setup-x86_64.exe(저는 에 넣었습니다 C:\cygwin64). 그 후에 bash는 돌아올 것입니다. 나는 항상 온라인 옵션을 사용하여 이 작업을 실행 https://mirrors.kernel.org하지만 설치 GUI에서만 선택하더라도 bash이 문제가 발생했습니다. 내 오류는 다음과 같습니다.

/bin/bash: Exit 126.
Failed to run '/bin/bash': No such file or directory

위에 지정된 텍스트가 있는 Cygwin 터미널(에뮬레이터)(예: "/bin/bash: Exit 126. '/bin/bash' 실행 실패: 해당 파일 또는 디렉터리 없음")

bin디렉토리를 확인해 보니 실제로 bash누락된 것으로 나타났습니다. 명령 프롬프트에서( CMD)

C:\Windows\System32>C:\cygwin64\Cygwin
'bash' is not recognized as an internal or external command,
operable program or batch file.

C:\Windows\System32>dir C:\cygwin64\bin\bas*
 Volume in drive C is ██████████
 Volume Serial Number is ██████████

 Directory of C:\cygwin64\bin

File Not Found

C:\cygwin64\bin>

나는 일반적으로 다음 중 하나를 통해 Cygwin을 실행합니다.

  1. (Windows) 명령 프롬프트에서 다음을 실행하는 것과 동일한 바탕 화면 바로 가기 사용
C:\cygwin64\bin\mintty.exe -i /Cygwin-Terminal.ico -

또는

  1. 파일 을 사용합니다 Cygwin.bat. 먼저 파일 내용을 표시한 다음 이를 실행하려고 시도한 결과를 표시하겠습니다.
C:\Windows\System32>type C:\cygwin64\Cygwin.bat
@echo off

C:
chdir C:\cygwin64\bin

bash --login -i

C:\Windows\System32>C:\cygwin64\Cygwin
'bash' is not recognized as an internal or external command,
operable program or batch file.

C:\cygwin64\bin>

첫 번째(실패한 시도) 솔루션

발견bash-<version>.tar.xz

이전에 에서 다운로드한 적이 있어서 https://mirrors.kernel.org폴더가 생겼습니다.

C:\cygwin64\http%3a%2f%2fmirrors.kernel.org%2fsourceware%2fcygwin%2f

좀 더 살펴보니 tarball이 호출되어 bash-4.4.12-3.tar.xz있는 것을 발견했습니다.

C:\cygwin64\http%3a%2f%2fmirrors.kernel.org%2fsourceware%2fcygwin%2f\x86_64\release\bash

전체 경로 만들기

C:\cygwin64\http%3a%2f%2fmirrors.kernel.org%2fsourceware%2fcygwin%2f\x86_64\release\bash\bash-4.4.12-3.tar.xz

난 결국 이걸로 열었어7zip, 당신은 사용할 수 있지만WinRAR또는 다른 비슷한 것.

(이제 Windows에서 어떻게 사용할 수 있는지에 대해 약간의 호언장담을 했지만 tar이를 사용하면 추출이 작동하지 않았습니다. 호언장담을 볼 수 있습니다.여기tarWindows 10에 대해 더 자세히 알고 싶다면 curl) 타르볼을 데스크탑에 복사/붙여넣은 다음 마우스 오른쪽 버튼을 클릭하고 '확장'을 두 번 선택하여 내부 내용을 확인했습니다. 그거 다 복사했어요

C:\Users\bballdave025\Desktop\bash-4.4.12-3\

그 순간 나는 안에 무엇이 있는지 볼 수 있었습니다.그런 다음 내부 파일 위치를 Cygwin이 작동하는 컴퓨터의 파일 위치와 비교했습니다.나는 모든 파일을 찾을 수 있었고, 그 파일들을 적절한 위치로 옮기기로 계획했습니다.

다른 사람들에게는 아마도 다음과 같은 곳에서 온 사람들이 있을 것입니다.git bash(좋다이 포스터)(보관됨) 또는 mingw/ msys2(좋아요이 포스터)(보관됨), 시스템이 찾을 수 없다는 오류가 발생했다는 점에 유의하세요. /bin/bash오류가 참조하는 방식과 다르기 /usr/bin/bash때문에 약간의 차이가 있을 수 있습니다.

C:\Users\bballdave025\Desktop\bash-4.4.12-3>tree /a /f .
Folder PATH listing for volume ██████████ OS
Volume serial number is ██████████ ██████████
C:\USERS\BBALLDAVE025\DESKTOP\BASH-4.4.12-3
|
+---etc               \   . On the working computer's version, I found
|   \---postinstall    }-' C:\cygwin64\etc\postinstall\bash.sh.done
|           bash.sh   /   I'm going to move the file from where you
|                       see it to _my_ C:\cygwin64\etc\postinstall.sh
|                     Then I'll run it, and if the tests pass, I'll
|                   rename it to bash.sh.done . I'll do that after
|                 moving all the others.
|
\---usr                 
    +---bin              
    |       bash.exe     \     
    |       bashbug       }---  I'll move these three files into 
    |       sh.exe       /      _my_  C:\cygwin64\bin   FIRST (1)
    |
    +---include
    |   \---bash                      \    . I'll move this bash
    |           <lots of *.h files>    }--' directory and all its
    |                                 /  constituent header (*.h)
    |                                  files to _my_ directory,
    |                                      C:\cygwin64\usr\include\
    |
    +---lib
    |       libbash.dll.a  }- I'll move this one file to _my_
    |                     /                         C:\cygwin64\lib\
    |
    |
    |                                          \
    \---share                                   \
        +---doc                                  :
        |   +---bash                              \
        |   |   +---<lots of bash doc stuff>       :
        |   |                                      |
        |   \---Cygwin                             : 
        |           bash.README                    |   .-I'll put the
        |                                      _.-'  _/ doc, info,
        +---info                              /   _-'  locale, and
        |       bash.info.gz                  \_/'  man directories
        |                                   --'   in _my_
        |                                  /  C:\cygdrive64\usr\share\
        +---locale                         `--------...____   directory,  
        |   +---<lots of locales which have the same  >    :  which is 
        |   |   <structure underneath; the last locale>   /  where they
        |   |   <(serving as an example) is below     >  :  were in the
        |   \---zh_TW                                   /   working
        |       \---LC_MESSAGES                        /    version.
        |               bash.mo                       /
        |                                            :
        \---man                                     /
            \---man1                               :
                    <lots of PROGRAM.gz files>    /
                                                 /                              

예, 다시 돌아가고 싶지만 이 답변 중 일부를 저장하고 싶습니다.

두 번째 해결책

친구한테 이런 일이 있었어요. 관리자가 그녀의 계정을 설정했고 관리자가 그 계정에 "그의 갈고리"를 남겨두었습니다. 이는 그가 일종의 소유권을 갖고 있음을 의미합니다. 그 관리자는 우리가 있던 곳에서 더 이상 일하지 않았기 때문에 우리는 모든 것을 고칠 수 있는 방법을 찾아야 했습니다.

먼저 모든 것을 삭제하려고 했지만 제거할 수 없는 파일과 폴더가 항상 몇 개 있었습니다. 그 관리자는 (그나저나 정말 좋은 사람입니다.) 해당 관리자의 소유였습니다. 우리는 심지어 제거할 수도 없었습니다. 관리자 권한으로 삭제를 실행한 경우 삭제합니다( File Manager -> C -> Windows -> explorer.exe, 마우스 오른쪽 버튼을 클릭한 다음 '관리자 권한으로 실행'하고 디렉터리로 이동하여 C:\cygwin64삭제를 시도합니다... 주사위 없음.)

마침내 작업을 수행하려면 관리자로 들어가서 기본 디렉터리와 다른 모든 디렉터리에 대한 권한을 변경해야 했습니다. 그런 다음 디렉터리를 삭제하고 C:\cygwin다시 만들고 setup-86_64.execygwin64디렉터리에 넣은 다음 다음을 실행할 수 있었습니다. 설정. 너~할 수 있다전체 디렉토리에 대한 권한을 변경한 다음 GUI를 bash사용 하여 다시 설치하려고 시도했지만 setup-x86_64.exe이를 시도한 다음 Cygwin 터미널로 이동했을 때 다음과 같은 내용을 얻었습니다.

bballdave025@MY_MACHINE ~
$ wget https://raw.githubusercontent.com/transcode-open/apt-cyg/master/apt-cyg
--2020-04-26 13:08:26--  https://raw.githubusercontent.com/transcode-open/apt-cyg/master/apt-cyg
Resolving raw.githubusercontent.com (raw.githubusercontent.com)... 151.101.68.133
Connecting to raw.githubusercontent.com (raw.githubusercontent.com)|151.101.68.133|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 13765 (13K) [text/plain]
apt-cyg: Permission denied

Cannot write to ‘apt-cyg’ (Permission denied).

bballdave025@MY_MACHINE ~
$ stat .
  File: .
  Size: 0               Blocks: 24         IO Block: ██████████  directory
Device: ██████████/██████████   Inode: ██████████  Links: 1
Access: (0575/dr-xrwxr-x)  Uid: (██████████/   bballdave025)   Gid: (██████████/Unknown+Group)
Access: 2020-03-25 06:44:06.256806800 █████
Modify: 2020-03-25 06:44:04.686424000 █████
Change: 2020-04-26 09:23:47.452255300 █████
 Birth: 2019-12-26 12:34:40.017177300 █████

bballdave025@MY_MACHINE ~
$ stat /
  File: /
  Size: 0               Blocks: 4          IO Block: ██████████  directory
Device: ██████████/██████████   Inode: ██████████  Links: 1
Access: (0775/drwxrwxr-x)  Uid: (██████████/   bballdave025)   Gid: (██████████/Unknown+Group)
Access: 2020-04-26 09:34:23.227577100 █████
Modify: 2020-04-26 09:34:23.227577100 █████
Change: 2020-04-26 12:55:46.658249200 █████
 Birth: 2019-06-25 06:49:31.485205900 █████

bballdave025@MY_MACHINE ~
$ chmod u+w .
chmod: changing permissions of '.': Permission denied

bballdave025@MY_MACHINE ~
$ # It's not going to be very useful like this.

그건 그렇고 chmod -R u+w /많은 Permission denied오류가 발생했습니다.

복구할 파일이 있다면 지금 복구할 수 있는 두 번째로 좋은 기회가 있을 것입니다.

삭제를 수행하는 한 가지 방법은 다음 지침을 따르는 것입니다.이 appuals 튜토리얼(보관된). CMD관리자로 실행하려면 관리자 권한이 필요합니다 .

Windows 탐색기에서도 이를 수행할 수 있지만 아마도 관리자 권한으로 탐색기를 실행해야 할 것입니다. 이와 같은 권한 변경도 시도했지만 운이 없었습니다.

유형 메뉴에서 검색 cmd후 관리자 권한으로 실행하세요. 아래 스크린샷을 참조하세요.

CMD를 관리자로 실행하는 단계

소유권을 가져라

takeown /r /d y /f C:\cygwin64

명령의 두 구성 단어는 'TAKE DOWN'이 아니라 'TAKE OWN'입니다. 또한 이 명령은 내 경우 약 5~20분 정도로 시간이 오래 걸릴 수 있습니다.거의 전체 설치(보관된).

다음으로 모든 사람에게 모든 권한을 부여합니다.

icacls C:\cygwin64 /t /grant Everyone:F

다시 한 번 돌아가서 설치/재설치를 시도할 수 있지만 bash방금 수행한 작업의 보안 영향이 마음에 들지 않습니다.

복구할 파일이 있다면 지금 복구할 수 있는 두 번째로 좋은 기회가 있을 것입니다. 즉, 이 시점에서 GUI를 bash사용하여 설치하거나 다시 설치하거나 setup-x86_64Windows 파일 탐색기만 사용하는 경우에도 이것이 가장 좋은 기회라는 뜻 입니다.

차라리 이 Cygwin을 삭제하고 새로 설치하고 싶습니다. 가능한 모든 파일을 복구하려고 시도한 경우 계속해서 다음 명령을 실행하십시오.

rmdir /s /q C:\cygwin64

삭제한 후 다시 설치하기 전에 다음을 사용해야 합니다.

Windows+ R및 을 선택한 다음 및 의 폴더 regedit에 있는 모든 항목을 제거/삭제합니다 .Software\CygwinHKEY_LOCAL_MACHINEHKEY-CURRENT-USER

답변4

  1. Cygwin을 실행합니다:setup-x86_64.exe

  2. 선택하다:설치하지 않고 다운로드

    그러면 대상 폴더에 Cygwin 터미널 파일이 다운로드됩니다.http://cygwin.mirror.constant.com/

    예:C:\대상 폴더>http://cygwin.mirror.constant.com/>

  3. 달리다다시시그윈:setup-x86_64.exe. 이제 다음을 선택하세요.로컬 디렉토리 설치, 클릭 다음, 클릭다음, 클릭다음, 그 다음에마치다.

  4. 이동 :http://cygwin.mirror.constant.com/폴더에는 두 개의 하위 폴더가 있습니다.

    노아크 x86_64

  5. 열려 있는x86_64폴더

  6. 열려 있는풀어 주다폴더

  7. 열려 있는세게 때리다폴더(압축 파일이 있습니다. 예: **bash-4.4.12-

  8. tar.xz** 파일

    압축된 bash 파일을 추출하면 두 개의 폴더가 나타납니다(그리고우리).

  9. 열려 있는폴더 및 복사bash.sh파일을 받아서 붙여넣으세요C:\cygwin64\bin폴더

관련 정보