このインストールコマンドが1を返すのはなぜですか?

このインストールコマンドが1を返すのはなぜですか?

水に落ちて死んでいます。時々救命胴衣を与えることができる人はいますか? :)

Linuxに.NET Core Worker Serviceアプリケーションをデプロイしようとしています。これに対するパッケージを作成しようとしています。

この記事私が達成したいことを正確に解決するようです。フォローしましたが、dpkg-buildpackage -b --no-sign以下のインストールステートメントでわかる限り失敗しました。 (インストールステートメントは、install -D -m 755 bin/Debug/netcoreapp3.1/linux-x64/publish/* /opt/myAppこの記事の指示rulesを実行した後に作成されたファイルの一部です。)dh_make

私のrulesファイル:

#!/usr/bin/make -f
# See debhelper(7) (uncomment to enable)
# output every command that modifies files on the build system.
#export DH_VERBOSE = 1


# see FEATURE AREAS in dpkg-buildflags(1)
#export DEB_BUILD_MAINT_OPTIONS = hardening=+all

# see ENVIRONMENT in dpkg-buildflags(1)
# package maintainers to append CFLAGS
#export DEB_CFLAGS_MAINT_APPEND  = -Wall -pedantic
# package maintainers to append LDFLAGS
#export DEB_LDFLAGS_MAINT_APPEND = -Wl,--as-needed


%:
    dh $@ --with=systemd

override_dh_auto_build:
    dotnet publish -r linux-x64 --self-contained true -p:PublishTrimmed=true

override_dh_auto_install:
    # install application
    mkdir -p /home/myUserName/myApp
    echo 'Log Message 1'
    install -D -m 755 bin/Debug/netcoreapp3.1/linux-x64/publish/* /home/myUserName/myApp
    echo 'Log Message 2'
    rm /home/myUserName/myApp/*.pdb #delete pdb

    # install debug symbols
    mkdir -p /home/myUserName/debug/myApp
    install -D -m 644 bin/Debug/netcoreapp3.1/linux-x64/publish/*.pdb /home/myUserName/debug/myApp
    dotnet-symbol --symbols bin/Debug/netcoreapp3.1/linux-x64/publish/ -o  /home/myUserName/debug/myApp
    # auto-install disabled

override_dh_shlibdeps:
    # shilbdeps disabled

override_dh_strip:
    # strip disabled

# dh_make generated override targets
# This is example for Cmake (See https://bugs.debian.org/641051 )
#override_dh_auto_configure:
#   dh_auto_configure -- #  -DCMAKE_LIBRARY_PATH=$(DEB_HOST_MULTIARCH)

単独で実行して詳細フラグ(-v)を追加すると、エラーメッセージは表示されません(試してみましたが何も表示されません| grep -i error)。私はLinuxに初めてアクセスし、echoが最後のステートメント終了コードを提供することに気づきました$?(この問題に対してlsを実行して$?をエコーすると0を返し、上記のinstallステートメントを実行して$?をエコーすると1を返します)。

errno 1走るEPERM 1 Operation not permitted

問題は/ optに書くことかもしれないと思います。ターゲットフォルダを/ homeのフォルダに変更しても、同じ結果が表示されます。

どうやって進めますか?このインストール文の問題をどのように理解できますか?このパッケージをインストールする必要があることをどこかで読みました。実行しましたが、パッケージがまだインストールされていないことを示すdpkg-deb -I myApp戻りが発生しました。error: failed to read archive 'myApp': No such file or directory

親切に扱い、命を救ってください!

ベストアンサー1

パッケージをビルドするときは、ファイルを最終的な場所にインストールするのではなく、「マーシャリング」領域にインストールする必要があります。 Debianパッケージでは、バイナリパッケージと同じ名前のディレクトリにありますdebian

install -D -m 755 bin/Debug/netcoreapp3.1/linux-x64/publish/* debian/netcoreapp/opt/myApp

(パッケージがあると仮定netcoreapp)しかし、これは現在発生している問題を説明しておらず、install問題を解決できない可能性があります。

この問題を手動で解決する代わりに使用する必要がありますdh_install変更install:

dh_install bin/Debug/netcoreapp3.1/linux-x64/publish/* opt/myApp

おすすめ記事