在WSL上使用自定义Shell脚本安装软件包的问题

时间:2019-08-03 09:36:48

标签: bash shell ubuntu ubuntu-18.04 windows-subsystem-for-linux

我正在Windows 10计算机上使用Ubuntu 18.04设置WSL安装。我要完成的工作是拥有一个shell脚本,该脚本可以在Ubuntu实例(Node,Yarn,Git-flow等)上安装所有软件包,配置等。看来,从我的shell脚本运行的唯一命令是sudo apt-get update,因为实际上我在控制台中从中获得了反馈(请参阅下面发布的代码)。其他所有脚本/命令均失败或出现错误。我对编写Shell脚本还很陌生,所以我可能忽略了一些至关重要的事情。

到目前为止,我所做的是安装了Ubuntu 18.04的新版本。创建一个新用户和一个密码。之后,在我的文件夹窗口 D:驱动器上创建一个symlink,我希望在其中存储我所有的开发项目。

符号链接:ln -s /mnt/d/development。现在,它在我的WSL根目录@Development -> /mnt/d/Development中显示为~

很奇怪,当我尝试使用sudo apt-get git-flowsudo apt search git-glow安装或搜索软件包时,都可以找到它并按预期进行安装。

注意:这是Ubuntu 18.04的全新安装,并且我没有配置或触摸/env中的任何其他文件或其他系统文件。

在WSL上为Ubuntu设置shell脚本时,我主要遵循了其他“入门”示例。但不幸的是,导致了上述相同的问题。我有一个wsl_setup.sh文件,该文件位于Windows驱动器上的D:\wsl_setup.sh上。我想做的是打开Ubuntu终端,并从根(用户)执行脚本; martin@Windows-PC: ~$ sh /mnt/d/wsl_setup.sh

这是Shell脚本的精简版,但仍然会失败。

#!/bin/bash
# Download the updated package list for your installed repositories and dependencies to their newest version.
sudo apt-get update
# Installing Git
sudo apt-get install git
# Install git-flow AVH
sudo apt-get install git-flow

在一个完美的世界中,我想让这个shell脚本执行我的所有软件包安装,而不是在Ubuntu终端中手动执行此操作。为什么要尝试完成此操作,其中一个用例就是如果我需要重新格式化或安装WSL,则可以运行此脚本并立即备份并运行。

运行上面提到的脚本时遇到的错误/问题如下:

E: Invalid operation update
Reading package lists... Done
Building dependency tree
Reading state information... Done
E: Unable to locate package git
Reading package lists... Done
Building dependency tree
Reading state information... Done
E: Unable to locate package git-flow

1 个答案:

答案 0 :(得分:0)

您在使用apt-get更新时遇到问题,请检查其输出。有时存储库已关闭;您需要稍后再检查。另外,请检查您的互联网连接。这是您脚本的改进:

#!/bin/bash
# Download the updated package list for your installed repositories and dependencies to their newest version.
sudo apt-get update
# Installing Git
sudo apt-get -y -q install git
# Install git-flow AVH
sudo apt-get -y -q install git-flow

致谢