rustdesk/docs/README-UA.md
2023-10-20 19:09:13 +08:00

12 KiB
Raw Blame History

RustDesk - Ваш віддалений робочий стіл
СервериСкладанняDockerСтруктураЗнімки
[English] | [česky] | [中文] | [Magyar] | [Español] | [فارسی] | [Français] | [Deutsch] | [Polski] | [Indonesian] | [Suomi] | [മലയാളം] | [日本語] | [Nederlands] | [Italiano] | [Русский] | [Português (Brasil)] | [Esperanto] | [한국어] | [العربي] | [Tiếng Việt] | [Ελληνικά]
Нам потрібна ваша допомога для перекладу цього README і RustDesk UI на вашу рідну мову

Спілкування з нами: Discord | Twitter | Reddit

ko-fi

Ще одне програмне забезпечення для віддаленого робочого столу, написане на Rust. Працює з коробки, не потребує налаштування. Ви повністю контролюєте свої дані, не турбуючись про безпеку. Ви можете використовувати наш сервер ретрансляції, налаштувати свій власний, або написати свій власний сервер ретрансляції.

image

RustDesk вітає внесок кожного. Дивіться docs/CONTRIBUTING.md для допомоги на початку роботи.

FAQ

Як працює RustDesk?

ЗАВАНТАЖИТИ ЗАСТОСУНОК

Get it on F-Droid

Безкоштовні загальнодоступні сервери

Нижче наведені сервери, для безкоштовного використання, вони можуть змінюватися з часом. Якщо ви не перебуваєте поруч з одним із них, ваша мережа може працювати повільно.

Місцезнаходження Постачальник Технічні характеристики
Німеччина Hetzner 2 VCPU / 4GB RAM
Україна (Київ) dc.volia 2 vCPU / 4GB RAM

Dev Container

Open in Dev Containers

Якщо у вас уже встановлено VS Code і Docker, ви можете натиснути значок вище, щоб почати. Клацання призведе до того, що VS Code автоматично встановить розширення Dev Containers, якщо це необхідно, клонує виcхідний код у том контейнера та розгорне контейнер dev для використання.

Дивіться DEVCONTAINER.md для додаткової інфо.

Залежності

Настільні версії використовують sciter для графічного інтерфейсу, завантажте динамічну бібліотеку sciter самостійно.

Windows | Linux | MacOS

Мобільні версії використовують Flutter. У майбутньому ми перенесемо настільну версію зі Sciter на Flutter.

Первинні кроки для складання

  • Підготуйте середовище розробки Rust і середовище збірки C++.

  • Встановіть vcpkg, і правильно встановіть змінну VCPKG_ROOT.

    • 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)

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

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)

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)

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

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)

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

Збірка

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-контейнера:

git clone https://github.com/rustdesk/rustdesk
cd rustdesk
docker build -t "rustdesk-builder" .

Потім кожного разу, коли вам потрібно зібрати додаток, запускайте таку команду:

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

Зверніть увагу, що перша збірка може зайняти більше часу, перш ніж залежності будуть кешовані, але наступні збірки будуть виконуватися швидше. Крім того, якщо вам потрібно вказати інші аргументи для команди збірки, ви можете зробити це в кінці команди у змінній <OPTIONAL-ARGS>. Наприклад, якщо ви хочете створити оптимізовану версію, ви маєте запустити наведену вище команду і в кінці рядка додати --release. Отриманий виконуваний файл буде доступний у цільовій папці вашої системи і може бути запущений за допомогою:

target/debug/rustdesk

Або, якщо ви використовуєте виконуваний файл релізу:

target/release/rustdesk

Будь ласка, переконайтеся, що ви запускаєте ці команди з кореня сховища RustDesk, інакше додаток не зможе знайти необхідні ресурси. Також зверніть увагу, що інші cargo підкоманди, такі як install або run, наразі не підтримуються цим методом, оскільки вони будуть встановлювати або запускати програму всередині контейнера, а не на хості.

Структура файлів

  • libs/hbb_common: відеокодек, конфіг, обгортка tcp/udp, protobuf, функції fs для передавання файлів і деякі інші службові функції
  • libs/scrap: захоплення екрана
  • libs/enigo: специфічне для платформи керування клавіатурою/мишею
  • src/ui: графічний інтерфейс користувача
  • src/server: сервіси аудіо/буфера обміну/вводу/відео та мережевих підключень
  • src/client.rs: однорангове з'єднання
  • src/rendezvous_mediator.rs: комунікація з rustdesk-server, очікування віддаленого прямого (обхід TCP NAT) або ретрансльованого з'єднання
  • src/platform: специфічний для платформи код
  • flutter: код Flutter для мобільних пристроїв
  • flutter/web/js: JavaScript для Flutter веб клієнту

Знімки

image

image

image

image