📢 Webサイト閉鎖と移転のお知らせ
このWebサイトは2026年9月に閉鎖いたします。
新しい記事は移転先で追加しております。(旧サイトでは記事を追加しておりません)

ページの作成:「== 概要 == <br><br> == PolKitのインストール == # RHEL sudo dnf install polkit-devel # SUSE sudo zypper install polkit-devel <br><br> == CMakeファイルの設定 == <syntaxhighlight lang="cmake"> # CMakeLists.txtファイル # 実行ファイルの場合 add_executable(<プロジェクト名> # ...略 ) # ライブラリの場合 add_library(<プロジェクト名> # ...略 ) include_directories( # ...略 /usr/lib64…」
 
 
(同じ利用者による、間の11版が非表示)
1行目: 1行目:
== 概要 ==
== 概要 ==
 
PolKit(以前は、PolicyKitとして知られていた)は、非特権ユーザセッションと特権システムコンテキストの間のネゴシエータとして機能するアプリケーションフレームワークである。<br>
<br>
PolKitは、ユーザ、グループ、名前により特定のアクションを制限する機能を持つ。<br>
ユーザセッションのプロセスが、システムコンテキストでアクションを実行するごとに、PolKitはクエリされる。
所謂、ポリシーで指定された設定に基づいて、"yes"、"no"、"needs authentication"である可能性がある。<br>
<br>
<code>sudo</code>のような古典的な権限承認プログラムとは異なり、PolKitはセッション全体に対してroot権限を与えるのではなく、各アクションに対してのみ権限を与える。<br>
<br>
Qtを使用してPolkitを利用する場合は、[[Qtの基礎_-_管理者権限|Qtの基礎_-_管理者権限のページ]]を参照すること。<br>
<br><br>
<br><br>


== PolKitのインストール ==
== PolKitのインストール ==
==== パッケージ管理システムからインストール ====
  # RHEL
  # RHEL
  sudo dnf install polkit-devel
  sudo dnf install polkit-devel
9行目: 18行目:
  # SUSE
  # SUSE
  sudo zypper install polkit-devel
  sudo zypper install polkit-devel
<br>
==== ソースコードからインストール ====
多くのLinuxディストリビューションには、初期状態でPolKitがインストールされている。<br>
もし、別途インストールする必要がある場合、ソースコードからPolKitをインストールする。<br>
<br>
PolKitのビルドに必要なライブラリをインストールする。<br>
# RHEL
sudo dnf install meson dbus-devel expat-devel systemd-devel glib2-devel gtk3-devel gobject-introspection-devel pam-devel duktape-devel gtk-doc \
                  mozjs91-devel  # RHEL 9の場合
                  mozjs115-devel  # RHEL 10の場合
# SUSE
sudo zypper install meson dbus-1-devel libexpat-devel systemd-devel glib2-devel gtk3-devel gobject-introspection-devel mozjs78-devel pam-devel duktape-devel gtk-dpc
<br>
[https://www.freedesktop.org/software/polkit/releases/ PolKitの公式Webサイト]または[https://gitlab.freedesktop.org/polkit/polkit/-/tags GitLab]にアクセスして、ソースコードをダウンロードする。<br>
ダウンロードしたファイルを解凍する。<br>
tar xf polkit-<バージョン>.tar.gz
cd polkit-<バージョン>
<br>
また、<code>git clone</code>コマンドを実行して、PolKitのソースコードをダウンロードする。<br>
git clone https://gitlab.freedesktop.org/polkit/polkit.git
cd polkit
<br>
PolKitをビルドおよびインストールする。<br>
設定可能なオプションの一覧は、<code>meson configure</code>コマンドで取得することができる。<br>
# RHEL
meson setup build --prefix=<PolKitのインストールディレクトリ> -Dos_type=redhat -Dexamples=true -Dman=true -Dgtk_doc=true
# SUSE
meson setup build --prefix=<PolKitのインストールディレクトリ> -Dos_type=suse -Dexamples=true -Dman=true -Dgtk_doc=true
meson compile -C build
meson install -C build
<br><br>
<br><br>


== CMakeファイルの設定 ==
== CMakeファイルの設定 ==
==== Pkg-Configを使用しない場合 ====
  <syntaxhighlight lang="cmake">
  <syntaxhighlight lang="cmake">
  # CMakeLists.txtファイル
  # CMakeLists.txtファイル
25行目: 68行目:
  )
  )
   
   
