尝试在 Windows 上使用 bash 并没有收到已安装的发行版消息

Posted

技术标签:

【中文标题】尝试在 Windows 上使用 bash 并没有收到已安装的发行版消息【英文标题】:Trying to use bash on Windows and got no installed distributions message 【发布时间】:2017-12-03 10:26:26 【问题描述】:

我尝试在 Windows 10 上使用 bash,但在尝试运行 bash 时收到此消息:

适用于 Linux 的 Windows 子系统未安装任何发行版。 可以通过访问 Windows 应用商店来安装发行版: https://aka.ms/wslstore 按任意键继续...

当我转到打开 Windows 应用商店 应用程序的那个 URL 时,那里没有任何 Linux 分发的迹象。

我的 windows 版本是(在屏幕的右下角):

Windows 10 Enterprise Insider Preview。评估副本.Build 16215.rs_prerelease.170603-1840

我按照本指南 Installation Guide 中的说明进行操作,并且正在观看 Scott Hanselman 的视频 Editing code and files on Windows Subsystem for Linux on Windows 10,但他们没有收到未安装分发的消息。

有什么帮助吗?

【问题讨论】:

Stack Overflow 是一个编程和开发问题的网站。这个问题似乎离题了,因为它与编程或开发无关。请参阅帮助中心的What topics can I ask about here。也许Super User 或Unix & Linux Stack Exchange 会是一个更好的提问地点。 @jww 不是一个直接的开发问题,但我需要在 Windows 上使用这个 bash 来测试我正在尝试使用 .net 核心的一些新东西,以及新 Microsoft 技术堆栈中的所有新东西这与编程有关,因为我认为普通的 Windows 用户不需要这个。 github.com/Microsoft/BashOnWindows/issues/2212 我今天读了这篇文章Ubuntu is now available for download on the Windows Store,打开商店时显示 Ubuntu 为未安装的应用程序 【参考方案1】:

当 Windows 应用商店打开时,没有 Distro 可供选择,然后我找到了这个命令 lxrun /install 并为我工作。

你会得到这样的输出:

C:\WINDOWS\system32>lxrun /install
Warning: lxrun.exe is only used to configure the legacy Windows Subsystem for Linux distribution.
Distributions can be installed by visiting the Microsoft Store:
https://aka.ms/wslstore

This will install Ubuntu on Windows, distributed by Canonical and licensed under its terms available here:
https://aka.ms/uowterms

Type "y" to continue: y
Downloading from the Microsoft Store... 100%
Extracting filesystem, this will take a few minutes...
Would you like to set the Ubuntu locale to match the Windows locale (en-FI)?
The default locale is en_US.
Type "y" to continue: y
Please create a default UNIX user account. The username does not need to match your Windows username.
For more information visit: https://aka.ms/wslusers
Enter new UNIX username: <you type your login here>
Enter new UNIX password:
Retype new UNIX password:
passwd: password updated successfully
Installation successful!
Documentation is available at:  https://aka.ms/wsldocs

【讨论】:

从未在 Windows 应用商店中看到可供选择的发行版,但 lxrun/install 命令运行良好 这是运行 lxrun/install Installing Bash on Windows987654321@后进程的打印屏幕 运行 lxrun 时出现以下警告,这就是我投反对票的原因: > 警告:lxrun.exe 仅用于配置 Linux 发行版的旧版 Windows 子系统。 lxrun 在 Windows 2019 上似乎不存在 lxrun 替换为 wsl【参考方案2】:

我在尝试卸载并重新安装后遇到了类似的错误。

对我来说,我必须以管理员身份打开 cmd 提示符并运行 lxrun /install

【讨论】:

运行 lxrun 时出现以下警告,这就是我投反对票的原因: > 警告:lxrun.exe 仅用于配置 Linux 发行版的旧版 Windows 子系统。 好吧,已经一年了@RandallFlagg =),现在分发是在windows store中处理的,整个问题都是无效的。【参考方案3】:

我最近重新启动时得到了这个。如果我等待 5 分钟,问题就会自行解决!

【讨论】:

我很高兴找到了这个答案,我已经使用适用于 Linux 的 Windows 子系统一年多了,今天当我刚打开笔记本电脑时,它出现了这个错误第一次对我来说,我以为我将不得不从第一个答案运行lxrun 命令或找到要安装的东西来修复它,但是看到这个答案后,我决定等待,你是对的,它几分钟后确实开始工作了。 哇哦,你是对的!自从我安装 WSL 以来,我第一次重新启动,我得到了这个错误并且吓坏了。好奇怪…… 如果您已经从商店安装了 linux 发行版,这与此相关。 这行得通。这令人沮丧。关闭计算机,忘记提交 git,然后等待重新启动......现在坐在这里。知道为什么需要 分钟 吗?! 我不知道为什么会发生这种情况,但不是等待 5 分钟重新启动 LxssManager 服务对我有用。【参考方案4】:

