답변:
많은 사람들이 안정적인 테스트와 테스트를 혼합하는 것을 두려워하는 것처럼 보이지만 솔직히 테스트는 자체적으로 상당히 안정적이며 적절한 환경 설정 및 솔루션 검사를 통해 코어 패키지를 불안정한 경로에 놓는 "안정성 드리프트"를 피할 수 있습니다.
"테스트는 상당히 안정적입니까?" , 물어. 예. 패키지가 불안정에서 테스트로 마이그레이션 되려면 연속 10 일 동안 버그가 전혀 발생하지 않아야합니다. 특히 인기있는 패키지의 경우 무언가 잘못된 경우 불안정한 버전에 대한 버그 보고서를 제출할 가능성이 있습니다.
환경을 혼합하고 싶지 않더라도 안정적인 버전보다 최신 버전이 필요한 제품을 사용하는 경우 옵션을 사용하는 것이 좋습니다.
이것을 설정하기 위해 권장하는 것은 다음과 같습니다.
먼저 다음 파일을 작성하십시오 /etc/apt/preferences.d
.
stable.pref
:
# 500 <= P < 990: causes a version to be installed unless there is a
# version available belonging to the target release or the installed
# version is more recent
Package: *
Pin: release a=stable
Pin-Priority: 900
testing.pref
:
# 100 <= P < 500: causes a version to be installed unless there is a
# version available belonging to some other distribution or the installed
# version is more recent
Package: *
Pin: release a=testing
Pin-Priority: 400
unstable.pref
:
# 0 < P < 100: causes a version to be installed only if there is no
# installed version of the package
Package: *
Pin: release a=unstable
Pin-Priority: 50
experimental.pref
:
# 0 < P < 100: causes a version to be installed only if there is no
# installed version of the package
Package: *
Pin: release a=experimental
Pin-Priority: 1
(여기서 불안정하거나 실험적인 것들을 두려워하지 마십시오. 우선 순위는 그 물건을 자동으로 설치하지 않을 정도로 낮습니다. 테스팅 지점조차도 원하는 패키지를 설치하기 때문에 작동합니다. 테스트 중)
이제 다음에 대한 일치 세트를 작성하십시오 /etc/apt/sources.list.d
.
stable.list
: 원본에서 복사하십시오 /etc/apt/sources.list
. 이전 파일의 이름을 다음과 같이 바꾸십시오 sources.list.orig
.
testing.list
:를 stable.list
제외하고와 동일 testing
합니다.
unstable.list
:을 stable.list
제외하고와 동일 unstable
하고 보안 목록을 제거하십시오.
experimental.list
:를 unstable.list
제외하고와 동일 experimental
합니다.
이 모니 커는 다음 안정적인 사이클 전에 만료되고 사라지는 경향이 있지만 oldstable
in sources.lists.d
및 preferences.d
(1의 우선 순위 사용)을 추가 할 수도 있습니다 . 그러한 경우 http://archive.debian.org/debian/
데비안 버전 (에치, 레니 등)을 사용 하고 "하드 코딩" 할 수 있습니다 .
패키지의 테스트 버전을 설치하려면 간단히을 사용 aptitude install lib-foobar-package/testing
하거나 aptitude의 GUI로 이동하여 패키지 세부 정보 내에서 버전을 선택하십시오 (보고있는 패키지에서 enter 키를 누르십시오).
패키지 충돌에 대한 불만이 있으면 먼저 솔루션을 살펴보십시오. 대부분의 경우 첫 번째 버전은 "이 버전을 설치하지 마십시오"입니다. 패키지 당 수락 / 거부 해결 자 선택을 사용하는 방법을 배웁니다. 예를 들어, foobar-package / testing을 설치하고 첫 번째 솔루션이 "foobar-package / testing을 설치하지 마십시오"인 경우 해당 선택을 거부 된 것으로 표시하면 다른 솔루션은 해당 경로로 다시 연결되지 않습니다. 이런 경우에는 몇 가지 다른 테스트 패키지를 설치해야 할 것입니다.
libc 또는 커널 또는 다른 거대한 코어 시스템을 업그레이드하려고하는 것처럼 머리카락이 너무 털이 많으면 해당 업그레이드 경로를 거부하거나 초기 업그레이드를 완전히 취소 할 수 있습니다. 허용되는 경우에만 테스트 / 불안정으로 업그레이드 할 것입니다.
편집 : 일부 우선 순위 핀을 수정하고 목록을 업데이트했습니다.
apt-get update
구성 파일을 작성한 후 실행 했습니까 ?
sudo apt-get update
업데이트 오류가 발생했습니다. 그런 다음 다시 시작하여 나에게 Xsession error
다시 시작하고 다시 시작했는데 이제는 GUI가 없습니다. 는 /dev/sda1/
지금 가득 차있다. 큰.
에서하는 것은 /etc/apt/apt.conf.d
다음과 같은 파일을 추가
99defaultrelease
:
APT::Default-Release "stable";
에서 것은 /etc/apt/sources.list.d
- 시험 / 불안정 소스에 대한 URL을 추가
stable.list
:
deb http://ftp.de.debian.org/debian/ stable main contrib non-free
deb-src http://ftp.de.debian.org/debian/ stable main contrib non-free
deb http://security.debian.org/ stable/updates main contrib non-free
testing.list
:
deb http://ftp.de.debian.org/debian/ testing main contrib non-free
deb-src http://ftp.de.debian.org/debian/ testing main contrib non-free
deb http://security.debian.org/ testing/updates main contrib non-free
운영
apt-get update
그런 다음 필요한 것을 설치하십시오.
apt-get -t testing install something
의존성이 많은 것을 설치하는 경우 매우 조심하십시오. 프로덕션 환경에서는이 작업을 수행하지 않는 것이 좋습니다.
백 포트 또는 유사한 저장소 에서 운을 시험해 볼 수도 있습니다 .
apt_preferences
/ etc / apt / preferences 파일에서 시스템이 '안전 업그레이드'되어야하는 기본 레벨을 정의하십시오.
man apt_preferences
apt_preferences로 할 수있는 일은 많지만 단순성을 위해 ...
테스트에서만 사용할 수있는 단일 패키지 (autoMysqlBackup)를 설치해야했습니다. 해결책은 / etc / apt / preferences에 다음을 추가하는 것입니다.
Explanation: Uninstall or do not install any Debian-originated
Explanation: package versions other than those in the stable distro
Package: *
Pin: release a=stable
Pin-Priority: 900
Package: *
Pin: release o=Debian
Pin-Priority: -10
/etc/apt/sources.list에 여러 저장소가 추가되면 이후 릴리스 저장소 (이 경우 'stable')가 나열되어 있어도 적성이 지정된 릴리스로만 업그레이드됩니다.
deb http://mirror.aarnet.edu.au/debian/ lenny main
deb-src http://mirror.aarnet.edu.au/debian/ lenny main
deb http://mirror.aarnet.edu.au/debian/ squeeze main
deb-src http://mirror.aarnet.edu.au/debian/ squeeze main
따라서 해당 패키지를 설치하려면 다음을 수행해야합니다.
$ aptitude install -t testing packageName
그 가치가있는 것에 대해, 내가 항상 본 일반적인 조언은 "무엇과도 안정적으로 혼합하지 마십시오"입니다. 대부분의 혼합 시스템 자습서는 혼합 테스트 및 불안정을위한 것입니다.
안정적인 테스트와 테스트를 혼합하면 libc6과 같은 매우 기본적인 패키지는 업데이트를 요구하고 (테스트에서 소프트웨어를 설치하기 위해) 이러한 기본 패키지가 테스트로 이동하면 전체 시스템이 그런 식으로 표류 할 수 있기 때문입니다.
두 가지 대안이 있습니다.
데비안 문서는 주제에 광범위하며, 데비안 시스템의 아름다움을 실제로 공개 할 것이기 때문에 깊이 파고들 것을 강력히 권합니다.
혼합 시스템을 유지하는 방법을 살펴보면 필요한 모든 정보를 설명합니다.
Testing 또는 Sid에서 너무 많은 의존성을 설치하지 못하게하는 또 다른 방법은 다음과 같습니다. apt-get에게 Testing 또는 Sid에서 패키지의 소스를 가져오고 데비안 도구를 사용하여 시스템 용 패키지를 만들도록 지시합니다 (수동으로 땜질 할 필요가 없음) 소스와 함께).
여기에서 인용 :
https://wiki.debian.org/DebianUnstable#How_do_I_backport_a_sid_package_to_testing_or_stable.3F
sid 패키지를 테스트 또는 안정적으로 백 포트하려면 어떻게합니까?
데비안 소스 (및 개발 도구, 특히 debhelper, devscripts 및 build-essential)를 설치 한 다음 패키지를 빌드하십시오.
단계별 :
add a deb-src line for sid to your sources.list apt-get update apt-get build-dep PACKAGE_NAME apt-get -b source PACKAGE_NAME
결과 debs는 현재 디렉토리에 있어야하며 dpkg -i the.deb와 함께 설치할 수 있습니다.
나는 그것이 충분히 안전하고 편리해질 수 있다고 확신하기 위해 오랫동안 그것을 해왔습니다. 아래 설정을 사용하면 기본적으로 안정적인 버전이 설치되지만 원하는 경우 Aptitude에서 백 포트 또는 불안정한 버전을 선택할 수도 있습니다.
편집해야 할 4 가지 사항, 기본 고정 릴리스 설정, 소스가 백 포트 및 불안정한 추가 필요, 백 포트 / 불안정한 패키지의 고정 우선 순위를 낮추고 고정 표시를 표시하기 위해 적성 표시 설정을 수정해야합니다.
Apt :: default- 릴리스 "안정적";
# deb cdrom : [데비안 GNU / 리눅스 6.0.0 _Squeeze_-공식 다중 아키텍처 amd64 / i386 NETINST # 1 20110205-14 : 45] / squeeze main deb http://ftp.us.debian.org/debian/ 짜기 메인 deb-src http://ftp.us.debian.org/debian/ 스퀴즈 메인 deb http://security.debian.org/ squeeze / updates main deb-src http://security.debian.org/ squeeze / updates 메인 # 스퀴즈 업데이트, 이전에는 '휘발성' deb http://ftp.us.debian.org/debian/ squeeze-updates main deb-src http://ftp.us.debian.org/debian/ squeeze-updates main 스퀴즈 백 포트 # http://backports.debian.org/Instructions/ deb http://backports.debian.org/debian-backports squeeze-backports main # 불안정 # http://wiki.debian.org/AptPreferences deb http://ftp.us.debian.org/debian/ 불안정한 메인 deb-src http://ftp.us.debian.org/debian/ 불안정한 메인 # 무료가 아닌 ex. 태양 자바 #deb http://ftp.us.debian.org/debian/ squeeze non-free # deb-src http://ftp.us.debian.org/debian/ squeeze non-free
etc/apt/preferences
고정 파일 편집 -파일이 없으면 만듭니다.# 패키지 고정 우선 순위 # http://wiki.debian.org/AptPreferences 및 http://manpages.debian.net/cgi-bin/man.cgi?query=apt_preferences 참조 # # 너트 셸에서 가장 높은 PIN이 설치됩니다. # # 고정 기본 설정은 다음과 같이 설정에 추가됩니다. # 990-설치되지 않았지만 DO 버전은 'APT :: Default-Relase "stable"설정에 속합니다. # 500-설치되지 않았으며 대상 릴리스에 속하지 않는 버전의 경우 # 100-이미 설치된 패키지의 경우 동일한 패키지의 다른 버전도 의미합니다 # 1-실험 패키지; "NotAutomatic : yes"가 포함 된 패키지 # # 우리의 피닝 # 400-다른 패키지를 업데이트하지 않고도 안전하게 설치할 수있는 백 포트 # 50-불안정한 패키지, 세부 정보 화면에서 강제 설치하면 충돌이 발생할 수 있습니다 패키지 : * 핀 : 릴리스 n = 압착 백 포트 핀 우선 순위 : 400 패키지 : * 핀 : 릴리스 a = 불안정
적성 :: UI :: 패키지-디스플레이-형식 "% c % a % M % p % Z % v % V % i";
source.list
코드 이름을 말해야합니다 . 데비안의 정책 은 거의 안정적이며 패키지는 리포지토리 와 거의 비슷 합니다. 여기에 공간이 부족하므로 wiki.debian.org/DebianReleases , wiki.debian.org/StableUpdates 및 wiki.debian.org/StableProposedUpdates ; 마지막 두 개는 추가 리포지토리 소스입니다. jessie
squeeze
testing
unstable
선택한 패키지가 더 복잡하거나 여러 시스템에서 설치가 반복되는 경우 공식 리포지토리의 하위 집합을 미러링하는 개인 리포지토리 설정을 고려할 수 있습니다. 이를 위해서는 리포지토리를 구성하는 데 약간의 작업이 필요하지만 각 클라이언트에서 최소한의 구성과 수십 개의 설치를 수행 할 때 반복 가능한 결과로 보상을 쉽게 유지할 수 있습니다. 하나 또는 두 개의 패키지 만 설치하는 경우에도이 기능이 유용하며 클라우드 설치 자동화 및 유지 관리에이 방법을 사용합니다. 저렴한 VPS의 단일 서버는 수십 개의 개인 리포지토리를 처리 할 수 있습니다.
개인 저장소 서버를 구성하려면 다음을 수행하십시오.
# Install aptly.
apt-get install aptly
# Create local mirror (choose a source mirror near you).
aptly mirror create -filter="mirror-contains-no-packages" stretch-roundcube http://httpredir.debian.org/debian stretch main
# Configure filters for local mirror.
aptly mirror edit -filter="Name (% roundcube*)" stretch-roundcube
# Update local mirror.
aptly mirror update stretch-roundcube
# Drop previously published repositories and mirrors, if running these commands in a script.
aptly publish drop stretch
# Drop snapshot, if running these commands in a script.
aptly snapshot drop stretch-roundcube
# Create new snapshot.
aptly snapshot create stretch-roundcube from mirror stretch-roundcube
# Publish snapshot.
aptly publish snapshot -architectures=i386,amd64 -distribution=stretch -component=roundcube -label="Your Name" -origin="Your Name" stretch-roundcube
그런 다음 정적 저장소 파일을 제공하도록 선택한 웹 서버를 구성하십시오. 보안 인증서와 기본 인증으로 리포지토리를 보호 할 수 있습니다.
개인 저장소를 자동으로 유지 관리하고 업스트림에서 업데이트를 가져 오려면 위의 스크립트를 스크립트에 넣고 크론 작업에서 실행하십시오.
클라이언트 컴퓨터에서 클라이언트 컴퓨터를 구성하려면
# Configure private repository without authentication.
echo 'deb http://private.repository.example.com/ stretch roundcube' > /etc/apt/sources.list.d/private.repository.example.com.list
# Configure private repository with authentication.
echo 'deb https://hostname:password@private.repository.example.com/ stretch roundcube' > /etc/apt/sources.list.d/private.repository.example.com.list
apt-get install apt-transport-https
# Update.
apt-get update
# Install package.
apt-get install roundcube
클라이언트 시스템에서 클라이언트 시스템을 유지 보수하고 모든 개인 저장소 갱신 사항을 가져 오려면 다음을 수행하십시오.
# Update.
apt-get update
# Upgrade.
apt-get upgrade
또 다른 옵션은 테스트에서 소스 패키지를 다운로드하는 것입니다. APT는 소스 패키지를 다운로드 한 후 자동 빌드 할 수 있습니다. 이런 식으로 안정적인 패키지는 업데이트 테스트의 영향을받지 않습니다. 유일한 단점은 바이너리 패키지를 다운로드하고 설치하는 것보다 시간이 더 걸린다는 것입니다.
테스트에서 소스 패키지를 다운로드하도록 APT를 구성하려면 다음을 추가하십시오.
deb-src http://<your debian mirror here> testing main
현재 테스트 만 수행하고 향후 테스트는 수행하지 않으려면 "testing"을 현재 코드 이름으로 바꿉니다 (이 글을 쓰는 시점에서 "버스터").