사용자가 해당 조치를 요청할 때 '권장'패키지 설치


10

패키지를 권장되는 종속성이있는 DEB 패키지에 응용 프로그램을 빌드한다고 가정 해 package1이라고합시다.

따라서 package1은 설치된 경우 프로그램에 추가 기능을 제공 할 수 있지만 프로그램의 기본 기능과 직접 관련되지는 않습니다 (추천 패키지 인 이유).

따라서 사용자는 처음에 권장 패키지를 설치하도록 선택하지 않지만 (우분투 소프트웨어 센터에서 권장 패키지를 설치하거나 설치하지 않도록 선택하거나 선택 취소 할 수 있음) 나중에 응용 프로그램을 사용하는 동안 해당 기능.

이 기능이 작동하려면 추가 패키지를 설치해야한다고 알려주는 가장 좋은 방법은 무엇입니까? 설치 프로세스 진행 상태를 나타내는 대화 상자가있는 프로그램에서이 패키지를 직접 설치하기 위해 어떤 프로그램을 사용할 수 있습니까?

나는 이것을 기본 방식으로, 바람직하게는 Linux Desktop Environment와 독립적 인 방식으로하고 싶습니다.

요컨대, apt : // URL을 통해 Ubuntu Software Center를 열거 나 배경에서 패키지를 실행하여 프로그램에서 패키지를 설치하는 방법을 원합니다.

이상적으로는 업데이트 관리자가 사용하는 대화 상자 (또는 시냅틱 패키지 관리자가 기억하는 대화 상자)와 같은 대화 상자입니다.

추신 : C ++을 사용하여 구현할 수있는 것을 선호합니다!

답변:


9

파이썬을 사용하고 있다면 python-aptdaemon-gtk아마도 방법입니다. 이 작업을 수행하는 방법에 대한 좋은 예를 보려면/usr/share/doc/python-aptdaemon.gtk3widgets/examples/gtk3-demo.py.gz

다음과 같은 멋진 설치 프롬프트가 나타납니다.

설치 프롬프트

C ++을 사용하는 경우 AptDaemon D-Bus 인터페이스를 사용할 수는 있지만 예제를 모르면 위젯을 무료로 얻을 수 없습니다.

AptDaemon의 D-Bus API는 여기에 문서화되어 있습니다 : http://packages.python.org/aptdaemon/dbus.html

웹에서 C ++ DBus 튜토리얼을 많이 찾을 수 없으므로 libdbus-c ++-doclibdbus-c ++-doc 설치 패키지 의 문서와 예제가 가장 좋습니다 .


죄송합니다, 나는 파이썬을 사용하지 않지만 솔루션으로 그것을 좋아합니다. 다른 C ++ 대안 (이 세부 사항을 포함하도록 답변을 편집 할 것입니까?)
hytromo

흠 ... 당신은 내가 생각한 C ++의 AptDaemon D-Bus 인터페이스를 사용할 수 있지만 어떤 예제도 모르고 위젯을 무료로 얻지 못할 것입니다.
andrewsomething

좋은. 이 DBUS 인터페이스 사용에 대한 설명서와 예제를 어디에서 찾을 수 있는지 알고 있습니까?
hytromo

실제로 DBus를 통해 메시지를 보내는 데 필요한 자습서는 필요하지 않습니다. 나는 이것을하는 방법을 알고있다. 어떤 메시지를 어디로 보내야하는지 알아야합니다.
hytromo

5

사용자에게 누락 된 코덱을 설치하라는 메시지가 표시되거나 마우스 오른쪽 버튼을 클릭하여 노틸러스에서 디렉토리의 공유 옵션을 열면 Samba를 설치하라는 메시지가 표시되면 토템 미디어 플레이어를 예로들 수 있습니다.

나는 그들이 그것을하기 위해 sessioninstaller패키지를 사용한다고 생각 합니다. 참조 man session-installerhttps://launchpad.net/sessioninstaller

명령을 사용할 수도 있습니다. xdg-open apt://package패키지를 설치할 수있는 기본 패키지 관리자가 열립니다 (최신 릴리스의 우분투 소프트웨어 센터).


답변을 확장하고 세션 설치 프로그램 작업 방법에 대한 자세한 내용을 포함하십시오. xdg-open 솔루션에 관해서는 USC에서 열기를 원하지 않지만 분명히 말했듯이 토템에 코덱을 설치하거나 노틸러스에 삼바를 설치할 때와 같이 독립적 인 대화 상자로 설치하는 것이 좋습니다.
hytromo

1

이것은 오래된 질문이지만 대답을 찾았습니다 apturl.

다음과 같이 작동합니다.

apturl apt:packagename 바로 내가 필요한 것과 노틸러스가 사용하는 것입니다!

중요한 것은 많은 리눅스 배포판에 사전 설치되어 있다는 것입니다. :)

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.