為什麼這個安裝命令返回 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 的初學者,我了解到 echoing$?
為我提供了最後一條語句退出程式碼(就此而言,執行 ls 並回顯 $ ? returns 0, running the install statement above and echoing $ ? 返回 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
,我認為這表明該軟體包未安裝。請善待並挽救生命!
建構包時,您需要將它們安裝到“編組”區域,而不是將文件安裝到它們的最終位置。在與二進制包同名的目錄中的 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