nyan &plamolinux に戻る|目次に戻る|**|前に戻る|次をみる

makepkg type 001 plamolinux

package の 作り方

plamo ML

plamolinux の ML に 参考資料として、斯様な 物が有ります。

http://web.kyoto-inet.or.jp/people/jeanne/linux/linuxtips.html#17
make install した後, find を使って更新されたファイル のリストを作り, tar でまとめる。
# touch /tmp/mark ; sleep 1
# make install
# find /etc /sbin /lib /usr /var -cnewer /tmp/mark ! -type d -print >/tmp/files
# tar -T /tmp/files -czf PACKAGENAME.tgz
こんなの も 有るようです
http://www004.upp.so-net.ne.jp/nobushimizu/linux/plamo/page05-1.htm

これで 処理する事で 対応は 出来るようです。尚 そこには 他に 沢山の資料が 有るようです、また makepkg を キーワードで 検索されると 良いようです。

package の 作り方

nyantarou 方式

何も特別でない やって見るだけ

# cd /var/data/
# mkdir try_pack
# cd try_pack
# cp /usr/local/src/0001_gnupg/1-4-2/gnupg-1.4.2.tar.gz .

参考にして

man tar
-p, --same-permissions, --preserve-permissions
許可情報を全て抽出する
# tar xvzpf gnupg-1.4.2.tar.gz 2>&1 | tee untar_gnu
# ls -l
drwxrwxrwx   16 mm       1000         4096 Jul 27 04:11 gnupg-1.4.2/
-rw-r--r--    1 root     root      4166891 Aug 25 16:04 gnupg-1.4.2.tar.gz
-rw-r--r--    1 root     root        18397 Aug 25 16:07 untar_gnu
# cd gnupg-1.4.2/
# cd gnupg-1.4.2/
# ./configure 2>&1 | tee config_gnu
# mv config_gnu ../

参考にして