## インクルードファイル
  include_directories(
  include_directories(
     # ...略
     # ...略
35行目: 79行目:
  )
  )
   
   
## ライブラリファイル
  target_link_libraries(<プロジェクト名>
  target_link_libraries(<プロジェクト名>
     # ...略
     # ...略
44行目: 89行目:
   
   
     # ...略
     # ...略
)
</syntaxhighlight>
<br>
==== Pkg-Configを使用する場合 ====
<syntaxhighlight lang="cmake">
# CMakeLists.txtファイル
find_package(PkgConfig REQUIRED)
pkg_check_modules(GLIB2          REQUIRED glib-2.0)
pkg_check_modules(POLKITGOBJECT2 REQUIRED polkit-gobject-1)
pkg_check_modules(GOBJECT2      REQUIRED gobject-2.0)
pkg_check_modules(GIO2          REQUIRED gio-2.0)
# 実行ファイルの場合
add_executable(<プロジェクト名>
  # ...略
)
# ライブラリの場合
add_library(<プロジェクト名>
    # ...略
)
include_directories(
    ${GLIB2_INCLUDE_DIRS}
    ${POLKITGOBJECT2_INCLUDE_DIRS}
    ${GOBJECT2_INCLUDE_DIRS}
    ${GIO2_INCLUDE_DIRS}
)
link_directories(
    ${GLIB2_LIBRARY_DIRS}
    ${POLKITGOBJECT2_LIBRARY_DIRS}
    ${GOBJECT2_LIBRARY_DIRS}
    ${GIO2_LIBRARY_DIRS}
)
add_definitions(
    ${GLIB2_CFLAGS_OTHER}
    ${POLKITGOBJECT2_CFLAGS_OTHER}
    ${GOBJECT2_CFLAGS_OTHER}
    ${GIO2_CFLAGS_OTHER}
  )
  )
</syntaxhighlight>
<br><br>
== QMakeファイルの設定 ==
==== Pkg-Configを使用する場合 ====
<syntaxhighlight lang="make">
CONFIG += link_pkgconfig
PKGCONFIG += \
    glib-2.0          \
    polkit-gobject-1  \
    gobject-2.0      \
    gio-2.0
LIBS += \
    -lglib-2.0 \
    -lpolkit-gobject-1      \
    -lgobject-2.0          \
    -lgio-2.0
</syntaxhighlight>
<br>
==== Pkg-Configを使用しない場合 ====
<syntaxhighlight lang="make">
LIBS += \
    -lglib-2.0 \
    -lpolkit-gobject-1      \
    -lgobject-2.0          \
    -lgio-2.0
INCLUDEPATH += \
    /usr/lib64/glib-2.0/include \
    /usr/include/glib-2.0 \
    /usr/include/polkit-1
  </syntaxhighlight>
  </syntaxhighlight>
<br><br>
<br><br>
58行目: 177行目:
  {
  {
     // Action ID for PolKit
     // Action ID for PolKit
     const gchar *action_id = "org.qt.policykit.examples2.write";
     const gchar *action_id = "org.example.policykit.do";
   
   
     // メインイベントループを作成
     // メインイベントループを作成
151行目: 270行目:
<br><br>
<br><br>


{{#seo:
|title={{PAGENAME}} : Exploring Electronics and SUSE Linux | MochiuWiki
|keywords=MochiuWiki,Mochiu,Wiki,Mochiu Wiki,Electric Circuit,Electric,pcb,Mathematics,AVR,TI,STMicro,AVR,ATmega,MSP430,STM,Arduino,Xilinx,FPGA,Verilog,HDL,PinePhone,Pine Phone,Raspberry,Raspberry Pi,C,C++,C#,Qt,Qml,MFC,Shell,Bash,Zsh,Fish,SUSE,SLE,Suse Enterprise,Suse Linux,openSUSE,open SUSE,Leap,Linux,uCLnux,Podman,電気回路,電子回路,基板,プリント基板
|description={{PAGENAME}} - 電子回路とSUSE Linuxに関する情報 | This page is {{PAGENAME}} in our wiki about electronic circuits and SUSE Linux
|image=/resources/assets/MochiuLogo_Single_Blue.png
}}


__FORCETOC__
__FORCETOC__
[[カテゴリ:C++]]
[[カテゴリ:C++]]