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

 
(同じ利用者による、間の9版が非表示)
7行目: 7行目:
<br>
<br>
<code>sudo</code>のような古典的な権限承認プログラムとは異なり、PolKitはセッション全体に対してroot権限を与えるのではなく、各アクションに対してのみ権限を与える。<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
15行目: 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ファイル
31行目: 68行目:
  )
  )
   
   
## インクルードファイル
  include_directories(
  include_directories(
     # ...略
     # ...略
41行目: 79行目:
  )
  )
   
   
## ライブラリファイル
  target_link_libraries(<プロジェクト名>
  target_link_libraries(<プロジェクト名>
     # ...略
     # ...略
50行目: 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>
  </syntaxhighlight>
55行目: 136行目:


== QMakeファイルの設定 ==
== QMakeファイルの設定 ==
==== Pkg-Configを使用する場合 ====
  <syntaxhighlight lang="make">
  <syntaxhighlight lang="make">
# Pkg-Configを使用する場合
  CONFIG += link_pkgconfig
  CONFIG += link_pkgconfig
  PKGCONFIG += \
  PKGCONFIG += \
     polkit-gobject-1
    glib-2.0          \
     polkit-gobject-1 \
    gobject-2.0      \
    gio-2.0
   
   
  LIBS += \
  LIBS += \
66行目: 150行目:
     -lgobject-2.0          \
     -lgobject-2.0          \
     -lgio-2.0
     -lgio-2.0
   
  </syntaxhighlight>
# Pkg-Configを使用しない場合
<br>
==== Pkg-Configを使用しない場合 ====
<syntaxhighlight lang="make">
  LIBS += \
  LIBS += \
     -lglib-2.0 \
     -lglib-2.0 \
91行目: 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";
   
   
     // メインイベントループを作成
     // メインイベントループを作成
184行目: 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++]]