Loading [MathJax]/jax/element/mml/optable/BasicLatin.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >【Rust日报】2024-01-31 RustDesk -- 基于 Rust 的开源远程桌面

【Rust日报】2024-01-31 RustDesk -- 基于 Rust 的开源远程桌面

作者头像
MikeLoveRust
发布于 2024-02-17 08:15:56
发布于 2024-02-17 08:15:56
92100
代码可运行
举报
运行总次数:0
代码可运行

RustDesk -- 基于 Rust 的开源远程桌面

RustDesk 是一个基于 Rust 开发的开源远程桌面,TeamViewer 的替代品。RustDesk 开箱即用,无需任何配置。您完全掌控数据,不用担心安全问题。您可以使用我们的注册/中继服务器, 或者自己设置, 亦或者开发您的版本。

Dev Container

在 Dev Containers 中打开

如果你已经安装了 VS Code 和 Docker, 你可以点击上面的徽章开始使用. 点击后, VS Code 将自动安装 Dev Containers 扩展(如果需要),将源代码克隆到容器卷中, 并启动一个 Dev 容器供使用.

Go through DEVCONTAINER.md for more info.

依赖

桌面版本界面使用sciter, 请自行下载。

Windows | Linux | (macOS)[https://raw.githubusercontent.com/c-smile/sciter-sdk/master/bin.osx/libsciter.dylib]

基本构建步骤

  • 请准备好 Rust 开发环境和 C++ 编译环境
  • 安装 vcpkg, 正确设置 VCPKG_ROOT 环境变量
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
Windows: vcpkg install libvpx:x64-windows-static libyuv:x64-windows-static opus:x64-windows-static aom:x64-windows-static
Linux/macOS: vcpkg install libvpx libyuv opus aom
  • 运行 cargo run

构建

在 Linux 上编译
  • Ubuntu 18 (Debian 10)
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
sudo apt install -y zip g++ gcc git curl wget nasm yasm libgtk-3-dev clang libxcb-randr0-dev libxdo-dev \
        libxfixes-dev libxcb-shape0-dev libxcb-xfixes0-dev libasound2-dev libpulse-dev cmake make \
        libclang-dev ninja-build libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev
  • openSUSE Tumbleweed
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
sudo zypper install gcc-c++ git curl wget nasm yasm gcc gtk3-devel clang libxcb-devel libXfixes-devel cmake alsa-lib-devel gstreamer-devel gstreamer-plugins-base-devel xdotool-devel
  • Fedora 28 (CentOS 8)
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
sudo yum -y install gcc-c++ git curl wget nasm yasm gcc gtk3-devel clang libxcb-devel libxdo-devel libXfixes-devel pulseaudio-libs-devel cmake alsa-lib-devel
  • Arch (Manjaro)
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
sudo pacman -Syu --needed unzip git cmake gcc curl wget yasm nasm zip make pkg-config clang gtk3 xdotool libxcb libxfixes alsa-lib pipewire
安装 vcpkg
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
git clone https://github.com/microsoft/vcpkg
cd vcpkg
git checkout 2023.04.15
cd ..
vcpkg/bootstrap-vcpkg.sh
export VCPKG_ROOT=$HOME/vcpkg
vcpkg/vcpkg install libvpx libyuv opus aom
修复 libvpx (仅仅针对 Fedora)
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
cd vcpkg/buildtrees/libvpx/src
cd *
./configure
sed -i 's/CFLAGS+=-I/CFLAGS+=-fPIC -I/g' Makefile
sed -i 's/CXXFLAGS+=-I/CXXFLAGS+=-fPIC -I/g' Makefile
make
cp libvpx.a $HOME/vcpkg/installed/x64-linux/lib/
cd
构建
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
source $HOME/.cargo/env
git clone https://github.com/rustdesk/rustdesk
cd rustdesk
mkdir -p target/debug
wget https://raw.githubusercontent.com/c-smile/sciter-sdk/master/bin.lnx/x64/libsciter-gtk.so
mv libsciter-gtk.so target/debug
VCPKG_ROOT=$HOME/vcpkg cargo run
使用 Docker 编译

克隆版本库并构建 Docker 容器:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
git clone https://github.com/rustdesk/rustdesk # 克隆Github存储库
cd rustdesk # 进入文件夹
docker build -t "rustdesk-builder" . # 构建容器

请注意:

  • 针对国内网络访问问题,可以做以下几点优化:Dockerfile 中修改系统的源到国内镜像:
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
在Dockerfile的RUN apt update之前插入两行:

RUN sed -i "s/deb.debian.org/mirrors.163.com/g" /etc/apt/sources.list
RUN sed -i "s/security.debian.org/mirrors.163.com/g" /etc/apt/sources.list
  • 修改容器系统中的 cargo 源,在RUN ./rustup.sh -y后插入下面代码:
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
RUN echo '[source.crates-io]' > ~/.cargo/config \
 && echo 'registry = "https://github.com/rust-lang/crates.io-index"'  >> ~/.cargo/config \
 && echo '# 替换成你偏好的镜像源'  >> ~/.cargo/config \
 && echo "replace-with = 'sjtu'"  >> ~/.cargo/config \
 && echo '# 上海交通大学'   >> ~/.cargo/config \
 && echo '[source.sjtu]'   >> ~/.cargo/config \
 && echo 'registry = "https://mirrors.sjtug.sjtu.edu.cn/git/crates.io-index"'  >> ~/.cargo/config \
 && echo '' >> ~/.cargo/config
  • Dockerfile 中加入代理的 env
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
在User root后插入两行

ENV http_proxy=http://host:port
ENV https_proxy=http://host:port
  • docker build 命令后面加上 proxy 参数
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
docker build -t "rustdesk-builder" . --build-arg http_proxy=http://host:port --build-arg https_proxy=http://host:port

构建 RustDesk 程序

然后, 每次需要构建应用程序时, 运行以下命令:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
docker run --rm -it -v $PWD:/home/user/rustdesk -v rustdesk-git-cache:/home/user/.cargo/git -v rustdesk-registry-cache:/home/user/.cargo/registry -e PUID="$(id -u)" -e PGID="$(id -g)" rustdesk-builder

请注意:

  • 因为需要缓存依赖项,首次构建一般很慢(国内网络会经常出现拉取失败,可以多试几次)。
  • 如果您需要添加不同的构建参数,可以在指令末尾的位置进行修改。例如构建一个"Release"版本,在指令后面加上 --release即可。
  • 如果出现以下的提示,则是无权限问题,可以尝试把-e PUID="
(idu)"ePGID="

(id -g)"参数去掉。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
usermod: user user is currently used by process 1
groupmod: Permission denied.
groupmod: cannot lock /etc/group; try again later.

# 原因: 容器的 entrypoint 脚本会检测 UIDGID,在度判和给定的环境变量的不一致时,会强行修改 user 的 UIDGID 并重新运行。但在重启后读不到环境中的 UIDGID,然后再次进入判错重启环节.

运行 RustDesk 程序

生成的可执行程序在 target 目录下,可直接通过指令运行调试 (Debug) 版本的 RustDesk:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
target/debug/rustdesk

或者您想运行发行 (Release) 版本:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
target/release/rustdesk

请注意:

  • 请保证您运行的目录是在 RustDesk 库的根目录内,否则软件会读不到文件。
  • install、run等 Cargo 的子指令在容器内不可用,宿主机才行。
  • https://github.com/rustdesk/rustdesk/tree/master
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2024-02-02,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Rust语言学习交流 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
ChatGPT 中文调教指南
ChatGPT是由OpenAI 训练的一款大型语言模型,能够和你进行任何领域的对话。
用户10399177
2023/03/28
1.5K2
[ChatGPT]-01-chatgpt可以做什么?如何调教
示例:Java 后端开发工程师、React 前端开发工程师、全栈开发工程师、iOS 开发工程师、Android开发工程师等。 回复截图请看这里
AI拉呱
2023/04/01
1.1K0
ChatGPT提示词保姆级教程
吴恩达联合OpenAI出ChatGPT 提示词教程 课程涵盖从理论到应用的各个方面,包括大型语言模型、文本嵌入、强化学习等技术的应用。 https://learn.deeplearning.ai/
Dlimeng
2024/05/24
4830
ChatGPT提示词保姆级教程
如何有效向Chatgpt提问
在以前我也写了一篇提问的艺术,不过是面对的对象是人。(详见:更好的解决问题方法:提问的艺术)。最近随着chatgpt的火爆,越来越多的人了解和使用chatgpt,也有很多新的人工智能相继问世,如百度的文心一言,华为的盘古,腾讯的混元,阿里的通义千问,讯飞的星火等等。虽然如今ai技术得到飞跃式增长,ai们理解人类自然语言变得更加强大,但是学习如何提问也还是极为重要的。掌握向ai提问的技巧和方法,能够获得准确,有用的回答,有效提高提问效率。
Daimon
2023/08/23
5660
GPT4食用指南
好了,今天的分享暂时到这里,gpt4的食用指南还有很多类别,下篇文章我们继续探讨如何让gpt4充当不同的角色。有什么问题欢迎大家一起和Tom交流和讨论。
Tom2Code
2024/03/20
1950
GPT4食用指南
【技巧】ChatGPT Prompt 提示语大全
Contributed by: StoryChief AI Reference: 7 Powerful ChatGPT Prompts to Create SEO Content Faster 供稿人:StoryChief AI 参考:https://storychief.io/blog/chatgpt-prompts-seo
小锋学长生活大爆炸
2024/04/26
2310
ChatGPT 提示词大师
欢迎来到《ChatGPT 提示大师:精通有效提示指南》!这个详尽的教程将教会你一切关于创建简洁有效的 ChatGPT 提示,激发有趣和教育性对话的知识。
ApacheCN_飞龙
2024/05/24
3640
ChatGPT 提示词大师
测评混元大模型并且基于混元实战开发
halo 我是杨不易呀,在混元大模型内测阶段就已经体验了一番当时打开页面的时候灵感模块让我大吃一惊这么多角色模型真的太屌了,随后我立马进行了代码处理水平和上下文的效果结果一般般但是到如今混元大模型代码处理水平提升超过 20%,代码处理效果在实测中高于ChatGPT 6.34% HumanEval 的公开测试集指标显示,ta已超过Starcoder、Codellama等业界头部开源代码大模型。腾讯混元大模型现在正式全部开发,发起申请即可,在混元大模型内测阶段我就已经在使用接下来我们迎接代码能力全面升级的混元大模型!
杨不易呀
2023/12/30
2.4K40
测评混元大模型并且基于混元实战开发
【技巧】ChatGPT Prompt 提示语大全
Contributed by: StoryChief AI Reference: 7 Powerful ChatGPT Prompts to Create SEO Content Faster 供稿人:StoryChief AI 参考:https://storychief.io/blog/chatgpt-prompts-seo
小锋学长生活大爆炸
2024/05/25
2350
【技巧】ChatGPT Prompt 提示语大全
你应该知道的ChatGPT提示语
ChatGPT 自上线以来,凭借其优异的自然语言理解和输出能力,仅花 5天就成为了活跃用户过百万的现象级产品。而上一个现象级产品 instagram 花了 2 个半月。到目前为止 ChatGPT 在全球累计用户已经过亿,相信现在也有很多人在跟 ChatGPT 聊过之后相信 AI 发展的奇点已经到来。
云原生小白
2023/08/28
4550
你应该知道的ChatGPT提示语
ChatGPT 提示词技巧:制作Ai看得懂清晰有效咒语
当ChatGPT首次推出时,我立即被它的功能所吸引。我以各种方式尝试了该工具,并一直对结果感到惊讶。当我看到其他人找到使用 ChatGPT 的创造性方法并了解更多关于如何优化其潜力的信息时,我受到启发,创建了的有效提示存储库。发现和探索 ChatGPT 的功能,然后与他人分享我的发现,这确实令人兴奋。
轩辕镜像
2024/11/22
1800
ChatGPT 提示词技巧:制作Ai看得懂清晰有效咒语
当你开始用 ChatGPT 时,我已经开始调教自己的 AI 机器人了!
ChatGPT 相关话题最近非常火热,很多人尤其是程序员群体已经开始使用 ChatGPT 或 New Bing 辅助自己解决工作中的问题,甚至开始用他们来写代码了。 但现在使用 ChatGPT 有一点不便的地方,一方面官网免费版经常超时,而且官网暂时不支持机器人,有些任务执行前需要交代相关背景和要求,写的太简略则效果不好,写的太复杂每次粘贴不方便。
明明如月学长
2023/04/30
2.3K0
当你开始用 ChatGPT 时,我已经开始调教自己的 AI 机器人了!
技巧就是效率,ChatGPT调教指北
很多人都知道ChatGPT很火很强,几乎无所不能,但跨越了重重门槛之才有机会使用的时候却有些迷茫,一时间不知道如何使用它。如果你就是把他当作一个普通的智能助手来看待,那与小爱同学有什么区别?甚至还差劲些,因为各大厂商的智能助手起码还知道实时的时间和天气情况,而ChatGPT却一无所知,那么,什么样的使用姿势才是正确且高效的呢?
堆栈哲学
2023/04/01
7560
技巧就是效率,ChatGPT调教指北
ChatGPT应用——充当 Linux 终端
​ 我想让你充当 Linux 终端。我将输入命令,您将回复终端应显示的内容。我希望您只在一个唯一的代码块内回复终端输出,而不是其他任何内容。不要写解释。除非我指示您这样做,否则不要键入命令。当我需要用英语告诉你一些事情时,我会把文字放在中括号内[就像这样]。我的第一个命令是 pwd
用户10399177
2023/03/08
7.3K1
Prompt learning 教学案例篇:文生文案例设定汇总,你可以扮演任意角色进行专业分析
| 1)改进输入:从答案的不足之处着手 |
汀丶人工智能
2023/05/13
6420
【黄啊码】上百个AI提示词模板,不用多想,直接收藏【三】
Generate a list of 10 frequently asked questions based on the following content: [内容]
黄啊码
2024/08/09
4190
【黄啊码】上百个AI提示词模板,不用多想,直接收藏【二】
作为一名中文写作改进助理,你的任务是改进所提供文本的拼写、语法、清晰、简洁和整体可读性,同时分解长句,减少重复,并提供改进建议。请只提供文本的更正版本,避免包括解释。请从编辑以下文本开始:[文章内容]
黄啊码
2024/07/23
2360
【黄啊码】上百个AI提示词模板,不用多想,直接收藏【二】
【黄啊码】上百个AI提示词模板,不用多想,直接收藏【四】
我希望你能作为一名历史学家行事。你将研究和分析过去的文化、经济、政治和社会事件,从原始资料中收集数据,并利用它来发展关于各个历史时期发生的理论。
黄啊码
2024/08/09
3330
《花雕学AI》36:探索Aski AI——集成问答、写作和绘画功能的强大AI平台
引言:人工智能是当今时代的最热门和最有前途的技术之一,它可以帮助人类解决各种复杂和有趣的问题,提高生活和工作的效率和质量。然而,人工智能的应用还面临着许多挑战和局限,比如数据的稀缺和质量、算法的复杂性和可解释性、用户的需求和偏好等。为了克服这些难题,微软开发了一个集成问答、写作和绘画功能的强大AI平台——Aski AI(链接:https://aski.ai/i/Ga4320a1)。Aski AI可以根据用户的自然语言输入,提供最优的解决方案,无论是查询知识、创作内容,还是绘制图像。Aski AI不仅拥有高度的智能和创造力,还具有友好和有趣的个性,可以与用户建立良好的互动和信任。本文将探索Aski的三大功能和优势,让你感受Aski AI带来的惊喜和乐趣。
驴友花雕
2023/05/26
3820
《花雕学AI》36:探索Aski AI——集成问答、写作和绘画功能的强大AI平台
使用 ChatGPT 的 7 个技巧 | Prompt Engineering 学习笔记
前段时间在 DeepLearning 学了一门 Prompt 的课程,吴恩达本人授课,讲的通俗易懂,感觉受益匪浅,因此在这里总结分享一下我的学习笔记。
phoenix.xiao
2023/08/28
6640
使用 ChatGPT 的 7 个技巧 | Prompt Engineering 学习笔记
推荐阅读
相关推荐
ChatGPT 中文调教指南
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档