이 Emacs 패키지는 왜 46.1 버전입니까? 오늘은 26 개가 가장 높은 주 버전입니다 26.0.50.aaron-1 100

나는 일부 문제를 해결하고 버그 수정을 업스트림하기를 원하기 때문에 내 자신의 이맥스를 만들고 있습니다. 그러나 우분투는 내 자신의 내장 이맥스를 자동으로 제거하므로 계속 다시 빌드하고 다시 설치해야합니다.

apt-cache policy emacs지난 밤에 잠자리 에 들었을 때 의 결과는 다음과 같습니다 .

~/emacs$ sudo apt-cache policy emacs
emacs:
  Installed: 26.0.50.aaron-1
  Candidate: 46.1
  Version table:
     46.1 500
        500 http://us.archive.ubuntu.com/ubuntu xenial/main amd64 Packages
        500 http://us.archive.ubuntu.com/ubuntu xenial/main i386 Packages
 *** 26.0.50.aaron-1 100
        100 /var/lib/dpkg/status

내가 깨어 났을 때입니다.

~/emacs$ sudo apt-cache policy emacs
[sudo] password for excelsiora:
emacs:
  Installed: 46.1
  Candidate: 46.1
  Version table:
 *** 46.1 500
        500 http://us.archive.ubuntu.com/ubuntu xenial/main amd64 Packages
        500 http://us.archive.ubuntu.com/ubuntu xenial/main i386 Packages
        100 /var/lib/dpkg/status

이 패키지가 24 또는 25 대신 46으로 버전이 지정된 이유는 무엇입니까? 26은 현재 얻을 수있는 가장 높은 주요 이맥스 버전입니다.

이것이 메타 패키지라는 것을 알 수 있습니다 : https://packages.debian.org/source/jessie/emacs-defaults

Ubuntu가 묻지 않고 소프트웨어를 업데이트하는 이유는 무엇입니까?

주요 질문 : 내가해야 할 일-패키지 버전을 46 이상으로 지정하여 고정시킵니다.

그것은 끔찍한 해킹처럼 보이거나 아마도 그것이 작동하는 방식일까요?



답변

여기에는 많은 문제와 질문이 있으므로 간략히 설명하지만 모두 다루려고합니다.

  • emacsemacs...우분투 (현재 emacs24) 의 최신 버전을 가리키는 메타 패키지 일뿐 입니다. “46.1”은 패키지 버전 일 뿐이며 오래된 emacs 패키지를 대체하기 위해 의도적으로 높습니다. apt show emacs좀 더 자세한 정보를 참조하십시오 .

  • emacs낮은 버전 번호 패키지로 해당 패키지를 재정의하고 있습니다. 우분투는 버전 번호로 설치된 패키지 버전을 우선시합니다. 설치 또는 업그레이드시 설치되는 것이 가장 높기 때문에 지속적으로 문제가 발생합니다.

    apt-cache policy emacs출력 에서 이것을 볼 수 있습니다 . 후보는 더 높은 버전입니다.

  • 버전 번호를 고정하거나 버전 번호 (46.1 이상)를 제거하여 우선 순위를 해결할 수 있지만 문제를 무시하고 emacs24패키지를 그대로 둘 수 있습니다 .

  • 가장 좋은 방법은 emacs패키지를 제거하고 대신 emacs25또는 emacs26패키지를 빌드하고 설치하는 것입니다. 당신은 또한 버전의 이름 패키지에 의존 이맥스 메타 패키지를 구축,하지만 그건 단지 허영이다. 배포를 계획하지 않는 한 그렇게하지 않을 것입니다.

  • “묻지 않고”우분투가하는 일에 대해서는 자동 업데이트가 켜져 있는지 확인하십시오. 최신 버전을 사용하는 것이 기본 동작이므로 이것이 기계의 유령이 아니라 “우분투가하는 일을 이해하지 못하는”경우 또는 더 나쁜 경우라고 생각합니다.

  • 그리고 “25 또는 26이 아닌 24 버전 인 이유”와 관련하여 Ubuntu와 Debian은 모두 안정적이고 테스트 된 소프트웨어 버전을 목표로합니다. 26 개는 아직 개발 중이며 2016 년 9 월까지 25 개가 나오지 않았습니다.

    또한 Ubuntu는 롤링 릴리스가 아니므로 24가있는 Ubuntu 버전은 Ubuntu 릴리스의 수명 동안 버전 24를 유지합니다 (정말로 미친 일이 발생하지 않는 한). 보안 패치는 필요한 경우 백 포트되어 적용되지만 여전히 24입니다.


답변

Ubuntu가 묻지 않고 소프트웨어를 업데이트하는 이유는 무엇입니까?

업데이트 관리자 (편집 메뉴)의 업데이트 정책 때문일 수 있습니다. 안정성과 보안 최적화라는 중간 옵션을 권장합니다. 마지막 옵션은 “항상 모든 것을 업데이트합니다”-원하지 않는 것입니다.

편집> 기본 설정> 블랙리스트에 포함 된 패키지 (AKA 무시 패키지)에서 “emacs-defaults”패키지를 블랙리스트에 추가 할 수도 있습니다.


답변

@Oli의 답변에 이어 다음과 같이 진행하십시오.

emacs 패키지를 제거하고 대신 emacs25 또는 emacs26 패키지를 빌드하고 설치하십시오.

  1. emacs.deb 파일을 찾으십시오. 나를 위해, 그것은 내 이맥스 소스 루트 폴더에 있었고 이름이emacs_25.1-1_amd64.deb
  2. 만들 새로운 데비안 패키지를 담을 디렉토리를 만드십시오 : $ mkdir emacs-rename
  3. 디렉토리에 데비안 패키지를 압축 해제하십시오 : $ ar -x emacs_25.1-1_amd64.deb emacs-rename/
  4. emacs-rename 디렉토리로 이동하십시오. $ cd emacs-rename
  5. 또한 추출 control.tar.gz 및 data.tar.xz : $ tar -xzf control.tar.gz$ tar -xf data.tar.xz
  6. 편집 control파일이 (아직 이맥스를 가지고 있지 않기 때문에) 나노와 결과 – $ nano control변화 Package: emacs에 대한 Package: emacs25(또는 26, 27 등)
  7. emacs-rename : 안에 DEBIAN 디렉토리를 작성하고 $ mkdir DEBIAN여기에 제어 파일을 복사하십시오.$ cp control DEBIAN/
  8. 디렉토리를 올라가서 emacs 소스 루트 ( $ cd ..)로 돌아가서을 실행하십시오 $ dpkg --build emacs-rename. 시간이 조금 걸릴 수 있습니다.
  9. 이제 emacs-rename.deb 패키지가 있어야합니다. 적절한 데비안 패키지 이름 지정 구조를 따르지 않는다는 것을 걱정하지 마십시오. 단지 사용 목적입니다. 함께 설치$ sudo dpkg -i emacs-rename.pkg
  10. 모든 것이 효과가 있다면 다음을 참조하십시오.

    emacs-rename.deb
    포장 풀기 준비 … emacs25 (25.1-1) 포장 풀기 … emacs25 (25.1-1)
    설정 …