debuild は「..」を削除できません。権限が拒否されました。 debian/rules:9: 'clean' ターゲットのレシピが失敗しました。

debuild は「..」を削除できません。権限が拒否されました。 debian/rules:9: 'clean' ターゲットのレシピが失敗しました。

私のプロジェクトでDebianを使用するためにdebuildコマンドを実行しようとしています。ただし、debuild コマンドを実行すると、次のエラーが発生します。

hoseopjeong@hoseopjeong-VirtualBox:~/Documents/HoseopJeong_debian_lab9/debianlaboration9-0.0$ debuild
dpkg-buildpackage -rfakeroot -D -us -uc
dpkg-buildpackage: source package debianlaboration9
dpkg-buildpackage: source version 0.0-1
dpkg-buildpackage: source distribution UNRELEASED
dpkg-buildpackage: source changed by Ho Seop Jeong <my email>
dpkg-source --before-build debianlaboration9-0.0
dpkg-buildpackage: host architecture i386
fakeroot debian/rules clean
dh clean  
 dh_testdir
 dh_auto_clean
  make -j1 distclean
 make[1]: Entering directory '/home/hoseopjeong/Documents/HoseopJeong_debian_lab9/debianlaboration9-0.0'
rm -f electrotest
make[1]: Leaving directory '/home/hoseopjeong/Documents/HoseopJeong_debian_lab9/debianlaboration9-0.0'
dh_clean
rm -f debian/debhelper-build-stamp
rm -f debian/debianlaboration9.substvars
rm -f debian/debianlaboration9.*.debhelper
rm -rf debian/debianlaboration9/
rm: cannot remove 'debian/debianlaboration9/usr/electrotest_standalone': Permission denied
 dh_clean: rm -rf debian/debianlaboration9/ returned exit code 1
 debian/rules:9: recipe for target 'clean' failed
 make: *** [clean] Error 25
 dpkg-buildpackage: error: fakeroot debian/rules clean gave error exit status 2
 debuild: fatal error at line 1376:
 dpkg-buildpackage -rfakeroot -D -us -uc failed

私のメイクファイルは次のとおりです。

prefix = /usr/local
all: electrotest


electrotest: ./src/electrotest_standalone.c
   gcc -o electrotest_standalone ./src/electrotest_standalone.c -lm
install:electrotest
   install -D electrotest_standalone \
$(DESTDIR)$(prefix)/bin/electrotest_standalone
clean:
   -rm -f electrotest

distclean:clean
uninstall:
    -rm -f $(DESTDIR)$(prefix)/bin/electrotest_standalone

PHONY: all install clean distclean uninstall

これは私のDebianルールファイルです

#!/usr/bin/make -f
# You must remove unused comment lines for the released package.
export DH_VERBOSE = 1
export DEB_BUILD_MAINT_OPTIONS = hardening=+all
export DEB_CFLAGS_MAINT_APPEND  = -Wall -pedantic
export DEB_LDFLAGS_MAINT_APPEND = -Wl,--as-needed

%:
    dh $@  

#override_dh_auto_install:
#   dh_auto_install -- prefix=/usr

#override_dh_install:
#   dh_install --list-missing -X.pyc -X.pyo
override_dh_auto_install:
    dh_auto_install -- prefix=/usr

そのため、端末で生成されたエラーを見て、私が正しく理解した場合、debuildはmakefileで定義されたcleanを実行してdebianフォルダ内に生成されたelecrotestを削除しようとします。ただし、フォルダは権限の制限されたフォルダであり、クリーンアップ後に権限拒否エラーが表示されます。

この投稿を確認しましたデビルドがクリーンアップを実行するのを防ぐ方法は?答えの1つは次のとおりです。

override_dh_clean:

しかし、これがビルドに問題を引き起こす可能性があると思うので、これが正しいアプローチであるかどうかはわかりません。 Debian 生成フォルダの権限を変更する唯一の方法は chmod を使用することですか?それともこの問題を解決するための賢明なアイデアはありますか?解決策を探しているわけではありません。解決策が必要です。

ABがコメントで述べたように、私はそうし、ls -ld debian/debianlaboration9/usr/この結果を得ました。

drwxr-xr-x 2 root root 4096 jun 14 03:19

ベストアンサー1

おすすめ記事