![apt-get install 在脚本中不起作用](https://linux22.com/image/562927/apt-get%20install%20%E5%9C%A8%E8%84%9A%E6%9C%AC%E4%B8%AD%E4%B8%8D%E8%B5%B7%E4%BD%9C%E7%94%A8.png)
我创建了一个安装一组 Linux Paquet 的小脚本。
奇怪的是,apt-get install 总是失败,并告诉我未找到该包。这是我的脚本:
#! /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
我该如何修复此问题?
谢谢 。
答案1
脚本的第一行。删除空格。
#!/bin/bash
@Shane 也说过:您可能希望使用脚本-y
来自动化该过程。
更新
在尝试运行之前,您是否运行过chmod +x scriptname
?您可以发布您遇到的确切错误吗?
答案2
如果您尝试从该 PPA 存储库安装某些内容,则apt-get update
应该在添加存储库之后进行,而不是之前。
您也可能需要了解-y
潜在的交互步骤。
答案3
我遇到了完全相同的问题。解决这个问题的真正关键是第一行的错误#!/bin/sh
。我在 Windows 机器上编写脚本,Ubuntu 机器是虚拟机。一些 Windows 行尾让我感到困惑。我按照dos2unix
此处的说明修复了它。
答案4
开始对系统管理脚本使用版本控制。这将有助于突出显示@volker238 提出的问题。
尤其是像 Mercurial 或 Git 这样的分布式系统将有助于正确传输代码。两者都可以跨平台正确转换行尾。
有几次,当我收到其他人的复制/粘贴贡献时,hg log
当 shell 抱怨语法错误时,他们准确地告诉我发生了什么变化,但却看不到任何明显的变化。
如果您想要进一步扩大规模,可将其与chef
或结合起来puppet
,为您的系统创建可重复的部署计划。