Alıştırma: Uygulamayı Raspberry Pi'ye dağıtma

Tamamlandı

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:

  1. 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.

  2. 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.

    A screenshot of an SSH session on a Raspberry Pi with the above steps.

Raspberry Pi'de bağımsız bir uygulama yayımlama

Geliştirme makinenizdeki özgün terminal penceresinde aşağıdaki adımları tamamlayın:

  1. 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.

    A screenshot of a terminal session showing the output from dotnet publish.

  2. 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 hedeflediyseniz linux-armdoğ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.