7.5 KiB
Serviloj •
Kompili •
Docker •
Strukturo •
Ekrankopio
[中文] | [Español] | [Français] | [Deutsch] | [Polski] | [Suomi] | [മലയാളം] | [日本語] | [Nederlands] | [Italiano] | [Русский] | [Esperanto]
Ni bezonas helpo traduki tiun README kaj la interfacon al via denaska lingvo
Babili kun ni: Discord | Reddit
Denove alia fora labortabla programo, skribita en Rust. Ĝi funkcias elskatole, ne bezonas konfiguraĵon. Vi havas la tutan kontrolon sur via datumo, sen zorgo pri sekureco. Vi povas uzi nian servilon rendezvous/relajsan, agordi vian propran, aŭ skribi vian propran servilon rendezvous/relajsan.
RustDesk bonvenigas kontribuo de ĉiuj. Vidu CONTRIBUTING.md
por helpo komenci.
Senpagaj publikaj serviloj
Malsupre estas la serviloj, kiuj vi uzas senpage, ĝi povas ŝanĝi laŭlonge de la tempo. Se vi ne estas proksima de unu de tiuj, via reto povas esti malrapida.
Situo | Vendanto | Detaloj |
---|---|---|
Seulo | AWS lightsail | 1 VCPU / 0.5GB RAM |
Singapuro | Vultr | 1 VCPU / 1GB RAM |
Dalaso | Vultr | 1 VCPU / 1GB RAM |
Dependantaĵoj
La labortabla versio uzas sciter por la interfaco, bonvolu elŝuti la biblioteko dinamika sciter.
Paŝoj por kompili
-
Preparu vian medion de programado Rust kaj vian medion de kompilado C++
-
Instalu vcpkg, kaj agordi la medivariablo
VCPKG_ROOT
korekte- Windows: vcpkg install libvpx:x64-windows-static libyuv:x64-windows-static opus:x64-windows-static
- Linux/MacOS: vcpkg install libvpx libyuv opus
-
Plenumu
cargo run
Kiel kompili sur Linukso
Ubuntu 18 (Debian 10)
sudo apt install -y 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
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 pulseaudio
Instali vcpkg
git clone https://github.com/microsoft/vcpkg
cd vcpkg
git checkout 2021.12.01
cd ..
vcpkg/bootstrap-vcpkg.sh
export VCPKG_ROOT=$HOME/vcpkg
vcpkg/vcpkg install libvpx libyuv opus
Ripari libvpx (Por 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
Kompili
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
Ŝanĝi Wayland por X11 (Xorg)
RustDesk ne subtenas Wayland. Kontrolu tio por agordi Xorg kiel defaŭlta sesio GNOME.
Kiel kompili kun Docker
Komencu klonante la deponejo kaj kompilu la kontenero Docker:
git clone https://github.com/rustdesk/rustdesk
cd rustdesk
docker build -t "rustdesk-builder" .
Tiam, ĉiuj fojoj, kiuj vi bezonas kompili la programon, plenumu tiun komandon:
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
Notu, ke la unua kompilado povas daŭri longe, antaŭ ke la dependantaĵoj estu kaŝitaj, sekvaj kompiladoj estos pli rapidaj. Aldone, se vi bezonas specifi diferentajn argumentojn por la kompilkomando, vi povas fari ĝin en la fine de la komando, en la posicio <OPTIONAL-ARGS>
. Ekzemple, se vi volas kompili versio de eldono optimigita, vi plenumus la komandon supre, kun ---release
. La plenumebla dosiero disponeblos en la cela dosierujo sur via sistemo, kaj povos esti plenumita kun:
target/debug/rustdesk
Aŭ, se vi plenumas eldona plenumebla dosiero:
target/release/rustdesk
Bonvolu certigi, ke vi plenumas tiujn komandojn el la radiko de la deponejo RustDesk, alie la programo povus esti nekapabla de trovi la devigajn resursojn. Ankaŭ notu, ke la aliaj subkomandoj de cargo kiel install
aŭ run
momente ne estas subtenitaj per tiun metodon, ĉar instalus aŭ plenumus la programon en la kontenero anstataŭ de la gastiganto.
Dosierstrukturo
- libs/hbb_common: videa kodeko, agordado, kovrilo tcp/udp, protobuf, funkcioj fs por dosiertransigo, kaj aliaj utilaĵaj funkcioj
- libs/scrap: ekrankaptado
- libs/enigo: operaciumspecifa kontrolo de klavaro/muso
- src/ui: interfaco
- src/server: aŭdio/poŝo/enigo/videa servoj, kaj retkonektoj
- src/client.rs: starti konekto kun samtavolo
- src/rendezvous_mediator.rs: komuniki kun rustdesk-server, atendu fora direkta (TCP hole punching) aŭ relajsata konekto
- src/platform: operaciumspecifa kodo