INSTALL の 抜粋
By default, `make install' will install the package's files in
`/usr/local/bin', `/usr/local/man', etc. You can specify an
installation prefix other than `/usr/local' by giving `configure' the
option `--prefix=PREFIX'.
==============================================
先行して インストール されているもの 手動で インストールしたもの
Thu Aug 25 16:38:42 JST 2005
# ls -l /usr/local/bin/
total 4500
-rwsr-xr-x 1 root root 2988903 Aug 25 09:52 gpg*
-rwxr-xr-x 1 root root 196180 Aug 25 09:52 gpgsplit*
-rwxr-xr-x 1 root root 1408450 Aug 25 09:52 gpgv*
lrwxrwxrwx 1 root root 13 Aug 24 08:04 ish -> ../../bin/ish*
lrwxrwxrwx 1 root root 13 Aug 24 08:04 nkf -> ../../bin/nkf*
参考のために 提示している これを 置き換える 予定である。
===============================================

さて ./configure の後 make をして

ここから 本番が 始まる

# mkdir -p work/usr
# make install prefix=`pwd`/work/usr 2>&1 | tee make_install_gnu
# mv make_install_gnu ../
# cd work/
# ls -l usr/bin/
total 4500
-rwxr-xr-x    1 root     root      2988759 Aug 25 16:36 gpg*
-rwxr-xr-x    1 root     root       196156 Aug 25 16:36 gpgsplit*
-rwxr-xr-x    1 root     root      1408310 Aug 25 16:36 gpgv*

時間と容量の 項目に 注意 当然 異なった 時間と大きさに なっている。

# ls -l usr/
total 20
drwxr-xr-x    2 root     root         4096 Aug 25 16:36 bin/
drwxr-xr-x    2 root     root         4096 Aug 25 16:36 info/
drwxr-xr-x    3 root     root         4096 Aug 25 16:36 libexec/
drwxr-xr-x    4 root     root         4096 Aug 25 16:36 man/
drwxr-xr-x    4 root     root         4096 Aug 25 16:36 share/

ここで 別途 インストール してあるものを 見ておこう

# ls -l /usr/local/libexec/gnupg/
total 636
-rwxr-xr-x    1 root     root       148626 Aug 25 09:52 gpgkeys_finger*
-rwxr-xr-x    1 root     root       256389 Aug 25 09:52 gpgkeys_hkp*
-rwxr-xr-x    1 root     root       226975 Aug 25 09:52 gpgkeys_http*

これは 新規に ダミーインストールしてあるもの。つまり 今回 インストールしてあるもの

# ls -l usr/libexec/gnupg/
total 636
-rwxr-xr-x    1 root     root       148598 Aug 25 16:36 gpgkeys_finger*
-rwxr-xr-x    1 root     root       256361 Aug 25 16:36 gpgkeys_hkp*
-rwxr-xr-x    1 root     root       226951 Aug 25 16:36 gpgkeys_http*

時間 の項目に注目 又 ファイルの 位置も 異なることに 注意、 今回 インストールしてあるものの ディレクトリを 明確にすると 以下の様になる。

# ls -l /var/data/try_pack/gnupg-1.4.2/work/usr/libexec/gnupg/
-rwxr-xr-x    1 root     root       148598 Aug 25 16:36 gpgkeys_finger*
-rwxr-xr-x    1 root     root       256361 Aug 25 16:36 gpgkeys_hkp*
-rwxr-xr-x    1 root     root       226951 Aug 25 16:36 gpgkeys_http*

へてから パッケージの作成に 移る

# makepkg gnupg-1.4.2.tgz 2>&1 | tee pkg_gnupglog
gnupg-1.4.2.tgz を作成中...
# mv pkg_gnupglog ../../

途中で何か問い合わせを 受けても 改行 のみ 資料は いっちゃん最初に 記載した 参考資料の 場所に 有ると 思います。

# ls -l
-rw-r--r--    1 root     root      2865607 Aug 25 16:54 gnupg-1.4.2.tgz
drwxr-xr-x    7 root     root         4096 Aug 25 16:36 usr/

pkgtool を 使用して 上書きインストールを する事にしましょう。 その前に gnupg が インストールされていないかの確認をしておきます。

# ls /var/log/packages/ | grep gnu
gnuplot
# ls /var/log/packages/ | grep pg 

存在は していませんね?疑うならば ”# pkgtool”と起動して 確認すれば 良いでしょう。

補足事項

上記の様に インストールは されていないことに なっているいるが 実際は tar から 手動にて インストール した場合は データー ベースに登録されてい ないということです。 そこで 上書きインストールするとともに データー ベース にも 登録をしてみようと いうことである。これは バージョンアップされたも のを インストールする場合 既に インストール してあるものを 簡単に削除出 来る様にしてより 便利に しよう ということです。 つまり、手動でインストールした場合に uninstool するのに 手間が かかるので 次善の 策として 採用を 図る。当然 apt rpm 等には 及ばないが 練習練習である。

pkgtool

pkgtool を 立ち上げて 実行 してみよう

# pkgtool
~~~~~~~~~~~~~~~~~~~~~~~~~~
Plamo Linux パッケージツール (derived from pkgtool version 9.1.0)--
Plamo Linux パッケージツールへようこそ  
どうしましょうか?
Current  カレントディレクトにあるパッケージをインストール
Other    他のディレクトリからパッケージをインストール
Floppy   フロッピーからパッケージをインストール  
Remove   インストールされているパッケージを削除
View     パッケージに含まれているファイルを閲覧  
Setup    インストール済パッケージのインストールスクリプトを再実行
Exit     pkgtool の終了
  <  OK  >                   
=====================================
SELECT  Current
SELECT  <  OK  >    
~~~~~~~~~~~~~~~~~~~   
Size: Compressed: 2798 K, uncompressed: 8050 K.
Yes   gnupg-1.4.2 をインストールする  
No    gnupg-1.4.2 はインストールしない 
Quit  インストールを中止する
<  OK  >--------
============================
SELECT  Yes 
SELECT  <  OK  >    
~~~~~~~~~~~~~~~~~
# 
===================================

確認をしておこう

# ls -l /usr/local/libexec/gnupg/
total 636
-rwxr-xr-x    1 root     root       148626 Aug 25 09:52 gpgkeys_finger*
-rwxr-xr-x    1 root     root       256389 Aug 25 09:52 gpgkeys_hkp*
-rwxr-xr-x    1 root     root       226975 Aug 25 09:52 gpgkeys_http*
# ls -l /usr/local/bin/
total 4500
-rwsr-xr-x    1 root     root      2988903 Aug 25 09:52 gpg*
-rwxr-xr-x    1 root     root       196180 Aug 25 09:52 gpgsplit*
-rwxr-xr-x    1 root     root      1408450 Aug 25 09:52 gpgv*
lrwxrwxrwx    1 root     root           13 Aug 24 08:04 ish -> ../../bin/ish*
lrwxrwxrwx    1 root     root           13 Aug 24 08:04 nkf -> ../../bin/nkf*

旧いままである 、一方 データー ベースには 登録 されているか どうか の 確認を してみよう

# ls /var/log/packages/ | grep gnu
gnupg-1.4.2
gnuplot

では 削除して再度 インストールを してみよう

# pkgtool
Remove   インストールされているパッケージを削除
 +--------------------------走査中----------------------------+       
    | どのパッケージをインストールしたかのリストを作成           |       
    | するためにシステムを調べています.しばらくお待ちください.
削除するパッケージの選択
削除したいバッケージを選択してください.UP/DOWN                     |  
| キーでカーソルを動かし                                              |  
| スペースキーで削除したいパッケージをマークしてください.マークは    |  
| 任意の個数付けることができます
[X] gnupg-1.4.2 
 <  OK  >   
パッケージの削除中---------------------+        
     |                                                          |        
     | gnupg-1.4.2 を削除しています.                           |        
     |                                                          |        
     | 他のパッケージと重複しているファイルの有無をそれぞれのフ |        
     | ァイルごとにチェックしているので,パッケージの削除にはか |        
     | なり時間がかかります.                                   |        
     | 進展状況を見るには,別のコンソールを起動して以下のコマン |        
     | ドを 実行してください                                    |        
     |                                                          |        
     | tail -f /var/log/setup/tmp/PKGTOOL.REMOVED      
-パッケージの削除完了----------------+     
-パッケージの削除完了----------------+            
          | パッケージは削除されました.                    |            
          | 削除されたファイルのリストは/var/log/setup/tmp: |            
          | PKGTOOL.REMOVED に作成しました.                |            
          +-------------------------------------------------+            
          |                   <  OK  >     
 |Exit     pkgtool の終了                                          | |  
         <  OK  >     
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

ほなら

# ls /var/log/packages/ | grep gnu
gnuplot
#  ls -l /usr/local/bin/
-rwsr-xr-x    1 root     root      2988903 Aug 25 09:52 gpg*
-rwxr-xr-x    1 root     root       196180 Aug 25 09:52 gpgsplit*
-rwxr-xr-x    1 root     root      1408450 Aug 25 09:52 gpgv*
lrwxrwxrwx    1 root     root           13 Aug 24 08:04 ish -> ../../bin/ish*
lrwxrwxrwx    1 root     root           13 Aug 24 08:04 nkf -> ../../bin/nkf*

つまり あくまで 手動で インストール した物は どうしようもない という ことの 様である。

次の 処理

どうやって 手動で インストールしたものをアンインストール( 削除) する か? という 問題に なります。

にゃんたろう 拝!

2005年10月11日 (火) 22:47:59 JST 作成


前に戻る|次をみる

Copyright © 2004.-2007. nyantarou All Rights Reserved.