아래 설명된 대로 "packages.txt"(또는 원하는 항목)에서 apt-get 패키지를 일괄 설치하고 있습니다.파일을 사용하여 apt-get을 통해 패키지 설치.
"terminator" apt 패키지를 주석 처리합니다.
iceweasel
#terminator
vim
오류 발생:
The command '/bin/sh -c xargs -a /tmp/packages.txt apt-get install -y' returned a non-zero code: 123
반대로 여기처럼 Dockerfile 대신 Python에 대해 "requirements.txt"를 입력하면 #
.
RUN pip install --no-cache-dir --upgrade pip && \
pip install --no-cache-dir -r /tmp/requirements.txt
"requirements.txt" 사용:
python3-pip
mysql-client
#mysql-server
libmysqlclient-dev
python3-dotenv
결과: mysql-server
건너뛰었습니다.
"packages.txt"에서 적절한 패키지를 어떻게 주석 처리합니까?
답변1
패킷을 보내기 전에 패킷 목록을 필터링하십시오 xargs
.
grep -v '^#' /tmp/packages.txt | xargs -r sudo apt-get install -y
호출 -r
에 추가하면 모든 행이 주석 처리될 때 아무 일도 일어나지 않도록 합니다.xargs
packages.txt
답변2
일반 텍스트 파일 처리를 피하고 싶다면 다음을 packages.txt
개발했습니다.sysdep
도구바로 이 목적을 위해서입니다. toml
일반 텍스트 파일 대신 파일에서 읽는 간단한 도구입니다 . 이것은 다음 과 toml
같은 것을 만듭니다 apt
.pyproject.toml
cargo.toml
다음으로 다운로드
curl -L https://github.com/Benjamin-Tan/sysdep/releases/latest/download/sysdep-$(arch)-unknown-linux-gnu.tar.gz | tar -xz -C ~/.local/bin
만들다
system_dependencies.toml
[dependencies] apt = ["libpackage", "libpackage2"]
sysdep list
종속성을 나열하려면 "libpackage", "libpackage2"가 표시되어야 합니다.sysdep install
설치하세요sysdep
추가 옵션을 보여주는 도움말 페이지