为这个问题写的最佳答案绰绰有余。我只是在关注它们时遇到了麻烦,因为lxrun 命令已被弃用,所以我收到错误

'lxrun' 不是内部或外部命令,可操作 程序或批处理文件。

当我尝试使用 cmd 运行此命令时。

它已被wsl 命令替换。您可以在此处获取有关此问题的更多信息 - https://github.com/MicrosoftDocs/WSL/issues/425

当您运行wsl /install 时,您仍有可能收到您之前在问题中发布的错误。在这种情况下,只需像之前那样转到链接https://aka.ms/wslstore。如果你没有看到任何东西,只需搜索 Ubuntu 并安装它。 (不过,如果您使用术语 wsl 进行搜索,您也会看到其他 Linux 版本,然后您可以下载任何您选择的版本)

【讨论】:

感谢您提及这一点。命令 lxrun /install 不起作用,但 wsl /install 起作用了 这个答案是最好的(2020 年最新更新)【参考方案5】:

命令中给出的链接似乎不起作用。这是 Ubuntu 微软商店的实际链接。

https://www.microsoft.com/en-nz/store/p/ubuntu/9nblggh4msv6?rtc=1

【讨论】:

如果在商店中搜索 Linux 没有返回任何内容,则此方法有效。【参考方案6】:

你必须去https://aka.ms/wslstore这个链接并在windows上下载ubuntu。之后,您可以在 Windows 上使用 bash。

【讨论】:

