Cài đặt emacs mà không cần sudo?


23

Tôi đã sử dụng vim trong nhiều năm và tôi không thực sự thích nó.

Tôi muốn dùng thử emacs một lúc, nhưng nó không được cài đặt trên bất kỳ máy chủ linux nào tôi sử dụng thường xuyên. Tôi không có root nên apt-get installkhông phải là một lựa chọn (tôi cũng không thể xin phép sysadmin, anh ấy chắc chắn sẽ nói không).

Có phiên bản nhị phân nào của emacs tôi có thể cài đặt trong thư mục nhà của mình không? Hầu hết các máy chủ đang chạy CentOS.


Bạn có công cụ biên dịch không? Không thể quá khó để biên dịch nó với các cờ bên phải, xem câu hỏi này cho con trỏ và chạy trực tiếp khỏi thư mục nhà của bạn.
Journeyman Geek

@JTHERmanGeek có, gcc dường như có sẵn cho người dùng của tôi trên ít nhất một số máy chủ. Tôi chưa bao giờ thử nó. Tôi hơi lo lắng về việc chạy make installtrong khi nó làm điều gì đó mà sysadmin sẽ nổi giận ... Tôi làm việc với các máy chủ sản xuất mỗi ngày và tôi không phải là người phải thức dậy lúc 2 giờ sáng nếu có sự cố.
Abhi Beckert

Được khuyến khích hoàn toàn vì lo ngại rằng sysadmin của bạn có được một giấc ngủ ngon; đã dành vài năm trong vai trò đó trong số những người khác, tôi có thể mong muốn nhiều người dùng của mình đã giải trí cùng mối quan tâm.
Aaron Miller

Liên quan, xem Cài đặt tối thiểu emacs24 trên Ubuntu . Nó chỉ cho bạn cách cấu hình và xây dựng emacs từ các nguồn cho một dấu chân nhỏ. Nó thường tạo ra một dấu chân nhỏ hơn so với được cung cấp với các gói như emacs-noxhoặc emacs24-nox.
jww

Câu trả lời:


31

Nếu bạn có thể biên dịch mã, thì chỉ cần tải xuống bản phân phối nguồn của emacs.

Thay vì bắt đầu ./configure, hãy sử dụng các tùy chọn cấu hình để báo cho hệ thống xây dựng nơi bạn muốn các tệp kết thúc. Ví dụ:

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

sẽ cài đặt tất cả các tệp hỗ trợ của emacs bên dưới /home/abhi/emacsvà các tệp thực thi của emacs trong /home/abhi/bin. Nếu cái sau nằm trong $ PATH của bạn, thường là vậy, thì mọi thứ sẽ chỉ hoạt động (sm).

Sau đó bạn có thể

make && make install

mà không phải lo lắng về việc cài đặt đặt các tập tin khác ngoài thư mục chính của bạn.

(Tất cả điều này dựa trên thư mục chính của bạn /home/abhi, tất nhiên. Chỉnh sửa khi cần thiết.)


5
Chỉ cần ném hai bit của tôi vào đây: Tôi không có root trên máy tính để bàn của mình tại nơi làm việc và đây chính xác là cách tôi xây dựng và cài đặt Emacs, với sự khác biệt nhỏ mà lệnh cấu hình ./configure --prefix=~/installscủa tôi và $PATHbao gồm ~/installs/bin- Emacs là ' Đây là thứ duy nhất tôi tự xây dựng và cài đặt, và tôi thấy tốt hơn là giữ mọi thứ trong một thư mục để không làm lộn xộn $ HOME quá nhiều, nhưng tôi cho rằng đó là vấn đề của hương vị hơn bất cứ thứ gì.
Aaron Miller

2
FWIW, cho emacs 24.3: $ ./configure --prefix=~/software --bindir=~/bin sản lượng configure: error: expected an absolute directory name for --prefix: ~/software. Vì vậy, có thể sử dụng $ HOME thay thế.
100464

