蓝灯(lantern)在无界面的linux下运行的时候,会遇到一个错误:

error while loading shared libraries: libappindicator3.so.1: cannot open shared object file: No such file or directory

错误原因是蓝灯运行需要加载一个系统托盘的类,这个类的作用就是出现一个最小化的图标,图标虽小,还是调用了ui的类库,因此,没有桌面是没办法运行蓝灯的。特别注意,诸如:

apt-get install libappindicator3-1

的解决办法对不想要桌面的用户是没有毛线用处的。因为你不得不为了这个类库,再安装一大堆桌面依赖类库,甚至不小心把桌面系统安上了。

说实话,这个类应当是可以选择加载的。比如:

lantern -headless

确实,这样运行蓝灯就不会加载那个托盘了。但坑爹的地方在于,从源码可以看出,蓝灯运行的时候只是根据headless决定是否显示界面,而非是否加载界面。真心想不明白,加载界面不显示,为什么蓝灯要捂着耳朵盗铃,闭上眼睛就说界面没有了。

因此,解决方案是,编译的时候就不要那个托盘小界面。这里:

HEADLESS=true make linux

这个编译可以说是漫长而且痛苦的,各种依赖类库安装一大堆,索性丢到docker里面去编译:

HEADLESS=true make docker-linux

为了支持docker,配置go。坑爹的是vps不支持。因为docker需要创建虚拟网卡。只能拉到本地编译。下面是我编译好的linux server版本:

lantern_linux_386_server
lantern_linux_amd64_server

校验码(sha512):

c86ef16d17aee3cf9aed6c175c597426991c6b3fec6bc4944bfc5dfe4ef115f2d21a3ee8dbee75be2a06d20e7e8411d1b5a081016d5c77330613642294305146  lantern_linux_386_server
491e6c28ff1a1de5baee7139ebdae5cfcb06327d4a586e9404632adcfdf83fd19e2a08177800482df6c618e745b7b811ad8fe92e256a50901c9702936c2b8dc3  lantern_linux_amd64_server

幸好生在个开源的世界,看看源码,或许能够彻底的解决问题 :)

本文首发:https://program-dog.blogspot.com/2016/06/LanternRunningOnServer.html



This work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.

蓝灯(lantern)在服务器(vps)上运行的更多相关文章

  1. 92.vue---新手从本地项目开发到服务器线上运行爬坑。

    因为我做的是后台,所以不用做SEO 参考 本项目的定位是后台集成方案,不太适合当基础模板来进行二次开发.因为本项目集成了很多你可能用不到的功能,会造成不少的代码冗余.如果你的项目不关注这方面的问题,也 ...

  2. 服务器(Linux)上运行python总结

    跑实验换了几次服务器了,每次遇到相似问题都要重新百度,而且每次百度搜索出的顺序都不一样,又得重新找半天,这次把遇到的问题都总结一下. 1.准备 PuTTY和FileZilla FileZilla使用F ...

  3. vps上运行serv-u的问题

    为了给产品环境建个测试站,今天特意申请一个vps来做开发用,但运行了Serv-U的ServUDaemon.exe后始终提示: 响应: 530 User czhan cannot log in. 很无语 ...

  4. 在Linode VPS上搭建离线下载神器Aria2+WEBUI管理及对国内云盘看法

    在Linode VPS上搭建离线下载神器Aria2+WEBUI管理及对国内云盘看法 2015-09-21 by Hansen 原文链接:http://www.hansendong.me/archive ...

  5. 【vps】如何在vps上安装mirai机器人?

    [vps]如何在vps上安装mirai机器人? 前言 由于某位师傅在群里设置了一个bot,吸引了我,所以我之前找他问了点bot的相关知识,这几天正好服务器搬迁,所以就在新服务器上再装一遍bot 1.安 ...

  6. 将 java 项目打包成可运行的 jar 包(main 函数带参数),并上传到 linux 服务器上运行

    一.概述 java项目有两种架构,一种是 B/S 架构的,一种是 C/S 架构的. 对于 B/S 架构来说,我们常见的 java ee 即是 B/S 架构,通常,开发人员会在本地进行开发,然后将项目打 ...

  7. Visual Studio写的项目在 IIS 服务器上运行的两种简单方法

    首先需要PC上开启了IIS服务,相关方法网上很多,也很简单 第一种:直接在项目中操作 1.创建一个项目,然后右击选中项目,右击,单击属性,打开项目属性标签页面 如图,选择Web标签,在服务器栏目中选中 ...

  8. Linux 笔记 #03# 在 Debian远程服务器上运行 Java socket程序

    我试图做什么:把我的破代码放到服务器上运行,并成功与客户端进行 socket通信. 预备环境:刚安装好 MySQL 和 JVM 的 Linux远程服务器(Debian 8)一台. 主要有如下几个步骤: ...

  9. 如何使用Cygwin在Windows上运行OpenSSH SSHD服务器

    记录几款非常有趣, 但不怎么耳熟的软件: Cygwin 是可以安装 OpenSSH server 和 client 的, Mosh 也可以, 这对于 Linux 用户而言就非常方便了. 如何使用Cyg ...

随机推荐

  1. CAS单点登录中文用户名乱码问题

    CAS单点登录中文用户名乱码问题,有两种情况 1. CAS server乱码 即在向server端提交用户名和密码时,发生了乱码,解决方法是: 打开WEB-INF/web.xml,在其它的Filter ...

  2. Hibernate中一对一关联映射/组件映射

    Hibernate映射:一对一关联 1.按照外键映射 2.按照主键映射 组件映射 下面以员工账号表和员工档案表(员工账号和档案表之间是一对一的关系)为例,介绍这两种映射关系,并使用这两种 映射方式分别 ...

  3. Ajax 完整教程。。转载

    Ajax 完整教程 第 1 页 Ajax 简介 Ajax 由 HTML.JavaScript™ 技术.DHTML 和 DOM 组成,这一杰出的方法可以将笨拙的 Web 界面转化成交互性的 Ajax 应 ...

  4. 三种线程不安全现象描述(escaped state以及hidden mutable state)

    hidden mutable state和escaped state是两种线程不安全问题:两者原因不同,前者主要是由于类成员变量中含有其他对象的引用,而这个引用是immutable的:后者是成员方法的 ...

  5. Javascript杂记(一)

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  6. wamp虚拟主机的配置 .

    开发环境:WAMP 实例一,Apaceh配置localhost虚拟主机步骤 1,用记事本打开apache目录下httpd文件(如:D:\wamp\bin\apache\apache2.2.8\conf ...

  7. 用Webshell直接杀入内网

    有时候要代理进内网,但是服务器没有外网端口,也没法执行命令反弹lcx什么的,也没有提权什么什么的,只有一个webshell,这个时候就比较蛋疼了. 鄙人不才,写了一个比较山寨的php+nginx反向代 ...

  8. 支付宝APP支付之Java后台生成签名具体步骤

    /** *支付宝支付 * @param orderId 订单编号 * @param actualPay 实际支付金额 * @return */ private String getOrderInfoB ...

  9. javascript阻止事件冒泡的兼容写法及其相关示例

    //阻止事件冒泡的兼容写法 function stopBubble(e){ //如果提供了事件对象,则是一个非IE浏览器 if(e && e.stopPropagation) //因此 ...

  10. Mysql的一些常用命令

    Mysql基本操作 创建表: create table test01_02(id varchar(50) not null auto_increment primary key, name nvarc ...