该链接似乎不适用于所有国家/地区。他们到底为什么要把区域锁定放在那里? 这不起作用。它打开商店并说有问题,没有发行版显示。奇怪的是,它们可以通过搜索访问,但没有 WSL 发行版的列表 @Zoe 我认为这一定是你的结果,因为具有讽刺意味的是,我只是在你发表评论后 55 分钟成功地完成了这一步。也许再试一次! :) @joshmcode 已经 19 个小时了,还是不行。还是一样的“请稍等,再试一次”。如果 19 小时不能解决问题,那么尝试就没有意义了。正如对此问题的第一条评论所述,这可能是一个区域性问题,在这种情况下等待不会解决任何问题。 我明白了。对不起! :( 我希望你能尽快找到解决方法。【参考方案7】:

如果您在运行 lxrun /install 时遇到任何问题(例如在 ltsb Windows 版本上),请尝试手动模式。

首先,进入下载了.appx文件的文件夹并运行以下命令(如果需要更改文件名):

Rename-Item ~/Ubuntu.appx ~/Ubuntu.zip
Expand-Archive ~/Ubuntu.zip ~/Ubuntu

完成 cd 进入新文件夹并运行 ubuntu.exe 文件后。就是这样。

【讨论】:

这是在 Server 2019 build 1809 上对我有用的唯一答案 为我工作。谢谢你。为微软感到羞耻。【参考方案8】:

如果您在使用 Windows 商店安装发行版后收到此错误,并且 WSL 之前可以正常工作,您可能需要确保 LxssManager 服务正在运行,因为它通常会在 Windows 更新或重新启动后停止。

进入services.msc,搜索LxssManager并启动它;如果它已经在运行,请重新启动它。

【讨论】:

【参考方案9】:

对于所有正在获得的人

'lxrun' is not recognized as an internal or external command,
operable program or batch file.

Windows Subsystem for Linux has no installed distributions.
Distributions can be installed by visiting the Microsoft Store:
https://aka.ms/wslstore

打开微软商店,安装“Ubuntu”然后打开应用程序。这将安装 ubuntu,稍后您可以使用 wsl 命令,因为 lxrun 已弃用

【讨论】:

【参考方案10】:
    去添加或删除程序 为 Linux 安装 Windows 子系统 转到https://aka.ms/wslstore,它将带你到微软商店 选择并安装 Linux 发行版

【讨论】:

【参考方案11】:
lxrun /install

适用于 Windows 10 Professional 版本 1803 Build 17134.165 的管理员命令提示符

这会默认安装 GNU/Linux,但有一个选项可供选择:

Ubuntu openSUSE Leap 42 SUSE Linux Enterprise Debian GNU/Linux Kali Linux

如果给定的链接 (https://aka.ms/wslstore) 有效,它会为我打开 Windows 商店,并显示错误提示他们这边有问题,稍后再试。

【讨论】:

【参考方案12】:

解决这个问题实际上比这里列出的其他解决方案更容易。如果你运行wslconfig /l 并且输出是:

Windows Subsystem for Linux Distributions: Ubuntu (Default)

只需运行wslconfig /s Ubuntu 再次将 Ubuntu 设置为默认值。它现在应该开始工作了。

编辑:

我还发现,如果在新启动时出现此问题,那么您只需等待几分钟(最多 10 分钟),此错误就会自动消失。

编辑 2: 我还发现这个错误有时也是由于相应的服务没有运行。以管理员身份运行CMD并运行

net start LxssManager

【讨论】:

【参考方案13】:

我也有同样的问题。但是当你去 windows 商店时,你可以搜索 ubuntu,然后安装 ubuntu 应用程序,它就可以工作了。我想网上的教程大部分都是beta版,之后就再也没有更新过。

https://insights.ubuntu.com/2017/07/11/windows-10-loves-ubuntu-loveislove/

注意:这也是旧的。您不需要在内部构建中。我没有,它奏效了。

【讨论】:

【参考方案14】:

要在windows上运行bash,需要安装ubuntu。

由于您已经从程序和功能中添加了 bash,现在您需要安装 Ubuntu。与大多数网络安装指南中看到的相反,它不会通过运行“bash.exe”来安装。

您只需前往 Microsoft 商店搜索“Bash”或“Ubuntu”,然后从那里安装 Ubuntu 18 LTS。

安装后,您将能够使用终端及其所有命令。

【讨论】:

【参考方案15】:

这里描述了唯一对我有用的东西https://docs.microsoft.com/en-us/windows/wsl/install-manual#downloading-distros

    https://aka.ms/wsl-ubuntu-1804 手动安装或从 PowerShell 运行 Add-AppxPackage.\.appx

【讨论】:

【参考方案16】:

问题查询的实际答案是:用户存在且已安装 Ubuntu。但是 WSL 命令在 CMD.exe “命令行” “系统找不到分发”中找不到任何东西。

您需要从 Windows 开始菜单启动以下 WSL 命令。然后旧的 Linux 系统将显示在 WSL 中的命令行中。

如果这对您不起作用?只需使用管理员启动 PowerShell,然后:

WSL --help
WSL "only this command, will start the Linux default distro selected"

然后您可以在 Windows 中使用 CMD.exe Administrator 使用此命令启动:

lxrunoffline l "This will now list all your distros"

使用 Ubuntu18.04 可以删除复制到 Windows 文件夹的旧发行版的选项,这样您就必须使用 Linux 删除旧文件夹,不要尝试使用 Windows 应用程序在发行版中复制或编辑文件。您冒着完整性问题以及许多错误的风险,随之而来的是巨大的处理时间。使用文件夹 /mnt 找到您的 Linux 驱动器,并使用那里的命令进一步完成您的工作,例如将主目录复制到新发行版中。

我移动“不复制”我的发行版的解决方案是:“为 C: 提供空间”

lxrunoffline m -n Ubuntu-18.04 -d d:\wslinstalled\Ubuntu-18.04 "remember folder names"

“记住文件夹名称,例如 Ubuntu-18.04 进行特定动作。除非您将使用 lxrunoffline 文件覆盖该文件夹名称上的所有内容,否则如果您使用一个文件夹名称,您可能会丢失旧副本。您最终可能会得到一个如果你只使用一个目录,你的项目就会有奇怪的名字。”

Lxrunoffline 还有其他几个命令,如果您需要帮助,只需运行:

lxrunoffline

【讨论】:

【参考方案17】:

就像beginner_ said 在他的回答中一样,您需要去商店寻找您想要安装的发行版。 请参阅以下link 以了解发生了什么变化以及您可以期待什么或您可以寻找哪些发行版(该列表已过时,因此请尝试查找更新的列表或试试运气)。

我在我的机器上运行没有开发者模式Ubuntu、OpenSuseKali

【讨论】:

【参考方案18】:

我的公司阻止访问 Microsoft Store。对我来说,以下是在 PowerShell(管理员)中工作的 -

lxrun /install  

【讨论】:

【参考方案19】:

转到 cmd,然后运行以下命令: lxrun /install

【讨论】:

【参考方案20】:

在提升的命令提示符下键入 lxrun /install 有效....

【讨论】:

【参考方案21】:

在git bash windows 中运行bash 命令。成功了!!

【讨论】:

不被标记为正确答案,但在匆忙中绝对有用。谢谢!【参考方案22】:

商店的链接似乎有一个区域锁定,导致许多访问者出错。

但是,有不同的 Ubuntu 发行版可供下载。见下图,虽然图片是荷兰语,但它会显示结果。

所以选择一个你想要的版本,它会产生一个有效的 bash。

【讨论】:

以上是关于尝试在 Windows 上使用 bash 并没有收到已安装的发行版消息的主要内容,如果未能解决你的问题,请参考以下文章

有没有办法仅使用键盘在 git bash(在 Windows 上)中复制文本?

如何在没有 Git Bash 或 GUI 的情况下在 Windows 10 上安装 git?

在 Windows 7 上使用 git-bash 更新文件权限

Docker - Bash:IP:命令未找到

如何从 Windows 任务调度程序在(ubuntu bash windows 10)上运行程序

如何从 bash 获取 telnet 命令的输出?