2
Điều này chủ yếu làm việc cho tôi. Trên máy chủ mà tôi đang biên dịch, các /libgif/libungifthư viện không được tìm thấy nên tôi phải thêm --with-gif=novào ./configurelệnh.
Steven C. Howell

@ StevenC. Làm thế nào để những lá cờ làm gì?
Michael

2
@michael: --with-gif=nongăn chặn việc hỗ trợ xây dựng các tệp hình ảnh GIF thành emacs. (Có, emacs có thể hiển thị các tệp hình ảnh. Xem gnu.org/software/emacs/manual/html_node/emacs/ trộm ). Có một số cờ khác như vậy; thực hiện ./configure --helpcho một danh sách.
rici

6

Cài đặt từ nguồn hoặc tải xuống thủ công .rpms và giải nén chúng là có thể nhưng khó vì tất cả đều phụ thuộc vào các lib khác.

Đây là một cách đơn giản sử dụng conda

conda install -c conda-forge emacs

Nếu bạn không có conda và muốn cài đặt nó, hãy xem [1]

emacs đã được xây dựng trước cho các nền tảng OS X và linux_64, xem [2] để biết các phiên bản.

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


3
Tôi không thể tin rằng tôi có thể cài đặt emacs bằng conda. Cảm ơn!
CodyChan

1
: -D. Tôi đã dành một giờ để cố gắng xây dựng emacs từ đầu (vì tôi không có quyền root trên máy chủ và quản trị viên không giúp tôi) và tôi cảm thấy 'phải có cách đơn giản hơn'. Chắc chắn, có một cách đơn giản hơn vớiconda
Thamme Gowda

1
Tôi cũng không có quyền root trên máy chủ, nhưng tôi đã từng biên dịch emacs từ đầu nhiều lần (có thể phải sửa một số lib bị bỏ qua), điểm quan trọng bây giờ là tôi không thể biên dịch emacs từ đầu vì một số lỗi khi biên dịch . Dù sao, tôi đã quản lý để cài đặt phiên bản mới nhất của emacs bằng cách sử dụng conda, đây là một cách mới và rõ ràng tôi học được từ bạn. cảm ơn.
CodyChan

1
không thể tin được, đây là câu trả lời hay nhất
Prasad Chalasani

Không thể tin được rằng conda cung cấp emacs! Bây giờ tự hỏi những gì tôi đang thiếu. conda tìm kiếm emacs hoạt động nhưng vì tò mò có một số biến thể của danh sách conda cho thấy những gói có sẵn ???
Balu

1

Đừng cài đặt emacs lên các máy chủ - không có lý do gì để ép buộc bạn sử dụng giao diện thông qua độ trễ mạng. Thay vào đó, hãy cài đặt emacs trên máy trạm của bạn và để nó tìm nạp các tệp từ máy chủ bằng chế độ TRAMP của nó . Ngoài ra, bạn có thể sử dụng Filezilla, nó sẽ tải tệp cho bạn và tự động tải chúng lên sau khi bạn lưu.


1
Tôi có độ trễ dưới 1ms đối với một số máy chủ và độ trễ rất tốt cho các máy chủ khác. Chúng tôi sử dụng một trung tâm dữ liệu gần đó. Độ trễ không phải là vấn đề đối với bất kỳ trình soạn thảo nào khác và tôi muốn sử dụng nó làm $ EDITOR của mình cho những việc như nhập tin nhắn cam kết để kiểm soát phiên bản. Tôi không bao giờ thực hiện lập trình nghiêm túc trên một máy chủ từ xa, tôi sử dụng máy trạm cục bộ đã cài đặt emacs.
Abhi Beckert

1
@AbhiBeckert Vâng, trong trường hợp đó có lẽ bạn muốn trải qua nỗi đau khi cố gắng cài đặt nó. Tôi sẽ không sợ làm điều đó make install, miễn là bạn không root, nó không thể làm gì ngoài thư mục nhà của bạn. Ngoài ra, bạn có thể muốn xem nếu nanođược cài đặt, nếu bạn thích chỉnh sửa không chế độ.
wingbedubmariner
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.