답변:
편집 :
serverfault 질문 에서 이것을 발견했습니다 . (가) 경우 dpkg-reconfigure foo
작동하지 않습니다, 이것을 사용 :
손상된 구성 파일을 제거하거나 이름을 바꾸십시오.
sudo mv /etc/samba/smb.conf /etc/samba/smb.conf.broken
에서 교체를 요청하십시오 dpkg
.
sudo dpkg -i --force-confmiss /path/to/samba-common.deb
이 이야기 dpkg
뎁의 사람들과 누락 된 구성 파일을 대체 할 수 있습니다. 에서 원본 패키지 .deb를 찾 /var/cache/apt/archives
거나 배포 리포지토리에서 동일한 버전의 새로운 복사본을 사용할 수 있습니다.
dpkg -i --force-confnew foo.deb
이 이야기 dpkg
뎁의 사람들과 기존 구성 파일을 덮어 쓸 수 있습니다. 에서 원본 패키지 .deb를 찾 /var/cache/apt/archives
거나 배포 리포지토리에서 동일한 버전의 새로운 복사본을 사용할 수 있습니다.
dpkg
구성 파일을 덮어 씁니다 . 패키지에서 원래 구성 파일을 마술처럼 다시 만들지 는 않습니다 .
--force-confmiss
대신에 당신이 원합니다 . 이 특별한 경우 (예 : 삼바) --force-confnew
덮어 쓰기를 수행 한다고 생각 하지만 패키지 구성 스크립트의 특정 사항에 따라 달라집니다.
짧은 대답 : /usr/share/samba/smb.conf
smb.conf 파일의 원래 버전입니다.
패키지에 대해이 상황에 직면하면 내가하는 일은 다음 중 하나입니다.
편집기에서 원본 버전의 백업 파일을 확인하십시오 . 나는 일반적으로 foo~
파일을 남기는 Emacs를 사용 하고 숫자 버전 제어 옵션을 설정하여 원래 버전은 항상 foo.~1~
입니다. 그러나 다른 방법으로했거나 다른 편집기를 사용했을 수도 있습니다. 이 기능을 켜려면 편집기 구성을 확인하십시오 (아직없는 경우). 들어가는 것이 좋은 습관입니다.
로 패키지 를 재구성하십시오dpkg-reconfigure PACKAGENAME
. 때때로 이것은 트릭을 수행합니다. 내 경험 상으로는 거의 작동하지 않습니다. 패키지가 구성 파일을 작성하는 방법에 따라 다릅니다.
제거 및 재설치는 패키지 (함께 apt-get purge packagename
다음을 apt-get install packagename
). 항상 작동해야합니다.
극단적 인 경우 제거 후 패키지를 다시 설치하기 전에 구성 파일을 수동으로 찾아 삭제해야합니다. 그러나 이렇게하면 패키지의 다른 데이터 및 / 또는 구성 파일이 제거되므로 항상 허용되는 것은 아닙니다.
패키지 ( apt-get source foo
) 의 소스 코드를 다운로드하여 원본 구성 파일이 파일로 존재하는지 확인하십시오. 그러나 구성 파일은 미리 존재하지 않지만 설치시 패키지의 설치 후 스크립트에 의해 작성 될 수 있습니다.
패키지 ( /var/lib/dpkg/info/foo.postinst
)에 대한 postinst 스크립트를 확인하여 구성 파일을 작성하는 위치와 수행 방법을 찾으십시오. 그런 다음 프로세스를 수동으로 반복하십시오. 이것은 약간의 작업이며 항상 쉬운 것은 아닙니다.
sudo cp /usr/share/samba/smb.conf /etc/samba/smb.conf
휴지통에있는 conf 파일을 원본으로 덮어 쓰는 작업이었습니다 .
dpkg-reconfigure <package>
변경된 conf 파일은 기본적으로 수정되지 않습니다.
아마도 apt 캐시에 패키지가 여전히있는 경우이 작업을 수행하는 가장 쉬운 방법은 실행하는 것입니다
dpgk -i --force-confask /var/cache/apt/archives/<package file name>
패키지 파일 이름은 일반적으로 다음과 같습니다 <package name>_<version>.deb
(탭 완성 사용). 이것은 apt-upgrade와 동일한 프로세스를 거치며 변경된 conf 파일을 발견 할 때 수행 할 작업을 묻습니다. N
모든 프롬프트에서 입력하십시오 . dpkg는 .dpkg-dist
파일 이름의 끝에 conf 파일의 패키지 버전을 설치합니다 . 그런 다음 vimdiff
또는 다른 병합 도구를 사용하여 차이점을 비교하고 읽기 conf 파일을 수정할 수 있습니다.
/var/cache/apt/archives/
없지만 ...
deb를 추출하고 원본 파일을 가져올 수 있습니다.
ar p packagename.deb data.tar.gz | tar zx
dpkg-source
이 더 쉽고 사용 apt-get source PACKAGE
이 훨씬 쉽습니다.
packagename.postinst
스크립트 에서 구성 파일을 자동 생성합니다 .
다음 smb.conf
과 같이 원래 구성 파일을 복원 할 수 있습니다 .
# cp /usr/share/samba/smb.conf /etc/samba/smb.conf
# dpkg-reconfigure samba-common
이것은 기본적으로 원래 패키지 설치 과정 (Debian Squeeze에서 수행)입니다.
현재를 덮어 쓰므 smb.conf
로 잃어 버리지 않으려면 먼저 백업하십시오.
deb 패키지의 내용을 다시 다운로드하고 추출 할 수 있습니다
$ sudo cp /usr/share/samba/smb.conf /etc/samba/smb.conf
과
$ sudo dpkg --configure -a
일을 할 것입니다.
sudo cp /usr/share/samba/smb.conf /etc/samba/smb.conf