内网非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终于可以在内网正常使用了,

相关推荐

最近更新

  1. TCP协议是安全的吗?

    2024-02-01 17:42:04       19 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-02-01 17:42:04       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-02-01 17:42:04       20 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-02-01 17:42:04       20 阅读

热门阅读

  1. MySQL 窗口函数详解

    2024-02-01 17:42:04       29 阅读
  2. Redis - 多集群数据源配置

    2024-02-01 17:42:04       29 阅读
  3. 民安智库开展生活投诉满意度调研

    2024-02-01 17:42:04       37 阅读
  4. jira 破解(windows)

    2024-02-01 17:42:04       38 阅读
  5. python异步编程(1)——理论篇

    2024-02-01 17:42:04       33 阅读
  6. 知过去,预未来,相信AI计算的力量

    2024-02-01 17:42:04       38 阅读
  7. 倒计时68天

    2024-02-01 17:42:04       44 阅读
  8. React16源码: React中处理ref的核心流程源码实现

    2024-02-01 17:42:04       32 阅读
  9. vue + 动态加载图片

    2024-02-01 17:42:04       44 阅读