macOS
Jest wiele sposobów żeby to zrobić, ten przewodnik zakłada, że Xcode
, Git
i Homebrew
są już zainstalowane.
Prawdopodobnie największym wyzwaniem jest znalezenie wersji wszystkich narzędzi, które działają ze sobą, zwłaszcza części toolchainu takie jak Xcode i LLVM ze względu na to, że są dyktowane przez wersję twojego macOSa. Wersje w tym przewodniku pewnie nie są tymi, których powinieneś używać. Za początek w szukaniu jakich wersji należy użyć można uznać Workflow budowania na GitHubie dla danej wersji RustDeska jaką chcesz zbudować. Wybierz tag, dla którego chcesz wyświetlić plik, w lewym górnym rogu strony. Ale to niekoniecznie zadziała, ponieważ narzędzia macOS dostarczane wraz z programem GitHub Runner mogą nie być w tej samej wersji, co narzędzia zainstalowane w twoim systemie lokalnym.
Eksport
export
służy do ustawiania różnych zmiennych środowiskowych. Po uruchomieniu export
zmienna ta jest ustawiana tylko dla bieżącej sesji terminala, dlatego należy ją powtarzać dla każdego nowego okna terminala, którego chcesz używać do kompilacji RustDesk, teraz lub w przyszłości. Zasadniczo zaleca się dodanie wszystkich poleceń export
do skryptu, który jest uruchamiany automatycznie dla każdego otwartego terminala, na przykład ~/.bash_profile
. Pełne polecenia export
wymienione tutaj można po prostu dołączyć do pliku, ale należy je również uruchomić w bieżącym terminalu, ponieważ plik nie jest odczytywany, dopóki nie zostanie otwarty nowy terminal.
Zainstaluj narzędzia, których będziemy używać z Homebrewa.
brew install python3 create-dmg nasm cmake gcc wget ninja pkg-config wget rustup
Niektóre instalacje mogą się nie udać, bo niektóre foldery docelowe nie istnieją w naszym systemie. W takim przypadku stwórz folder, ustaw właściciela i uprawnienia, a potem wykonaj znowu polecenie brew
. Przykład jeśli/usr/local/include
nie istnieje:
sudo mkdir /usr/local/include
sudo chown <username>:admin /usr/local/include
sudo chmod 775 /usr/local/include
Zainstaluj vcpkg
Vcpkg służy do zarządzania zależnościami C/C++ używanymi przez RustDesk. Zdecyduj, gdzie chcesz zainstalować program, i uruchom poniższe polecenie z folderu, w którym ma znajdować się folder vcpkg
. W tym przykładzie jako lokalizację użyto /Users/<nazwa użytkownika>/repos/
, a jako wersję użyto tagu 2023.04.15
.
git clone https://github.com/microsoft/vcpkg
cd vcpkg
git checkout 2023.04.15
./bootstrap-vcpkg.sh -disableMetrics
./vcpkg install libvpx libyuv opus aom
export VCPKG_ROOT=~/repos/vcpkg
Zainstaluj i skonfiguruj Rusta
Używamy rustup
do zarządzania Rustem, który został już zainstalowany powyżej za pomocą Homebrew. Jednak nadal wymaga on konfiguracji. Postępuj zgodnie z instrukcjami i upewnij się, że zarówno rustup
, jak i rustc
znajdują się w PATH
. W tym przykładzie używamy wersji Rust 1.75.0
, ale może być konieczne użycie innej wersji. Za pomocą rustup
można zainstalować i zarządzać wieloma wersjami Rust.
rustup-init
rustup default 1.75.0
rustup component add rustfmt
Aby uzyskać przegląd zainstalowanych i domyślnych zestawów narzędzi Rust, uruchom polecenie rustup show
.
Pobierz pliki źródłowe RustDeska
Zdecyduj, gdzie chcesz umieścić pliki źródłowe RustDesk, a następnie uruchom poniższe polecenie z folderu, w którym chcesz umieścić folder rustdesk
. W tym przykładzie jako lokalizacja została użyta ścieżka /Users/<nazwa użytkownika>/repos/
.
git clone --recurse-submodules https://github.com/rustdesk/rustdesk
cd rustdesk/libs/portable/
python3 -m pip install --upgrade pip
pip3 install -r requirements.txt
Jeśli python3
lub pip
są nieznane, dodaj je do PATH
za pomocą następującego polecenia (użyj rzeczywistych nazw folderów):
export PATH=~/Library/Python/3.9/bin:$PATH
Po wykonaniu tej czynności uruchom ponownie nieudane polecenie (polecenia). Pamiętaj, aby edytować również plik ~/.bash_profile
.
Zainstaluj komponenty interfejsu użytkownika
RustDesk można skompilować zarówno przy użyciu Scitera, jak i Fluttera. Oba wymagają dodatkowych komponentów, więc postępuj zgodnie z instrukcjami dla odpowiedniej wersji lub dla obu.
Sciter
Z folderu rustdesk
uruchom:
wget https://github.com/c-smile/sciter-sdk/raw/master/bin.osx/libsciter.dylib
Flutter
FVM pozwala zarządzać wersjami Fluttera i jest prawdopodobnie najłatwiejszym sposobem na wypróbowanie różnych wersji Fluttera.
brew tap leoafarias/fvm
brew install fvm cocoapods
Zainstaluj i używaj na przykład Flutter 3.16.9
, korzystając z:
fvm global 3.16.9
FVM ma na celu wykorzystanie bardziej złożonej konfiguracji, w której może zapewnić różne wersje Fluttera dla różnych projektów, ale wykracza to poza zakres niniejszego przewodnika. Zamiast tego wystarczy ręcznie dodać lokalizację domyślnego Fluttera dostarczonego przez FVM do PATH
, co oznacza, że do zmiany wersji Fluttera należy użyć fvm global
:
export PATH=$HOME/fvm/default/bin:$PATH
Po wykonaniu tej czynności należy wyłączyć telemetrię i sprawdzić, czy wszystko działa poprawnie:
flutter --disable-analytics
dart --disable-analytics
flutter doctor -v
Nie ma znaczenia, jeśli niektóre testy zakończą się niepowodzeniem, co zazwyczaj ma miejsce. Ważne jest, aby test środowiska, z którego zamierzasz korzystać, zakończył się powodzeniem, a mianowicie Xcode
. Jeśli pojawią się zgłoszone problemy, rozwiąż je przed kontynuowaniem.
Po uruchomieniu Fluttera należy zainstalować “most”, który łączy Rusta i Fluttera. Oto kolejna wersja, która dobrze współpracuje z pozostałymi elementami. W tym przykładzie używamy wersji 1.80.1
:
należy
cargo install flutter_rust_bridge_codegen --version "1.80.1" --features "uuid"
Budowanie
Zbuduj z folderu rustdesk
. Skompiluj wersję Scitera za pomocą:
python3 ./build.py
Zbuduj wersję Fluttera za pomocą:
flutter_rust_bridge_codegen --rust-input ./src/flutter_ffi.rs --dart-output ./flutter/lib/generated_bridge.dart --c-output ./flutter/macos/Runner/bridge_generated.h
python3 ./build.py --flutter
Jeśli wszystko przebiegnie pomyślnie, w folderze rustdesk
powinien znajdować się plik dmg
gotowy do instalacji.