로컬 APT 저장소의 이름을 바꾸는 방법은 무엇입니까?

로컬 APT 저장소의 이름을 바꾸는 방법은 무엇입니까?

나는 다음 단계를 따랐다.이 게시물사용자 정의 저장소를 만들었지만 이름을 바꾸고 싶습니다. 나는 이것을 할 방법을 찾을 수 없습니다. 도와주세요?

답변1

패키지 이름을 바꾸는 방법을 알고 싶은 것 같습니다. 이를 수행하는 방법에는 두 가지가 있습니다. 이 예에서는 이름을 cowsay다음으로 변경하겠습니다 .mysay

소스에서

데비안(또는 우분투) 소스 패키지를 다운로드하고, 필요에 따라 파일 이름을 바꾸고, 이전 이름을 디렉터리의 새 이름으로 바꿉니다 debian/*( sed이 줄이 수행하는 작업이 바로 이 작업입니다. 그런 다음 dpkg-buildpackage.

일부 패키지에는 패키지 이름에 따라 달라지는 빌드 규칙이 있을 수 있으며 owsay만큼 간단하지 않을 수 있으므로 주의하세요. 가장 어려운 선택이 될 수 있습니다.

apt source cowsay
mv cowsay-3.03+dfsg2 mysay-3.03+dfsg2
mv cowsay_3.03+dfsg2-8.dsc mysay_3.03+dfsg2-8.dsc
mv cowsay_3.03+dfsg2.orig.tar.gz mysay_3.03+dfsg2.orig.tar.gz
cd mysay-3.03+dfsg2/
sed -i 's/\bcowsay\b/mysay/g' debian/changelog debian/control
sed -i 's./debian/cowsay./debian/mysay.g' debian/rules
dpkg-buildpackage -uc -us

바이너리에서

수동으로 분할하려는 아카이브의 *.deb를 가져와서 control파일을 편집하고 다시 합치세요.

apt download cowsay
mkdir mysay && cd mysay

# Split everything up
ar -x ../cowsay_3.03+dfsg2-8_all.deb
mkdir control
tar -xf control.tar.xz -C control

# CHange the package name
sed -i 's/cowsay/mysay/' control/control

# Put the control file back togeather
cd control
tar -cf control.tar.xz *
mv control.tar.xz ../
cd ..
rm -r control

# Put the rest back togeather
ar r ../mysay_3.03+dfsg2-8_all.deb debian-binary control.tar.xz data.tar.xz

바이너리에서(방법 2)

이는 재조립 과정을 단순화합니다. 아마도 이것이 가장 쉬운 방법일 것입니다.

apt download cowsay
ar x cowsay_3.03+dfsg2-8_all.deb 
mkdir -p mysay/DEBIAN
tar -xf control.tar.xz -C mysay/DEBIAN
tar -xf data.tar.xz -C mysay/
sed -i 's/cowsay/mysay/' mysay/DEBIAN/control
dpkg-deb -b mysay

몇 가지 최종 참고사항:

  • 동일한 시스템에 설치 cowsay및 설치를 시도하면 mysay패키지 중 하나가 실패합니다. 이는 모두 동일한 파일을 제공하므로 시스템이 해당 파일의 소유자를 아는 것이 불가능하기 때문입니다. 한 가지 확실한 방법은 Conflicts: cowsay다음과 같습니다 mysay.

  • 패키지 이름을 바꾸는 것은 약간 이상합니다. 분명히 위의 충돌이 발생할 것입니다. 이것이 필요한 상황을 상상할 수 있을지 모르겠습니다.

관련 정보