설치된 모든 패키지의 소스 패키지를 다운로드하는 방법은 무엇입니까?

설치된 모든 패키지의 소스 패키지를 다운로드하는 방법은 무엇입니까?

설치된 모든 패키지의 소스 패키지를 디렉터리에 다운로드하려면 어떤 적절한 주문을 사용해야 합니까? (설치된 Ubuntu 시스템을 컴퓨터와 함께 다른 사람에게 제공할 때 사용 사례는 GPL 준수입니다.)

답변1

이 시도..

설치된 모든 패키지의 소스를 다운로드할 디렉터리를 만들고 입력하세요.

mkdir source; cd source

라는 이름의 파일을 생성합니다.getsource.sh

getsource.sh

#!/bin/bash
dpkg --get-selections | while read line
do
        package=`echo $line | awk '{print $1}'`
        mkdir $package
        cd $package
        apt-get -q source $package
        cd ..
done

실행 가능하게 만드세요.

chmod a+x getsource.sh

실행해 보세요..

./getsource.sh

그리고 커피 한잔 드세요 :)

답변2

대안은 소스 CD를 나눠주는 것일 수도 있습니다.

답변3

Ubuntu에서는 다음 명령을 참조하십시오.

apt-get source package-name

일반 사용자 로만 사용하는 것이 좋습니다 apt-get source. 루트 권한 없이도 소스 패키지의 파일을 편집할 수 있기 때문입니다.

답변4

허용되는 답변과 Unix Stack Exchange의 연결된 더 나은 답변에는 몇 가지 문제가 있습니다. 다음은 주석이 포함된 개선되고 테스트된 스크립트입니다.

#!/bin/bash

# ${Source} doesn't always show the source package name, ${source:Package} does.
# Multiple packages can have the same source, sort -u eliminates duplicates.
dpkg-query -f '${source:Package}\n' -W | sort -u | while read p; do
    mkdir -p $p
    pushd $p

    # -qq very quiet, pushd provides cleaner progress.
    # -d download compressed sources only, do not extract.
    apt-get -qq -d source $p

    popd
done

루트가 아닌 사용자로 실행합니다( _apt작동). 오류는 사용 가능한 소스가 없는 패키지를 나타낼 수 있으므로 주의하세요. 2>err.log나중에 수동으로 구문 분석하기 위해 스크립트를 실행할 수도 있습니다 .

관련 정보