内网非root用户使用emacs写代码的折腾之路

内网开发服务器,不给root权限,不给网络权限。
网络渗透进去就不讲了,情况不一样。
记录下我的内网非root安装emacs写代码的折腾之路。
遇到了好多问题,热爱才让我坚持了下来,不然在内网里用着不顺手的工具,真的是煎熬。

linux服务器环境

Linux xxxx 3.10.0-957.axs7.x86_64 #1 SMP Sun May 24 08:42:07 CST 2020 x86_64 x86_64 x86_64 GNU/Linux
RedFlag Linux China Post Edition 7 SP6
gcc 版本 4.8.5 20150623 (Red Hat 4.8.5-36) (GCC)
服务器内核版本蛮低的,一开始我还担心会编译有问题,结果也真的是哈。

emacs编译

如果不需要tree-sitter,直接用./confiugre 和make 出奇的顺利。
但是如果用tree-sitter就比较麻烦了,遇到了好几个问题。

tree-sitter

github获取代码拷贝进去,
make生成libtree-sitter.so.0.0
由于没有root权限,
在当前用户目录下生成了 $HOME/.local/lib和$HOME/.local/include
拷贝libtree-sitter.so.0.0到$HOME/.local/lib下并且软链接libtree-sitter.so和libtree-sitter.so.0
拷贝api.h到$HOME/.local/include/tree_sitter

emacs源码编译

./configure --with-tree-sitter
如果有别的包没有会有提醒,我这边是
./configure --with-tree-sitter --with-gif=ifavailable --with-png=ifavailable --with-gnutls=ifavailable
但是会报找不到tree-sitter在这里插入图片描述

一开始以为lib没加正确,重新配置了export LD_LIBRARY_PATH=$HOME/.local/lib/
还是一样的错误。
google搜索下试了几种方式都不行,后来只能研究configure文件,发现 P K G C O N F I G 这个导致了报 t r e e e − s i t t e r n o 的错误,就尝试下载 p k g − c o n f i g 进行 m a k e 和软链接到 PKG_CONFIG这个导致了报treee-sitter no的错误,就尝试下载pkg-config进行make和软链接到 PKGCONFIG这个导致了报treeesitterno的错误,就尝试下载pkgconfig进行make和软链接到PATH对应目录下。因为不是root的原因,我又加了这个export PKG_CONFIG_PATH=$HOME/.local/lib/pkgconfig
pkgconfig目录下的tree-sitter.pc我是从自己docker的arch下拷贝过来的“pacman -S tree-sitter"会在/usr/local/lib/生成pkgconfig,到此就可以了.重新执行命令./configure --with-tree-sitter --with-gif=ifavailable --with-png=ifavailable --with-gnutls=ifavailable

lsp-bridge

因为我写代码用的lsp客户端是lsp-bridge
需要解决python的依赖包安装和lsp服务端安装的问题。

python依赖包

先从外网下载依赖包
pip3 download epc orjson sexpdata six setuptools paramiko rapidfuzz -d 保存的目录
但是发现内网pip没有,就下载pip源码,结果又少了什么包,问题是我pip都还没成功啊,
最后找到一个解决方案: python -m ensurepip --default-pip
安装好pip后,通过pip install *.whl安装,如果安装有问题,也可以一个个的安装。

lsp服务器安装

本地先安装好lsp服务器,以前端为例:
sudo npm install -g emmet-ls
sudo npm install -g vls
sudo ngp install -g typescript
再直接把node_modules里的安装好的拷贝到内网服务器。
lsp-bridge需要
tsc 软链接成 typescript-language-server
vls 软链接成 vue-language-server

其它

为了内网使用方便,又迁移了 the_silver_searcher,ripgrep和zellij
发现其中rust开发的小工具直接二进制拷贝进来挺方便的。

最后

开心,我自己的emacs终于可以在内网正常使用了,

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

余很多之很多

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值