【问题标题】:How to make an autoinstall command script for Debian如何为 Debian 制作自动安装命令脚本
【发布时间】:2020-01-18 23:55:05
【问题描述】:

所以我正在做一个需要一些库的项目。所以我决定制作一个 .sh 脚本来一次安装,但我不知道它为什么会失败。我正在搜索它,但只是找到了如何创建安装程序,如 .deb 等 这是我使用的命令行

install.sh

#!/bin/sh
sudo apt-get update  
sudo apt-get upgrade  
sudo apt-get install python3-pip python3-dev  
sudo apt-get install build-essential cmake git unzip pkg-config libopenblas-dev liblapack-dev  
sudo apt-get install python-numpy python-scipy python-matplotlib python aml  
sudo apt-get install libhdf5-serial-dev python-h5py  
sudo apt-get install graphviz  
sudo apt-get install python-opencv  
sudo apt install python-sklearn  
sudo apt install python3-sklearn   
pip3 install matplotlib
pip3 install pydot-ng
pip3 install tensorflow
pip3 install keras
pip3 install scikit-learn 

使用

bash install.sh

我明白了,我认为我做错了一些事情,我认为

E: The update command takes no arguments
Reading package lists... Done
Building dependency tree       
Reading state information... Done
E: Unable to locate package 
Reading package lists... Done
Building dependency tree       
Reading state information... Done
............

谁能帮帮我

【问题讨论】:

  • 您可以在实际脚本的行中使用sudo bash install.sh 并去掉sudo - 然后它将起作用。
  • 您可以在脚本顶部添加set -xe 以查找出现错误的行。您可以使用单个apt-get install 安装所有必要的软件包。同样适用于pip3 install
  • 多花点时间构建一个实际的 .deb 包是值得的。这将解决您当前的一些问题,并使您的软件更易于安装。此外,构建软件包是一项有用的技能。

标签: linux bash shell debian


【解决方案1】:

脚本开头的 shebang 用于引导脚本

您正在使用:

#!/bin/sh 

当这个脚本应该调用 bash 环境时:

#!/bin/bash

这应该可以解决您的问题。

正如塞尔吉奥所说,这些可以在一个衬垫中完成,例如:

#!/bin/bash

sudo apt-get update && sudo apt-get upgrade -y

sudo apt-get install -y python3-pip python3-dev  build-essential cmake git unzip pkg-config libopenblas-dev liblapack-dev python-numpy python-scipy python-matplotlib python aml libhdf5-serial-dev python-h5py graphviz python-opencv python-sklearn python3-sklearn

sudo pip3 install matplotlib pydot-ng tensorflow keras scikit-learn

至少使用数组来进行更高效的 bash 编程,如下所示:

#!/bin/bash

sudo apt-get update && sudo apt-get upgrade -y

aptDepends=( 
               python3-pip 
               python3-dev  
               build-essential 
               cmake 
               git 
               unzip 
               pkg-config
               libopenblas-dev
               liblapack-dev  
               python-numpy
               python-scipy
               python-matplotlib
               python 
               aml  
               libhdf5-serial-dev 
               python-h5py  
               graphviz  
               python-opencv  
               python-sklearn  
               python3-sklearn
           )

pipDepends=(
               matplotlib
               pydot-ng
               tensorflow
               keras
               scikit-learn
           )
sudo apt-get install -y "${aptDepends[@]}" && sudo pip3 install -y "${pipDepends[@]}"

【讨论】:

  • 哇,我没有意识到 bash,感谢您的所有帮助,真的很感谢它
最近更新 更多