Installer emacs sans sudo?

23

J'utilise vim depuis des années et je n'aime pas vraiment ça.

J'aimerais essayer emacs pendant un certain temps, mais il n'est installé sur aucun des serveurs linux que j'utilise régulièrement. Je n'ai pas de racine donc ce apt-get installn'est pas une option (je ne peux pas non plus demander la permission au sysadmin, il dirait certainement non).

Existe-t-il une version binaire d'emacs que je peux installer dans mon répertoire personnel? La plupart des serveurs exécutent CentOS.

Abhi Beckert
la source
Avez-vous des outils de compilation? Il ne peut pas être trop difficile de le compiler avec les bons drapeaux.Voyez cette question pour les pointeurs et exécutez-la directement à partir de votre dossier de départ.
Journeyman Geek
@JourneymanGeek oui, gcc semble être disponible pour mon utilisateur sur au moins certains des serveurs. Je ne l'ai jamais testé. Je suis un peu nerveux à l'idée de courir au make installcas où cela ferait quelque chose dont l'administrateur système s'énerverait ... Je travaille avec des serveurs de production tous les jours, et ce n'est pas moi qui dois me réveiller à 2 heures du matin si quelque chose ne va pas.
Abhi Beckert
Ont été votés uniquement parce qu'ils craignent que votre administrateur système passe une bonne nuit de sommeil; ayant passé plusieurs années dans ce rôle entre autres, j'aurais souhaité que plus de mes utilisateurs aient le même souci.
Aaron Miller
En relation, voir Installation minimale d'emacs24 sur ubuntu . Il vous montre comment configurer et créer des emacs à partir de sources pour un encombrement réduit. Son produit généralement une empreinte plus petite que celle fournie avec des paquets comme emacs-noxou emacs24-nox.
2016

Réponses:

31

Si vous pouvez compiler du code, téléchargez simplement une distribution source d'emacs.

Au lieu de commencer par ./configure, utilisez les options de configuration pour indiquer au système de génération où vous souhaitez que les fichiers se retrouvent. Par exemple:

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

installera tous les fichiers de support d'emacs sous /home/abhi/emacs, et les exécutables emacs dans /home/abhi/bin. Si ce dernier est dans votre $ PATH, ce qui est généralement le cas, alors les choses devraient fonctionner correctement (sm).

Après cela, vous pouvez

make && make install

sans vous soucier de l'installation en mettant des fichiers ailleurs que dans votre répertoire personnel.

(Tout cela est basé sur votre répertoire personnel /home/abhi, bien sûr. Modifiez-le si nécessaire.)

rici
la source
5
Juste pour lancer mes deux bits ici: je n'ai pas de racine sur ma machine de bureau au travail, et c'est exactement comme ça que j'ai construit et installé Emacs, avec la légère différence que ma commande configure était ./configure --prefix=~/installset mon $PATHinclus ~/installs/bin- Emacs n'est pas ' t la seule chose que j'ai construite et installée pour moi, et je trouve préférable de tout garder dans un seul répertoire afin de ne pas trop encombrer $ HOME, mais je suppose que c'est plus une question de goût qu'autre chose.
Aaron Miller
2
FWIW, pour emacs 24.3: $ ./configure --prefix=~/software --bindir=~/bin rendements configure: error: expected an absolute directory name for --prefix: ~/software. Alors utilisez peut-être $ HOME à la place.
user100464
2
Cela a surtout fonctionné pour moi. Sur le serveur sur lequel je compilais, les /libgif/libungifbibliothèques étaient introuvables, j'ai donc dû ajouter --with-gif=noà la ./configurecommande.
Steven C. Howell
@ StevenC.Howell, que font ces drapeaux?
Michael
2
@michael: --with-gif=nosupprime la prise en charge de la construction de fichiers d'image GIF dans emacs. (Oui, emacs peut afficher des fichiers image. Voir gnu.org/software/emacs/manual/html_node/emacs/… ). Il existe un certain nombre d'autres indicateurs de ce type; exécuter ./configure --helppour une liste.
rici
6

L'installation à partir des sources ou le téléchargement manuel de .rpms et leur extraction sont possibles mais difficiles car ils dépendent tous d'autres bibliothèques.

Voici un moyen simple d'utiliser conda

conda install -c conda-forge emacs

Si vous n'avez pas de conda et souhaitez l'installer, voir [1]

emacs a été pré-construit pour les plates-formes OS X et linux_64, voir [2] pour les versions.

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

Thamme Gowda
la source
3
Je ne peux pas croire que je peux installer emacs en utilisant conda. Merci!
CodyChan
1
:-RÉ. J'avais passé une heure à essayer de construire emacs à partir de zéro (parce que je n'avais pas de privilèges root sur un serveur, et les administrateurs ne m'ont pas aidé), et je sentais 'qu'il doit y avoir un moyen plus simple'. Sûrement, il y avait un moyen plus simple avecconda
Thamme Gowda
1
Je n'ai pas non plus de privilèges root sur un serveur, mais j'ai l'habitude de compiler des emacs à partir de zéro plusieurs fois (peut-être pour corriger certaines bibliothèques manquées), le point clé maintenant est que je n'ai pas réussi à compiler emacs à partir de zéro à cause de certaines erreurs lors de la compilation . Quoi qu'il en soit, j'ai réussi à installer la dernière version d'emacs en utilisant conda, c'est une façon nouvelle et propre que j'ai apprise de vous. Merci.
CodyChan
1
incroyable, c'est la meilleure réponse
Prasad Chalasani
Incroyable que conda fournit des emacs! Je me demande maintenant ce qui me manque d'autre. conda search emacs fonctionne mais par curiosité existe-t-il une variante de la liste de conda qui montre quels packages sont disponibles ???
Balu
1

N'installez pas emacs sur les serveurs - il n'y a aucune raison de vous forcer à utiliser l'interface via la latence du réseau. Au lieu de cela, installez emacs sur votre poste de travail et laissez-le récupérer les fichiers des serveurs en utilisant son mode TRAMP . Alternativement, vous pouvez utiliser Filezilla, il téléchargera le fichier pour vous et les téléchargera automatiquement après avoir enregistré.

wingedsubmariner
la source
1
J'ai moins de 1 ms de latence pour certains serveurs et une très bonne latence pour les autres. Nous utilisons un centre de données à proximité. La latence n'est un problème pour aucun autre éditeur et je veux l'utiliser comme $ EDITOR pour des choses comme taper des messages de validation pour le contrôle de version. Je ne fais jamais de programmation sérieuse sur un serveur distant, j'utilise mon poste de travail local qui a déjà emacs installé.
Abhi Beckert
1
@AbhiBeckert Eh bien, dans ce cas, vous voudrez peut-être passer par la peine d'essayer de l'installer. Je n'aurais pas peur de faire un make install, tant que vous n'êtes pas root, il ne peut rien faire en dehors de votre répertoire personnel. En outre, vous voudrez peut-être voir si nanoest installé, si vous préférez l'édition sans modalité.
wingedsubmariner