Kto zainstalował ten Emacsa?

6

Mam:

$ /Applications/Emacs.app/Contents/MacOS/Emacs --version
GNU Emacs 24.3.1
$ /usr/bin/emacs --version
GNU Emacs 22.1.1

Jak pozbyć się drugiej instalacji Emacsa?

sds
źródło
2
Ta strona działa lepiej, jeśli ograniczysz pytania do zadawania tylko jednej rzeczy. W przeciwnym razie nie będziesz w stanie zaakceptować jednej odpowiedzi, jeśli dobre odpowiedzi na kilka pytań częściowych zostaną rozłożone na kilka odpowiedzi. Ale nie ma ograniczenia co do liczby pytań, które możesz zadać, więc po prostu zadaj nowe, bo cokolwiek zostało tutaj upuszczone i nadal wymaga odpowiedzi.
nohillside

Odpowiedzi:

9

Drugi emacsprzyszedł z OS X. Do plików, które są logowane w bazie danych pakietów, możesz użyć pkgutil:

$ pkgutil --file-info /usr/bin/emacs
volume: /
path: /usr/bin/emacs

pkgid: com.apple.pkg.BSD
pkg-version: 10.9.0.1.1.1306847324
install-time: 1382483268
uid: 0
gid: 0
mode: 555

Listę pakietów można uzyskać za pośrednictwem pkgutil --packages. Należy jednak pamiętać, że - ponownie - dotyczy to tylko elementów w bazie danych pakietów.

Nie należy modyfikować elementów wchodzących w skład podstawowego systemu operacyjnego. Jeśli wolisz, aby lokalnie zainstalowany program zastępował program dostarczony z systemem operacyjnym, powinieneś dostosować go tak, PATHaby wolał ten program przed /usr/binsprawdzeniem ścieżek systemowych .

Jednym ze sposobów na to jest /usr/local/binbycie pierwszym na swojej ścieżce i połączenie swojej /Applicationswersji emacsa, aby /usr/local/binbył on wywoływany jako pierwszy, chyba że program wyraźnie wywoła/usr/bin/emacs

zigg
źródło
4

Plik /usr/bin/emacsjest instalowany jako część systemu Mac OS X. Zasadniczo zmiana lub modyfikacja plików zainstalowanych jako część domyślnej instalacji systemu operacyjnego nie jest dobrym pomysłem; inne programy mogą polegać na ich obecności.

Narzędzia zainstalowane jako część systemu operacyjnego mogą być wywoływane przez inne programy z oczekiwaniem, że zainstalowana wersja będzie zgodna ze specyfikacją systemu operacyjnego. Usunięcie ich lub zastąpienie inną wersją może spowodować, że inne programy nie będą działać zgodnie z przeznaczeniem.

Daniel
źródło
Mogę zastąpić /usr/bin/emacdowiązaniem symbolicznym do /Applications/Emacs.app/Contents/MacOS/Emacs, prawda?
sds
3
@sds Nie jest to dobry pomysł. Dostosuj swoją PATHwolą swoją Emacs.appwersję zamiast.
zigg,
Chcesz /usr/bin/emacswywołać domyślną wersję. Możesz bezpiecznie zainstalować własne programy w /usr/local/bin. Jeśli chcesz, aby twoje własne programy zapobiegały wersjom systemowym, upewnij się, że /usr/local/binjest to wcześniejsza ścieżka niż /usr/bini /bin, ale ostrzegaj, że stwarza to lukę w zabezpieczeniach, jeśli ktoś z uprawnieniami administratora w twoim systemie zainstaluje /usr/local/binwersję innego programu z nieoczekiwanymi wynikami.
Daniel