Windows 7 に Cygwin をダウンロードしてインストールしました。インストール元のフォルダが 300 MB 弱だったのに対し、フォルダには 1.2 GB のデータが含まれており、正常にインストールされたようですC:\Cygwin64
。ただし、デスクトップ ショートカットをクリックすると が開きmintty.exe
、次のエラーが表示されます。
'/bin/bash' の実行に失敗しました: そのようなファイルまたはディレクトリはありません
これは、私がすべての基本ファイルをインストールしたにもかかわらず、そのbash
一部であるはずのものです。たとえそうでなかったとしても、インストーラーは後でそれを必須パッケージとして表示し、自動的にインストールしました。では、ここで何が起こっているのか誰か分かりますか? これは、Cygwin のインストールを正常に動作させようとする、この 1 日での 4 回目の試みかもしれません。私は、Cygwin はインストールできないのではと思い始めています。
答え1
私は、さらに別のインストールでこの問題を解決することができました。今回は、ファイルを個別にダウンロードしてローカルに保存されたフォルダーからインストールするのではなく (オプション 2 と 3)、ネットからダウンロードしてインストールすることを選択しました (インストーラーのオプション 1)。これらのオプションを選択するとインストールが不完全になる理由はわかりませんが、bash
エラーなしで実行できるようになりました。
答え2
Web から直接デフォルトの新規インストールを実行した後、同じ問題が発生しました。
「C:\cygwin64\bin」に移動して「ash.exe」を複製し、コピーの名前を「bash.exe」に変更することで解決しました。
(偶然にこれを試していたのですが、bash が見つからず、この不吉な ash ファイルを見つけたのです)
答え3
問題
よろしければ、下にスクロールして 2 つの解決策、特に私にとってはうまくいった 2 番目の解決策をご覧ください。
コンピューターの破損した部分を回復した後 (ディレクトリ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
ディレクトリを確認すると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 は次のいずれかの方法で実行します。
- デスクトップのショートカットを使用する。これは、(Windows) コマンドプロンプトから次のコマンドを実行するのと同じです。
C:\cygwin64\bin\mintty.exe -i /Cygwin-Terminal.ico -
または
- ファイルの使用
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
もう少し調べてみると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
が、それを使っても抽出はうまくいきませんでした。愚痴の内容は以下で見ることができます。ここtar
Windows 10でネイティブに動作する方法についてもっと知りたい場合はcurl
、tarballをデスクトップにコピー/貼り付けし、右クリックして「展開」を2回選択して中身を確認しました。そのすべてを
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> /
/
はい、戻りたいと思っていますが、この回答の一部をアップして保存しておきたいと思います。
2番目の解決策
友人にも同じことがありました。管理者が彼女のアカウントを設定しましたが、その管理者は「自分のフック」をそのアカウントに残していました。つまり、何らかの所有権を持っていたのです。その管理者はもう私たちが働いていた場所で働いていないので、私たちはすべてを修正する方法を考えなければなりませんでした。
まず、すべてを削除しようとしましたが、削除できないファイルやフォルダが常にいくつかありました。それらは管理者 (ちなみに、管理者は本当にいい人です) が所有していたためです。管理者として削除を実行しても削除できませんでした ( をFile Manager -> C -> Windows -> explorer.exe
右クリックして「管理者として実行」し、ディレクトリに移動してC:\cygwin64
削除を試みましたが、だめでした)。
最終的に動作させるには、管理者としてログインしてベースディレクトリと他のすべてのディレクトリの権限を変更し、その後ディレクトリを削除してC:\cygwin
再作成し、setup-86_64.exe
新しいcygwin64
ディレクトリに配置してセットアップを実行する必要がありました。できるbash
ディレクトリ全体の権限を変更して GUIで再インストールしようとしました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
エラーも発生しました。
回復するファイルがある場合、おそらく今がそれを実行できる 2 番目に良いチャンスです。
削除を行う一つの方法は、このアプリのチュートリアル(アーカイブ済み)CMD
管理者として実行するには管理者権限が必要です。
Windows エクスプローラーでも実行できますが、エクスプローラーを管理者として実行する必要がある可能性があります。私もこのように権限を変更しようとしましたが、うまくいきませんでした。
タイプメニューから検索しcmd
、管理者として実行します。下のスクリーンショットを参照してください。
所有権を得る
takeown /r /d y /f C:\cygwin64
このコマンドを構成する2つの単語は「TAKE DOWN」ではなく「TAKE OWN」であることに注目してください。また、このコマンドはおそらく5~20分ほどかかることに注意してください。ほぼ完全なインストール(アーカイブ済み)。
次に、全員に完全な権限を付与します。
icacls C:\cygwin64 /t /grant Everyone:F
もう一度、戻ってインストール/再インストールを試みることはできますbash
が、今行った操作のセキュリティへの影響が気に入りません。
回復するファイルがある場合、今がおそらくそれを実行する 2 番目に良いチャンスです。つまり、この時点で GUIbash
を使用してインストールまたは再インストールする場合setup-x86_64
、または Windows ファイル エクスプローラーを使用する場合でも、これが最良のチャンスです。
この Cygwin を削除して、新しくインストールしたほうがよいでしょう。 可能なファイルの回復を試みた場合は、次のコマンドを実行してください。
rmdir /s /q C:\cygwin64
削除後、再インストールする前に、必ず
Windows+ R、次に、およびのフォルダregedit
内のすべてのものを削除します。Software\Cygwin
HKEY_LOCAL_MACHINE
HKEY-CURRENT-USER
答え4
Cygwin を実行します:セットアップ-x86_64.exe
選択する:インストールせずにダウンロード
これにより、Cygwinターミナルファイルが保存先のフォルダにダウンロードされます。http://cygwin.mirror.constant.com/
例:C:\宛先フォルダ>http://cygwin.mirror.constant.com/>
走るまたシグウィン:セットアップ-x86_64.exe次に、以下を選択します。ローカルディレクトリをインストールする、 クリック 次、 クリック次、 クリック次、 それから仕上げる。
次の場所に移動します:http://cygwin.mirror.constant.com/フォルダーには 2 つのサブフォルダーがあります。
ノアーチ 64ビット
開ける64ビットフォルダ
開けるリリースフォルダ
開けるバッシュフォルダ(圧縮ファイルがあります、例:**bash-4.4.12-
tar.xz** ファイル
圧縮されたbashファイルを解凍すると、2つのフォルダが表示されます(等そしてユーザー)。
開ける等フォルダとコピー翻訳:ファイルに貼り付けるC:\cygwin64\binフォルダ