![Debian에서 Mousepad를 실행할 때 모든 D-Bus 추적을 제거합니다.](https://linux55.com/image/195124/Debian%EC%97%90%EC%84%9C%20Mousepad%EB%A5%BC%20%EC%8B%A4%ED%96%89%ED%95%A0%20%EB%95%8C%20%EB%AA%A8%EB%93%A0%20D-Bus%20%EC%B6%94%EC%A0%81%EC%9D%84%20%EC%A0%9C%EA%B1%B0%ED%95%A9%EB%8B%88%EB%8B%A4..png)
mousepad
D-Bus 없이 데비안 10에서 데비안 패키지를 다시 빌드하려고 합니다 .
먼저 아무런 변경 없이 패키지를 만들어 보았습니다.
apt-get source mousepad
cd mousepad-0.4.1
dpkg-buildpackage --build=binary --no-sign
이것은 작동합니다.
이제 D-Bus를 비활성화한 상태로 빌드하고 싶습니다. 마우스패드에 빌드 옵션이 있는 것을 확인했는데 --disable-dbus
정확히 어디에 배치해야 합니까?
파일 debian/rules
은 다음과 같습니다.
#!/usr/bin/make -f
export DEB_LDFLAGS_MAINT_APPEND=-Wl,--as-needed -Wl,-O1 -Wl,-z,defs
export DEB_BUILD_MAINT_OPTIONS=hardening=+all
override_dh_missing:
dh_missing --fail-missing
override_dh_autoreconf:
mkdir -p m4
dh_autoreconf
%:
dh $@
Debian 10에서 Mousepad를 시작하면 로그에 다음 메시지가 표시됩니다.
dbus-daemon: [session uid=1000 pid=10430] Activating service name='ca.desrt.dconf' requested by ':1.0' (uid=1000 pid=10425 comm="mousepad ")
dbus-daemon: [session uid=1000 pid=10430] Successfully activated service 'ca.desrt.dconf'
dbus-launch
따라서 Debian 10의 표준 패키지인 Mousepad는 D-Bus를 사용하고 바이너리를 부팅한다고 믿습니다 .
답변1
Debian 10 mousepad
패키지는 D-Bus 지원 없이 빌드되었습니다. 이를 보면 확인할 수 있습니다.버전 0.4.1-2용 빌드 로그amd64
"D-BUS"를 검색하세요.
Build Configuration:
* D-BUS support: no
* Debug Support: minimum
* Use keyfile backend: default
* Build with GTK+ 3: yes
이를 명확하게 하려면 자동 구성을 재정의해야 하며 다음 끝에 이를 추가해야 합니다 debian/rules
.
override_dh_auto_configure:
dh_auto_configure -- --disable-dbus
두 번째 줄이 탭 문자로 시작하는지 확인하세요.
찾은 로그 메시지는 dconf
마우스패드 자체가 아닌 에서 발생합니다. 이를 비활성화하려면 주요 파일 설정 백엔드로 전환해 보세요.
override_dh_auto_configure:
dh_auto_configure -- --without-dbus --enable-keyfile-settings
이 작업을 수행할 때 패키지가 저장소에서 동일한 활성화 버전으로 "업그레이드" changelog
되지 않도록 항목 을 추가하십시오.dbus
dch --local +400cat 'Rebuild without dbus.'
dch -r ignored
(이것은 패키지 dch
에서 devscripts
사용됩니다 ).
이제 패키지를 빌드합니다.
dpkg-buildpackage -us -uc
그리고 설치하세요.
이는 여전히 에 (간접적으로) 의존하는 바이너리를 생성하지만 , 그 이유는 에 의존하고 , 에 의존하고, 에 의존하고 , 에 의존하기 libdbus-1.so.3
때문입니다 .libgtk-3.so.0
libatk-bridge-2.0.so.0
libdbus-1.so.3
정말로 D-Bus를 없애고 싶다면 다시 빌드해야 합니다.at-spi2-atk
, 그리고 빌드가 의존하는 시스템의 다른 모든 것 libdbus-1-dev
.