apt-get install不能在脚本中工作

我创build了一个小脚本来安装一组linux桌面。

奇怪的apt-get安装总是失败,并告诉我,包没有被发现。 这是我的脚本:

#! /bin/bash sudo apt-get install python-software-properties sudo apt-get update sudo add-apt-repository ppa:pitti/postgresql sudo apt-get install xfce4 postgresql-9.0 pgadmin3 chromium-browser wine iftop 

我能做些什么来解决这个问题?

谢谢 。

脚本的第一行。 删除空间。

 #!/bin/bash 

还有@Shane说:在一个脚本上,你可能想用-y来自动化这个过程。

更新
在尝试运行之前是否运行过chmod +x scriptname ? 你可以请你发布确切的错误吗?

如果您尝试从该PPA存储库安装某些内容,那么您的apt-get update应该在添加回购之后发生,而不是之前。

您也需要在可能的交互式步骤中使用-y

你也应该先更新apt-get,然后安装,这样脚本应该看起来像

 #! /bin/bash sudo add-apt-repository ppa:pitti/postgresql sudo apt-get update sudo apt-get install python-software-properties sudo apt-get install xfce4 postgresql-9.0 pgadmin3 chromium-browser wine iftop 

然后使文件可执行

 chmod 755 script 

开始使用系统pipe理脚本的版本控制。 这将有助于突出显示由@ volker238引发的问题。

特别是像Mercurial或Git这样的分布式系统将有助于正确地获得代码。 两者都将跨平台正确转换行尾。

有几次,当我收到其他人的复制/粘贴贡献的时候, hg log告诉我shell在抱怨语法错误时到底发生了什么变化,没有什么明显的可见的。

如果你想进一步扩大规模,把它与chefpuppet结合起来,为你的系统创build可重复的部署计划。

我有完全相同的问题。 解决这个问题的关键是第一行#!/bin/sh 。 我正在Windows机器上写我的脚本,而Ubuntu的机器是虚拟机。 一些Windows系列的结局搞砸了我。 我在这里引用了dos2unix来修复它 。