パッケージ管理 OctoPkg - 稼働状況 - 対策

 
1. 概要
2. ports インストール
3. ソースに手を入れる
4. sudo をパスワードなしで有効化
5. sudo で octopkg を起動する

1. 概要

 以下、「FreeBSD 11.3 RELEASE」でとった対策です。  「FreeBSD 12.1 RELEASE」は、もう少しましな方法をとりたかったのですが、結局このやり方を踏襲することになってしまいました。  OctoPkg でインストールができないものを、強引に動作させています。  だいぶ、強引なやり方ですし、そんなやり方をするくらいなら、素直にコマンドラインで「pkg」コマンドを使ってればいいのですが・・・。  少し、遊んでみたので記録しておきます。  条件として、「OctoPkg」を使ってインストールするユーザは、「wheel」グループに存在するものとします。

2. ports インストール

 この時点で既に強引ですな。  pkg と ports でのインストールは、混在させない方が安全です。  実際のインストールまでは行いませんが・・・。

cd /usr/ports/ports-mgmt/octopkg
make
 オプションはありません。

3. ソースに手を入れる


/usr/ports/ports-mgmt/octopkg/work/octopkg-0.2.0/src/main.cpp
 を開いて

  if (UnixCommand::isRootRunning() && !WMHelper::isKDERunning()){
    QMessageBox::critical( 0, StrConstants::getApplicationName(), StrConstants::getErrorRunningWithRoot());
    return ( -2 );
  }
 の部分をコメント化します。  「octopkg」を作成します。

cd /usr/ports/ports-mgmt/octopkg/work/octopkg-0.2.0
make
 作成した「octopkg」で、既存のプログラムを上書きします。

cp /usr/ports/ports-mgmt/octopkg/work/octopkg-0.2.0/bin/octopkg /usr/local/bin/octopkg
 まぁ、間違えたら、アンインストールして、pkg でインストールし直せばいいだけなので、そんなに心配はありません。

4. sudo をパスワードなしで有効化


visudo
 で

## Same thing without a password
# %wheel ALL=(ALL) NOPASSWD: ALL
 93行目の、「#」をはずして、有効化します。  これで、「wheel」グループのユーザは、パスワードなしで「sudo」が使用できます。

5. sudo で octopkg を起動する

 起動コマンドを変更します。

/usr/local/share/applications/octopkg.desktop
 経由で起動しているのであれば

[Desktop Entry]
Type=Application
Version=1.0
Name=OctoPkg
GenericName=A powerful pkgng front-end
Comment=A powerful pkgng front-end
Icon=/usr/local/share/pixmaps/octopi_green.png
Exec=octopkg
Categories=System;
StartupNotify=false
 8行目を

Exec=sudo octopkg
 とします。  これで「octopkg」でインストールできるようになります。
 
 
カウンタバックグラウンド