📢 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. | 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++]] | ||