Dlaczego ten pakiet Emacsa ma wersję 46.1? 26 jest obecnie najwyższą możliwą wersją główną

11

Tworzę własne emacsy, ponieważ chcę naprawić niektóre problemy i uzyskać poprawki wcześniej. Jednak Ubuntu ciągle automatycznie usuwa moje wbudowane emacsy i muszę nadal je przebudowywać i ponownie instalować.

Oto mój dorobek, apt-cache policy emacskiedy poszedłem spać ostatniej nocy:

~/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

Oto kiedy się budzę:

~/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

Dlaczego ten pakiet ma wersję 46 zamiast 24 lub 25? 26 jest obecnie najwyższą dostępną wersją emacsa.

Widzę, że jest to meta-pakiet: https://packages.debian.org/source/jessie/emacs-defaults

Dlaczego Ubuntu aktualizuje oprogramowanie bez pytania?

Główne pytanie: Co mam zrobić - przypisać mojej wersji pakietu liczbę wyższą niż 46 tylko po to, żeby się trzymała?

To wygląda na okropny hack, a może tak właśnie powinno działać?

Aaron Hall
źródło
2
Z dziennika zmian : „Ustaw wersję początkową wyższą niż jakikolwiek istniejący pakiet binarny emacs”.
muru
to mnie smuci. : /
Aaron Hall,

Odpowiedzi:

15

Jest tu wiele problemów i pytań, więc powiem krótko, ale postaram się je wszystkie omówić.

  • emacsjest tylko meta-pakietem, który wskazuje najnowszą wersję emacs...Ubuntu (obecnie emacs24). „46.1” to tylko wersja pakietu, celowo wysoka, aby zastąpić starsze pakiety emacsa. Zobacz apt show emacswięcej informacji.

  • Przesłaniasz ten emacspakiet pakietem o niższym numerze wersji. Ubuntu nadaje priorytet wersji pakietu zainstalowanej według numeru wersji. Najwyższy będzie ten, który zostanie zainstalowany (podczas instalowania lub aktualizacji), dlatego twój jest ciągle zalewany.

    Możesz to zobaczyć w danych apt-cache policy emacswyjściowych. Kandydat jest wyższą wersją.

  • Możesz obejść priorytety z przypinaniem lub fałszowaniem numeru wersji (coś powyżej 46.1), ale to raczej ignoruje problem (i może pozostawić emacs24pakiet na miejscu).

  • Najlepszą opcją jest usunięcie emacspakietu, a zamiast tego zbudowanie i zainstalowanie pakietu emacs25lub emacs26. Możesz także zbudować meta-pakiet emacs, który byłby zależny od pakietu wersja-w-nazwie, ale to tylko marność. Nie zrobiłbym tego, jeśli nie planujesz dystrybucji.

  • Jeśli chodzi o robienie rzeczy Ubuntu bez „bez pytania”, sprawdź, czy automatyczne aktualizacje są włączone. Uzyskiwanie najnowszej dostępnej opcji jest domyślnym zachowaniem, więc myślę, że jest to raczej przypadek „nie rozumienia, co robi Ubuntu”, a nie ducha w maszynie lub gorzej.

  • A jeśli chodzi o „dlaczego wersja 24, a nie 25 lub 26?”, Ubuntu i Debian pod nią dążą do stabilnych, przetestowanych wersji oprogramowania. 26 jest wciąż w fazie rozwoju, a 25 pojawiło się dopiero we wrześniu 2016 r.

    Ponadto Ubuntu nie jest wersją kroczącą, więc wersje Ubuntu z wersją 24 pozostaną w wersji 24 przez cały okres istnienia tych wersji Ubuntu (chyba że wydarzy się coś naprawdę szalonego). Poprawki zabezpieczeń zostaną w razie potrzeby cofnięte i zastosowane, ale nadal będzie to 24.

Oli
źródło
Nigdy nie pytałem „dlaczego wersja 24” (myślę, że odpowiedź na to jest oczywista) moje słowa brzmiały „dlaczego ta wersja” odnosząca się do 46, ale ponieważ było zbędne i mniej jasne niż poprzednie pytanie, usunąłem je. Tak czy inaczej, zmieniłem nazwę emacs26 na argument checkinstall - prawdopodobnie opublikuję rozwiązanie później. Plus jeden. I dzięki
Aaron Hall,
@Oli (+1) w kwestii twojego ostatniego punktu, czy jest dobry argument za tym, aby nie aktualizować Emacsa poza wersją, którą przybył z systemem operacyjnym? Czy znane są problemy ze stabilnością lub inne problemy? Pracuję na Ubuntu 16.04 LTS i chciałbym przejść do wersji Emacs 25.1.
n1k31t4
99 byłby lepszym numerem wersji.
Thorbjørn Ravn Andersen
0

Dlaczego Ubuntu aktualizuje oprogramowanie bez pytania?

Myślę, że może to wynikać z twoich Zasad aktualizacji w Menedżerze aktualizacji (menu Edycja). Polecam środkową opcję: Zoptymalizuj stabilność i bezpieczeństwo. Ostatnią opcją będzie „Zawsze aktualizuj wszystko” - czego nie chcesz.

Możesz także umieścić na czarnej liście pakiet „emacs-defaults” w menu Edycja> Preferencje> Pakiety z czarnej listy (pakiety zignorowane AKA).

Christopher J Poor
źródło
0

W odpowiedzi na odpowiedź @ Oli, oto jak sobie radzisz:

usuwając pakiet emacs i po prostu budując i instalując zamiast tego pakiet emacs25 lub emacs26.

  1. Znajdź swój plik emacs.deb. Dla mnie był w źródłowym folderze źródłowym emacsa i został nazwanyemacs_25.1-1_amd64.deb
  2. Utwórz katalog, w którym będzie przechowywany nowy pakiet debian, który zamierzasz utworzyć: $ mkdir emacs-rename
  3. Zarchiwizuj pakiet debian w katalogu: $ ar -x emacs_25.1-1_amd64.deb emacs-rename/
  4. Przejdź do katalogu emacs-rename: $ cd emacs-rename
  5. Następnie wyodrębnij control.tar.gz i data.tar.xz: $ tar -xzf control.tar.gzi$ tar -xf data.tar.xz
  6. Edytuj controlplik wynikowy za pomocą nano (ponieważ nie masz jeszcze emacsa;) - $ nano controli zmień Package: emacsna Package: emacs25(lub 26, 27 itd.)
  7. Utwórz katalog DEBIAN w emacs-rename: $ mkdir DEBIANi skopiuj tam plik kontrolny:$ cp control DEBIAN/
  8. Przejdź do katalogu, wróć do źródłowego emacsa root ( $ cd ..) i uruchom $ dpkg --build emacs-rename. To może chwilę potrwać.
  9. Powinieneś teraz mieć pakiet emacs-rename.deb. Nie martw się, że nie jest zgodny z odpowiednią strukturą nazewnictwa pakietów Debiana, jest tylko do użytku. Zainstaluj za pomocą$ sudo dpkg -i emacs-rename.pkg
  10. Jeśli wszystko działało, powinieneś zobaczyć:

    Przygotowanie do rozpakowania emacs-rename.deb ...
    Rozpakowanie emacs25 (25.1-1) ...
    Konfigurowanie emacs25 (25.1-1) ...

audiodude
źródło