Zainstalować emacsa bez sudo?

23

Używam vima od lat i nie podoba mi się to.

Chciałbym wypróbować emacsa przez jakiś czas, ale nie jest on zainstalowany na żadnym z serwerów linuksowych, z których regularnie korzystam. Nie mam roota, więc apt-get installnie ma opcji (ani nie mogę prosić administratora o pozwolenie, zdecydowanie powiedziałby „nie”).

Czy w moim katalogu domowym mogę zainstalować binarną wersję emacsa? Większość serwerów działa w CentOS.

Abhi Beckert
źródło
Czy masz narzędzia do kompilacji? Nie może być zbyt trudne do skompilowania z odpowiednimi flagami, zobacz to pytanie dla wskaźników i uruchom je bezpośrednio z folderu domowego.
Journeyman Geek
@JourneymanGeek tak, gcc wydaje się być dostępny dla mojego użytkownika przynajmniej na niektórych serwerach. Nigdy tego nie testowałem. Trochę się denerwuję, że make installdziałam, bo robi to coś, o co wkurzyłby się sysadmin ... Codziennie pracuję z serwerami produkcyjnymi i nie jestem tym, który musi się obudzić o drugiej w nocy, jeśli coś pójdzie nie tak.
Abhi Beckert,
Pozytywnie oceniany za to, że obawia się, że twój sysadmin ma dobry sen; spędziłem kilka lat w tej roli, między innymi, chciałbym, aby więcej moich użytkowników miało podobne obawy.
Aaron Miller
Powiązane, patrz Minimalna instalacja emacs24 na Ubuntu . Pokazuje, jak skonfigurować i zbudować emacsa ze źródeł, co zajmuje niewiele miejsca. Zazwyczaj zajmuje mniej miejsca niż w przypadku pakietów takich jak emacs-noxlub emacs24-nox.
jww

Odpowiedzi:

31

Jeśli możesz skompilować kod, wystarczy pobrać dystrybucję źródłową emacsa.

Zamiast zaczynać od ./configure, użyj opcji konfiguracji, aby poinformować system kompilacji, gdzie mają się kończyć pliki. Na przykład:

./configure --prefix=/home/abhi/emacs --bindir=/home/abhi/bin

zainstaluje wszystkie pliki obsługi emacsa pod /home/abhi/emacs, a pliki wykonywalne emacsa w /home/abhi/bin. Jeśli ten ostatni jest w $ PATH, co zwykle jest, wtedy rzeczy powinny po prostu działać (sm).

Potem możesz

make && make install

bez obawy, że instalacja umieści pliki inne niż w katalogu domowym.

(Wszystko opiera się /home/abhioczywiście na twoim katalogu domowym . Edytuj w razie potrzeby.)

rici
źródło
5
Wystarczy wrzucić w moich dwóch bitów tutaj: Nie mam root na moim komputerze stacjonarnym w pracy, i to jest dokładnie to, w jaki sposób zbudowany i zainstalowany Emacs, z drobną różnicą, że moje polecenia configure był ./configure --prefix=~/installsi mój $PATHobejmuje ~/installs/bin- Emacs nieprawdaż To jedyna rzecz, którą zbudowałem i zainstalowałem dla siebie i uważam, że lepiej jest przechowywać wszystko w jednym katalogu, aby nie zaśmiecać $ HOME zbyt dużo, ale przypuszczam, że to bardziej kwestia gustu niż czegokolwiek innego.
Aaron Miller
2
FWIW, dla emacsa 24.3: $ ./configure --prefix=~/software --bindir=~/bin daje configure: error: expected an absolute directory name for --prefix: ~/software. Więc może zamiast tego użyj $ HOME.
user100464
2
To w większości działało dla mnie. Na serwerze, na którym się kompilowałem, /libgif/libungifnie znaleziono bibliotek, więc musiałem dodać --with-gif=nodo ./configurepolecenia.
Steven C. Howell,
@ StevenC.Howell, co robią te flagi?
Michael
2
@ Michael: ukrywa --with-gif=nowsparcie dla plików graficznych GIF w emacs. (Tak, emacs może wyświetlać pliki obrazów. Zobacz gnu.org/software/emacs/manual/html_node/emacs/… ). Istnieje wiele innych takich flag; wykonać ./configure --helpdla listy.
rici
6

Instalowanie ze źródła lub ręczne pobieranie .rpms i rozpakowywanie ich jest możliwe, ale trudne, ponieważ wszystkie zależą od innych bibliotek.

Oto prosty sposób użycia conda

conda install -c conda-forge emacs

Jeśli nie masz Conda i chcesz ją zainstalować, zobacz [1]

emacs został wcześniej zbudowany dla platform OS X i linux_64, zobacz wersje [2].

[1] https://conda.io/miniconda.html
[2] https://anaconda.org/conda-forge/emacs

Thamme Gowda
źródło
3
Nie mogę uwierzyć, że mogę zainstalować emacsa za pomocą conda. Dzięki!
CodyChan
1
:-RE. Spędziłem godzinę próbując zbudować emacsa od zera (ponieważ nie miałem uprawnień rootowania na serwerze, a administratorzy mi nie pomogli) i czułem, że „musi być prostszy sposób”. Z pewnością był prostszy sposóbconda
Thamme Gowda,
1
Nie mam również uprawnień roota na serwerze, ale wielokrotnie kompilowałem emacsa od zera (być może muszę naprawić niektóre pominięte biblioteki lib), kluczową kwestią jest to, że nie udało mi się skompilować emacsa od zera z powodu błędów podczas kompilacji . W każdym razie udało mi się zainstalować najnowszą wersję emacsa za pomocą conda, to jest nowy i czysty sposób, którego nauczyłem się od ciebie. dzięki.
CodyChan
1
niewiarygodne, to najlepsza odpowiedź
Prasad Chalasani,
To niewiarygodne, że conda zapewnia emacsa! Teraz zastanawiam się, czego jeszcze mi brakuje. emacs wyszukiwania conda działa, ale z ciekawości istnieje jakiś wariant listy conda, który pokazuje, jakie pakiety są dostępne ???
Balu
1

Nie instaluj emacsa na serwerach - nie ma powodu, aby zmuszać się do korzystania z interfejsu przez opóźnienia sieciowe. Zamiast tego zainstaluj emacsa na stacji roboczej i pozwól mu pobierać pliki z serwerów w trybie TRAMP . Alternatywnie możesz użyć Filezilli, pobierze on plik i automatycznie załaduje go po zapisaniu.

wingedsubmariner
źródło
1
Mam mniej niż 1 ms opóźnienia na niektórych serwerach i bardzo dobre opóźnienia na innych. Korzystamy z pobliskiego centrum danych. Opóźnienie nie stanowi problemu dla żadnego innego edytora i chcę go używać jako mojego $ EDITORA do takich rzeczy, jak pisanie komunikatów zatwierdzania w celu kontroli wersji. Nigdy nie robię poważnego programowania na zdalnym serwerze, używam mojej lokalnej stacji roboczej, która ma już zainstalowany emacs.
Abhi Beckert
1
@AbhiBeckert Cóż, w takim przypadku może chcesz przejść przez próbę instalacji. Nie bałbym się tego robić make install, dopóki nie jesteś rootem, nie możesz nic zrobić poza twoim katalogiem domowym. Możesz także sprawdzić, czy nanojest zainstalowany, jeśli wolisz edycję bez modelowania.
wingedsubmariner