在Debian上安装向日葵

说明:

因为之前服务器上安装了 PVE (Proxmox VE),之前是用 Proxmox VE 进行服务器资源管理的。出于某些原因,现在不再通过 PVE构建的虚拟机来使用计算资源,而是通过 PVE 自带的 Debian 系统直接使用虚拟机资源(因为积累的数据量比较多,重新装系统不太现实,而且部分虚拟机也在用,所以目前的形式就是:一方面通过虚拟机使用计算资源,另一方面直接通过 Debian 使用计算资源)。

为了能够远程连接服务器,需要在 Debian 上安装向日葵软件。去官网下载时可以发现,没有直接适用 Debian 的向日葵安装包,所以本文将通过修改向日葵安装包源码来实现向日葵在 Debian 上的安装。

1. 下载向日葵安装包:

从官网上下载个人版向日葵(https://sunlogin.oray.com/download/linux?type=personal),因为是服务器端安装,所以选择命令行版本的向日葵。

下载方式:wget https://dw.oray.com/sunlogin/linux/sunloginclientshell-10.1.1.28779-amd64.deb

2. 解包并修改安装源码:

2.1 解包:

通过命令 dpkg-deb -R sunloginclientshell-10.1.1.28779-amd64.deb sunloginclient 将下载的 .deb安装包解压缩到 sunloginclient 目录下,该目录包含 DEBIANusr 两个子目录。
切换到DEBIAN目录下(cd sunloginclient/DEBIAN),可以看到有control postinst postrm preinst prerm 四个文件,其中需要修改的是 postinstprerm 两个文件。

2.2 修改:

切换到../usr/local/sunlogin/scripts/(2.2.1-2.2.4都是该目录)

2.2.1 修改common.sh文件:

切换到scripts目录下(cd ../usr/local/sunlogin/scripts/),用vi打开common.sh文件(如下图),可以发现其中是包含debian选项的(绿色箭头指示;但是后续安装脚本中没有debian相关内容,所以不能直接在debian上安装)。由于我们是要在 PVE 上安装,所以/etc/issue中所需的关键词是 “Proxmox Virtual Environment”,所以需要添加红框标注的部分。
在这里插入图片描述
第二处需要修改的是 os_version 部分,需要增加红框标注的内容(如下所示)。需要注意的是我这里是/etc/issue.net,需要根据具体情况修改目标文件(可以 ls /etc/issue* 看一下 issue相关的文件)。
在这里插入图片描述

2.2.2 修改 start.sh

需要修改的地方如下所示,增加一处 debian 的启动项(注意 debian 的大小写)。
在这里插入图片描述

2.2.3 修改 depends.sh

需要增加一项 debian 的判断项。
在这里插入图片描述

2.2.4 修改 stop.sh

需要增加一项 debian 的终止项(注意 debian 的大小写)。
在这里插入图片描述

2.2.5 修改 postinst

切换到 DEBIAN/目录下,有两处需要修改(红框所示)。
在这里插入图片描述

2.2.6 修改prerm

有一处修改。
在这里插入图片描述

2.3 打包:

运行dpkg-deb -b sunloginclient/ sunlogincilent-10.1.1.128779-fixed-amd64.debsunloginclient/目录进行打包。

2.4 安装:

运行sudo dpkg -i sunlogincilent-10.1.1.128779-fixed-amd64.deb进行安装,安装时可能会报错:Package libncurses5 is not installed.,可以通过sudo apt-get install libncurses5-dev安装libncurses5,可能还会报错:E: Unmet dependencies. Try 'apt --fix-broken install' with no packages (or specify a solution).,可以通过apt --fix-broken install进行处理。

3. 运行向日葵:

运行sudo /usr/local/sunlogin/bin/sunloginclient
出现:
在这里插入图片描述
按f12登入向日葵账户即可。
在这里插入图片描述
登入之后:
在这里插入图片描述

再按f12退出(exit)即可。

4. 向日葵远程登入并创建新用户名:

4.1 创建用户组:

sudo groupadd zhang_group
sudo groupadd wang_group

4.2 创建新用户:

sudo useradd -m -G zhang_group zhangsan
sudo useradd -m -G wang_group wangwu

## 查看zhangsan 和 wangwu的用户组
groups zhangsan
groups wangwu

4.3 设置密码:

sudo passwd zhangsan

sudo passwd wangwu

修改/ect/passwd,将新用户对应行的 xxx:/bin/sh换成xxx:/bin/bash

(ps. 新建用户没有 sudo 权限)

参考:

[1]. https://forums.debiancn.org/t/topic/2801
[2]. https://sunlogin.oray.com/download/linux?type=personal

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/902374.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

NVR接入录像回放平台EasyCVR视频融合平台语音对讲配置

国标GB28181视频平台EasyCVR视频融合平台可拓展性强、视频能力灵活,平台可提供视频监控直播、云端录像、云存储、录像检索与回看、智能告警、平台级联、云台控制、语音对讲、智能分析接入等功能。其中,在语音对讲方面,NVR接入录像回放平台目前…

JavaEE初阶---多线程(三)---内存可见性/单例模式/wait,notify的使用解决线程饿死问题

文章目录 1.volatile关键字1.1保证内存的可见性--引入1.2保证内存的可见性--分析1.3保证内存的可见性--解决1.4内存可见性-JMM内存模型 2.notify和wait介绍2.1作用一:控制调度顺序2.2作用二:避免线程饿死2.3notify和notifyAll区分 3.单例模式--经典设计模…

数据库编程 SQLITE3 Linux环境

永久存储程序数据有两种方式: 用文件存储用数据库存储 对于多条记录的存储而言,采用文件时,插入、删除、查找的效率都会很差,为了提高这些操作的效率,有计算机科学家设计出了数据库存储方式 一、数据库 用来管理数据…

【Android】多渠道打包配置

目录 简介打包配置签名配置渠道配置配置打包出来的App名称正式包与测试包配置 打包方式开发工具打包命令行打包 优缺点 简介 多渠道打包 是指在打包一个 Android 应用时,一次编译生成多个 APK 文件,每个 APK 文件针对一个特定的渠道。不同的渠道可能代表…

Prompt提示词设计:如何让你的AI对话更智能?

Prompt设计:如何让你的AI对话更智能? 在人工智能的世界里,Prompt(提示词)就像是一把钥匙,能够解锁AI的潜力,让它更好地理解和响应你的需求。今天,我们就来聊聊如何通过精心设计的Pr…

厂房区域人员进出人数统计-实施方案

1.1 现状分析 传统的人流量统计方法往往依赖于人工计数或简单的视频监控系统,这些方法不仅效率低下,而且容易出错,无法满足现代仓库管理的需求。因此,我厂区决定引入先进的智能监控系统,通过集成高清摄像头、GPU服务器…

【Unity】仓库逻辑:拾取物体进仓库和扔掉物品

需求说明 目标:实现玩家移动过程中,拾取物体,物体被放入仓库;点击仓库中物体,重新扔回3D场景中逻辑。 逻辑分析: 需要玩家可以移动;需要检测玩家和物体的碰撞,并摧毁物体&#xf…

css知识点梳理2

1. 选择器拓展 在 CSS 中,可以根据选择器的类型把选择器分为基础选择器和复合选择器,复合选择器是建立在基础选择器之上,对基本选择器进行组合形成的。 ​ 复合选择器是由两个或多个基础选择器,通过不同的方式组合而成的&#xf…

【Flask】一、安装与第一个测试程序

目录 Flask简介 安装Flask 安装pip(Python包管理器) 使用pip安装Flask 验证安装 创建Flask程序 创建应用 运行 访问测试 Flask简介 Flask是一个用Python编写的轻量级Web应用框架。它被设计为易于使用和扩展,使其成为构建简单网站或复…

[项目][boost搜索引擎#4] cpp-httplib使用 | log.hpp | 前端 | 测试及总结

目录 编写http_server模块 1. 引入cpp-httplib到项目中 2. cpp-httplib的使用介绍 3. 正式编写http_server 九、添加日志到项目中 十、编写前端模块 十一. 详解传 gitee 十二、项目总结 项目的扩展 写在前面 项目 gitee 已经上传啦 (还是决定将学校和个人…

网络编程基础-Reactor线程模型-原理剖析

1、Reactor基本概念 Reactor线程模型其实是一种设计模式,其核心思想就是将输入多路复用和事件派发相结合,从而减少系统中活跃线程的数量。 像我们之前讲到的文章网络编程基础-IO模型深入理解_网络io-CSDN博客提到了其中网络IO模型(BIO、NIO…

asp.net core 入口 验证token,但有的接口要跳过验证

asp.net core 入口 验证token,但有的接口要跳过验证 在ASP.NET Core中,你可以使用中间件来验证token,并为特定的接口创建一个属性来标记是否跳过验证。以下是一个简化的例子: 创建一个自定义属性来标记是否跳过验证: public clas…

基于PHP的http字段查询与注册(V1)(持续迭代)

目录 版本说明: 实现环境(WAMP): 数据库链接 查询页面 php处理逻辑 字段添加 版本说明: 该查询功能以查询http首部字段为目的实现的字段属性、字段内容的查询,以及对新字段信息的数据注册。 v1实现…

python 制作 发货单 (生成 html, pdf)

起因, 目的: 某个小店,想做个发货单。 过程: 先写一个 html 模板。准备数据, 一般是从数据库读取,也可以是 json 格式,或是 python 字典。总之,是数据内容。使用 jinja2 来渲染模板。最终的结果可以是 h…

多线程进阶——线程池的实现

什么是池化技术 池化技术是一种资源管理策略,它通过重复利用已存在的资源来减少资源的消耗,从而提高系统的性能和效率。在计算机编程中,池化技术通常用于管理线程、连接、数据库连接等资源。 我们会将可能使用的资源预先创建好,…

WPF+MVVM案例实战(七)- 系统初始化界面字体描边效果实现

文章目录 1、案例效果展示2、项目准备3、功能实现1、资源获取2、界面代码3、后台代码 4 源代码获取 1、案例效果展示 2、项目准备 打开项目 Wpf_Examples,新建系统初始化界面 WelcomeWindow.xmal,如下所示: 3、功能实现 1、资源获取 案例中使用的CSD…

Java | Leetcode Java题解之第516题最长回文子序列

题目&#xff1a; 题解&#xff1a; class Solution {public int longestPalindromeSubseq(String s) {int n s.length();int[][] dp new int[n][n];for (int i n - 1; i > 0; i--) {dp[i][i] 1;char c1 s.charAt(i);for (int j i 1; j < n; j) {char c2 s.char…

【Java并发编程】信号量Semaphore详解

一、简介 Semaphore&#xff08;信号量&#xff09;&#xff1a;是用来控制同时访问特定资源的线程数量&#xff0c;它通过协调各个线程&#xff0c;以保证合理的使用公共资源。 Semaphore 一般用于流量的控制&#xff0c;特别是公共资源有限的应用场景。例如数据库的连接&am…

Python | Leetcode Python题解之第516题最长回文子序列

题目&#xff1a; 题解&#xff1a; class Solution:def longestPalindromeSubseq(self, s: str) -> int:n len(s)dp [[0] * n for _ in range(n)]for i in range(n - 1, -1, -1):dp[i][i] 1for j in range(i 1, n):if s[i] s[j]:dp[i][j] dp[i 1][j - 1] 2else:dp…

从病理AI的基础模型发展历程,看未来的医学AI发展趋势|个人观点·24-10-23

小罗碎碎念 在临床相关的人工智能&#xff08;AI&#xff09;模型发展方面&#xff0c;传统上需要大量标注数据集&#xff0c;这使得AI的进步主要围绕大型中心和私营企业展开。所以&#xff0c;在这期推文中&#xff0c;我会介绍一些已经商用的模型&#xff0c;并且为计划进军…