이 설치 스크립트는 대부분의 프로그램에서 오류를 발생시킵니다 Unable to locate package
.
#! /bin/bash
apps=(
'python-dev',
'python-pip',
'python-numpy',
'python-scipy',
'python-matplotlib',
'ipython',
'ipython-notebook',
'python-pandas',
'python-sympy',
'python-nose',
'python-picamera',
'openssh-client',
'openssh-server',
'vim'
)
sudo apt-get update
# Loop over apps and install each one with default 'yes' flag
for app in "${apps[@]}"
do
sudo apt-get install $app -y
done
# configure ssh
sudo cp /etc/ssh/sshd_confi /etc/ssh/sshd_config.original
sudo chmod a-w /etc/ssh/sshd_config.original
piplist=(
'networkx',
'scikit-image'
)
for app in "${piplist[@]}"
do
sudo pip install -U $app
done
vim만 설치되어 있습니다. 그래서 내 저장소 목록이 업데이트되지 않은 것 같지만 이것이 "sudo apt-get update"의 목적이라고 생각합니다.
실행하면 sudo apt-get install python-dev
스크립트 외부에 패키지가 설치됩니다.
답변1
$app이 vim이 아닌 패키지 이름에 쉼표를 추가하는 것 같습니다. 앱에서 쉼표를 삭제해 보세요.
아니면 시도해 보세요
sudo apt-get install $(echo $app | sed 's/,//g') -y
바꾸다
sudo apt-get install $app -y
그리고
sudo pip install -U $(echo $app | sed 's/,//g')
바꾸다
sudo pip install -U $app
답변2
내가 교체해야 할 Milin의 대답이 해결책 sudo apt-get install $app -y
입니다 .sudo apt-get install $(echo $app | sed 's/,//g') -y
답변3
배열의 각 구성원 뒤에 오는 모든 쉼표( )를 제거하면 명령을 다른 방식으로 수정할 ,
필요가 없습니다 . apt-get install
따라서 스크립트는 다음과 같을 수 있습니다.
#!/bin/bash
apps=(
'python-dev'
'python-pip'
'python-numpy'
'python-scipy'
'python-matplotlib'
'ipython'
'ipython-notebook'
'python-pandas'
'python-sympy'
'python-nose'
'python-picamera'
'openssh-client'
'openssh-server'
'vim'
)
sudo apt-get update
# Loop over apps and install each one with default 'yes' flag
for app in "${apps[@]}"
do
sudo apt-get install $app -y
done