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


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.