Alıştırma: Uygulamayı Raspberry Pi'ye dağıtma
Prototip cihazı hazırladınız ve onu çalıştıran konsol uygulamasını yazdınız. Artık uygulamanızı cihaza dağıtmanın zamanı geldi.
Önemli
Raspberry Pi'nizin Giriş ünitesinde açıklandığı gibi yapılandırıldığından emin olun. Geliştirme makinenizden güvenli kabuk erişimi için SSH hizmetinin etkinleştirilmesi gerekir. Kodunuzun I2C
I2C veri yolu'na erişmesine izin vermek için hizmetin etkinleştirilmesi gerekir. Raspberry Pi'nizin WiFi veya Ethernet aracılığıyla ağınıza bağlı olduğundan emin olun.
Raspberry Pi yapılandırması hakkında daha fazla bilgi için Raspberry Pi belgelerine bakın.
Dağıtım türleri
.NET iki yayımlama modu sağlar: çerçeveye bağımlı ve bağımsız. Çerçeveye bağımlı bir dağıtımda, uygulama hedef cihaza .NET çalışma zamanının yüklenmesini kullanır. Bağımsız bir dağıtımda, uygulama derlenmiş derlemelerle tüm .NET çalışma zamanı bağımlılıklarını içerir. Her yaklaşımın avantajları vardır. Bu modülde uygulamanızı bağımsız bir uygulama olarak dağıtacaksınız.
Raspberry Pi'de hedef dizin oluşturma
Yeni bir terminal penceresinde aşağıdaki adımları tamamlayın:
Raspberry Pi'nize güvenli bir kabuk oturumu açın.
ssh pi@raspberrypi
Yukarıdaki komutta:
ssh
, OpenSSH'yi başlatma komutudur.pi
Raspberry Pi'nin kullanıcı adıdır.raspberrypi
Raspberry Pi'nin ana bilgisayar adıdır. Cihazınızda ana bilgisayar adını değiştirdiyseniz, cihazın ana bilgisayar adını veya IP adresini kullanın.
Dekont
Modern işletim sistemlerinin çoğunda OpenSSH önceden yüklenmiştir.
ssh
Komut çözümlenmezse OpenSSH'yi yükleyin.SSH oturumunda, giriş dizininde cheesecave.net adlı bir dizin oluşturun. Yeni dizine geçin.
mkdir cheesecave.net cd cheesecave.net
Geçerli konumunuz ~/cheesecave.net.
Raspberry Pi'de bağımsız bir uygulama yayımlama
Geliştirme makinenizdeki özgün terminal penceresinde aşağıdaki adımları tamamlayın:
Uygulamayı bağımsız bir uygulama olarak yayımlayın.
dotnet publish --runtime linux-arm64 --self-contained
Önemli
Bu, önerilen 64 bit işletim sistemini kullandığınızı varsayar. Raspberry Pi işletim sisteminin 32 bit sürümünü kullanıyorsanız, doğru işletim sistemini hedeflemek için önceki komutta kullanın
--runtime linux-arm
.Yukarıdaki komut, çalışma zamanı için bağımsız dağıtım
linux-arm64
için gereken dosyaları içeren bir dizin oluşturur. Yayımlama klasörünün konumunu not alın.Dosyaları yayımlama klasöründen Raspberry Pi'de dağıtım konumuna kopyalayın.
scp ./bin/Debug/net7.0/linux-arm64/publish/* pi@raspberrypi:~/cheesecave.net
Yukarıdaki komutta:
scp
, OpenSSH ile birlikte gelen güvenli dosya kopyalama komutudur../bin/Debug/net7.0/linux-arm64/publish/*
kopyalanacak dosyaları belirtir. Bu durumda, dizindeki./bin/Debug/net7.0/linux-arm64/publish/
her dosya eklenir. .NET SDK'sının farklı bir sürümünü kullanıyorsanız veya yolunu farklı olacağı için hedeflediysenizlinux-arm
doğru yolu girin.pi@raspberrypi:~/cheesecave.net
hedeftir.pi@raspberrypi
, daha önce olduğu gibi kullanıcı adı ve ana bilgisayar adıdır.~/cheesecave.net
Raspberry Pi'de dosyaların kopyalanacağı konumdur.
Yürütme izinleri verme
Raspberry Pi OS gibi Linux tabanlı işletim sistemlerinde ikili dosyaların dosya sisteminde yürütülebilir dosya olarak işaretlenene kadar yürütülmesine izin verilmez.
Raspberry Pi'deki SSH oturumunda aşağıdaki komutu yürütür:
chmod +x ./cheesecave.net
Yürütülebilir cheesecave.net
dosyanın artık yürütme izni var.
Sonraki ünitede kodu cihazınızda test edin.