응용 프로그램 설치 셸 스크립트는 어떻게 작성합니까?


39

누구나 응용 프로그램 목록을 설치하기 위해 쉘 스크립트를 작성하는 방법을 알고 있습니까? 새 시스템을 설치할 때마다 각 응용 프로그램을 수동으로 설치해야하는 것은 고통스러운 일입니다.

편집 : 여전히 나에게 묻습니다 Do you want to continue [Y/n]?. 스크립트를 입력 y하거나 입력하라는 메시지를 표시하지 않는 방법이 있습니까?


2
예전에는 '예'라는 프로그램이있었습니다. (그것은 STDOUT에 'y'를 연속적으로 썼다.)
Nathan Osman

답변:


38

스크립트가 다음과 같이 보일 것이라고 가정합니다.

#!/bin/sh
apt-get update  # To get the latest package lists
apt-get install <package name> -y
#etc.

install_my_apps.sh와 같은 이름으로 저장하고 파일의 속성을 변경하여 실행 가능하게 만든 다음 명령 줄에서 루트로 실행하십시오.

( 편집 :-y이야기 apt-get를 묻는 메시지가 그냥 설치에 착수하지)


실행 가능하게 만드는 방법? 다음과 같이 실행한다고 가정합니다. sudo ./install_my_apps.sh
jumpnett

나는 그것을 실행 가능하게 만들어야하는지 확실하지 않습니다 (나는 파이썬 사람입니다 .BASH에별로 많지 않습니다). 그러나 필요한 경우를 사용하여 실행할 수 있습니다 chmod +x ./install_my_apps.sh.
Michael Crenshaw

또는 마우스 오른쪽 버튼으로 클릭하고 "속성"을 선택하십시오. 열린 창에서 "권한"탭으로 이동하여 "파일을 프로그램으로 실행 허용"이라는 확인란을 선택하십시오
jfoucher

6
왜 이것이 CW인지 모르겠지만 어쨌든 편집하여 -y깃발 을 넣었습니다 . 참고 : 더 선명하게 보이게하려면 --yes또는 --assume-yes대신에 사용할 수 있습니다 -y.
Umang

20

질문에 따르면 가장 쉬운 스크립트는 다음과 같습니다.

#!/bin/sh
LIST_OF_APPS="a b c d e"

aptitude update
aptitude install -y $LIST_OF_APPS

그러나을 입력 할 수도 있습니다 aptitude update && aptitude install -y a b c d e. 따라서 귀하의 질문에 중요한 요점이 누락되었을 수 있습니다. 몇 가지 추가 요구 사항이 있으면이를 설명하는 것이 좋습니다.


1
apt-get은 선호하는 경우 적성을 대체 할 수 있습니다. "aptitude"의 두 인스턴스를 모두 "apt-get"으로 바꾸십시오.
Michael Crenshaw

12

파일 (example.list)에 앱 목록을 만들고 실행하십시오.

cat example.list | xargs sudo apt-get -y install

대단해. 전에 패키지 목록을 apt에 공급하는 방법을 몰랐습니다!
Thufir

xargs는 파이프 라인을 인수로 추가하여 파이프 라인을 명령에 공급합니다.
Xerus

2

다음 스크립트를 선택합니다. vim install

#!/bin/bash
apt-get update  # To get the latest package lists
apt-get install $1 -y

그런 다음 위의 스크립트를 실행 가능하게 만들어야합니다 chmod +x install. 그런 다음 사용하려면 다음을 입력하십시오 ./install <package_name>.. 예:./install clang


1
파일에 나열된 모든 프로그램을 원했습니다. 이 방법을 사용하면 여전히 프로그램 이름을 명령 줄 인수로 입력해야하므로 실제로 이점이 없습니다.
jumpnett

1
@ jumpnett Lol, 나는 목록 포인트를 놓쳤다. 나는 카페인이 부족하기 시작하고 그것을 보여줍니다. 미안 해요 답변을 업데이트 할 수 있습니다.
NlightNFotis

또한 update모든 프로그램을 설치하고 시간을 소비 할 때마다 실행 됩니다. 그리고 그것은 필요합니다 sudo.
Gauthier

이것은 매우 불필요합니다. 당신은뿐만 아니라 넣을 수있는 alias install='sudo apt-get install -y'당신에.bash_aliases
Xerus

-1
#!/bin/bash

set -eu -o pipefail # fail on error , debug all lines

sudo -n true
test $? -eq 0 || exit 1 "you should have sudo priveledge to run this script"

echo installing the must-have pre-requisites
while read -r p ; do sudo apt-get install -y $p ; done < <(cat << "EOF"
    perl
    zip unzip
    exuberant-ctags
    mutt
    libxml-atom-perl
    postgresql-9.6
    libdbd-pgsql
    curl
    wget
    libwww-curl-perl
EOF
)

echo installing the nice-to-have pre-requisites
echo you have 5 seconds to proceed ...
echo or
echo hit Ctrl+C to quit
echo -e "\n"
sleep 6

sudo apt-get install -y tig

1
설명을 추가하고 모든 오타 수정
Xerus

당신의 의견에 어느 줄이 설명이 필요합니까?!
Yordan Georgiev

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.