데비안 시스템에서 BASH를 사용하여 배치 .debs 설치

데비안 시스템에서 BASH를 사용하여 배치 .debs 설치

배경: MX 19.3 시스템에 WINE을 오프라인으로 설치하는 방법을 알아보려고 합니다. 나는 큰 어려움을 겪었습니다. 나는 소스에서 빌드할 수 없는 것 같습니다(나는 결코 좋아하지 않습니다). 나는 크기에 신경 쓰지 않고 내 자신의 오프라인 저장소를 유지하고 가능하다면 필요한 모든 DLL을 다운로드하여 필요한 경우 오프라인으로 설치할 수 있습니다. 내가 찾은 가장 가까운 방법은 MX 패키지 설치 프로그램을 사용하여 /var/cache/apt/archives/.debs를 오프라인 시스템에 복사하는 것입니다(이 debs를 /etc/apt/sources에 복사할 위치를 추가합니다). 오프라인 PC에서 list.d/mysources.list를 실행하고 sudo apt-get update를 실행)과 MX 설치 프로그램에서 생성된 파일 목록을 보면 아래와 같이 145개가 있습니다.

libaom0:i386 (1.0.0-3)
libasound2-plugins:i386 (1.1.8-1)
libasound2:i386 (1.1.8-1)
libasyncns0:i386 (0.8-6)
libatomic1:i386 (8.3.0-6)....

이제 MX 패키지 설치 프로그램의 출력에서 ​​복사한 목록을 사용하여 오프라인 PC(예: sudo apt-get install libaom0:i386)의 터미널을 통해 하나씩 설치하면 제대로 설치되는 것 같습니다. 그런데 한번에 다 설치하려고 하면 잘 안되네요. 어떤 이유로 온라인 저장소에도 액세스하려고 시도하는 것 같습니다. 터미널에 하나씩 붙여넣는 것은 실제로 실용적인 해결책이 아닙니다. 내가 시도한 세 가지 예는 다음과 같습니다.

sudo apt-get install libaom0:i386 && \
libasound2-plugins:i386 && \ 
libasound2:i386 && \
libasyncns0:i386 && \
libatomic1:i386 .....


sudo apt-get install libaom0:i386 \
sudo apt-get install libasound2-plugins:i386 \ 
sudo apt-get install libasound2:i386 \
sudo apt-get install libasyncns0:i386 \
sudo apt-get install libatomic1:i386 .....


sudo apt-get install libaom0:i386 && \
sudo apt-get install libasound2-plugins:i386 && \ 
sudo apt-get install libasound2:i386 && \
sudo apt-get install libasyncns0:i386 && \
sudo apt-get install libatomic1:i386 .....

그러나 위의 모든 것에는 문제가 있습니다. 나는 아직 BASH를 잘 하지 못합니다. 각 줄을 터미널에 새로 붙여넣은 것으로 처리되도록 루프를 반복하는 방법이 있습니까? 아니면 더 나은 방법은 전체 내용을 터미널에 붙여넣을 수 있도록 위의 내용을 조정하는 것입니다. 터미널; 각 라인을 개별적으로 처리하도록 분리하면 모두 설치될 것 같은 느낌이 들기 때문입니다. 사실 저는 MX 패키지 설치 프로그램의 기능을 다시 만들고 싶습니다.

미리 감사드립니다!

답변1

awk '{print $1}' file |
    while read -r package
    do
        sudo apt -y install "$package"
    done

file확인을 요청하지 않고 패키지를 하나씩 읽고 설치하는 while 루프입니다 ( -y옵션이 적절함).

또는:

xargs sudo apt install -y < <(awk '{print $1}' file)

관련 정보