2012年1月19日 星期四

建立flashplayer的deb檔

最近發現許多瀏覽器上的flash都被宣告為過期的版本而無法使用,想要玩線上遊戲或是看YouTube總是很困擾。Adobe的官方網頁上雖然好像有apt的版本,不過不曉得該用什麼應用程式來開啟或安裝他。於是想到把下載來的tar.gz檔自己作成deb來安裝吧!

1. 下載新版的flash player:
Adobe官方網站下載適合自己平台的rpm及tar.gz檔。下載這個rpm檔純粹是為了要得知版本號,沒有真正其他用途。
利用rpm指令檢查一下他的版本(ubuntu預設沒有安裝rpm,需手動安裝)

rpm -qpi flash-plugin-11.1.102.55-release.x86_64.rpm
發現訊息如下:
Name        : flash-plugin                 Relocations: (not relocatable)
Version     : 11.1.102.55                       Vendor: Adobe Systems Inc.
Release     : release                       Build Date: Tuesday, November 01, 2011 AM09:56:12 HKT
Install Date: (not installed)               Build Host: frbld_lnx_024
Group       : Applications/Internet         Source RPM: flash-plugin-11.1.102.55-release.src.rpm
Size        : 19875381                         License: Commercial
Signature   : (none)
Packager    : Adobe Systems Inc.
URL         : http://www.adobe.com/downloads/
Summary     : Adobe Flash Player 11.1
Description :
Adobe Flash Plugin 11.1.102.55
Fully Supported: Mozilla SeaMonkey 1.0+, Firefox 1.5+, Mozilla 1.7.13+
得知目前的版本為11.1.102.55,而Debian系列套件版本的命名格式應修改成11.1.102-55
mkdir flash-plugin_11.1.102-55_amd64
tar zxvf install_flash_player_11_linux.x86_64.tar.gz -C flash-plugin_11.1.102-55_amd64
mv flash-plugin_11.1.102-55_amd64/libflashplayer.so flash-plugin_11.1.102-55_amd64/usr/lib64

2. 建立deb檔:
mkdir flash-plugin_11.1.102-55_amd64/DEBIAN
cd flash-plugin_11.1.102-55_amd64
cat <<HERE > DEBIAN/postinst
#!/bin/bash
[ -e /etc/alternatives/libflashplayer.so ] && {
    update-alternatives --set libflashplayer.so /usr/lib64/libflashplayer.so
} || {
    update-alternatives --install /usr/lib/mozilla/plugins/libflashplayer.so libflashplayer.so /usr/lib64/libflashplayer.so 2000
}
HERE

cat <<HERE > DEBIAN/prerm
#!/bin/bash
update-alternatives --remove libflashplayer.so /usr/lib64/libflashplayer.so
HERE

chmod 555 DEBIAN/postinst DEBIAN/prerm
postinst與prerm是這個包這個package的重要script。另外,我們還缺一個control檔:
cat <<HERE > DEBIAN/control
Package: flash-plugin
Version: 11.1.102-55
Section: Applications/Internet
Priority: optional
Architecture: amd64
Maintainer: yourname
Description: Adobe flash player
HERE

然後就是編譯工作:
cd -
sudo dpkg-deb --build flash-plugin_11.1.102-55_amd64
包deb的過程不太可能會失敗,常見的錯誤僅有未使用root權限執行build動作。完成後會產生一個flash-plugin_11.1.102-55_amd64.deb檔案,這就是今天的主角。

3. 安裝我們剛包好的flash player:
dpkg -i flash-plugin_11.1.102-55_amd64.deb
恭喜你成功安裝了新版的flash player,而且還學到了如何包deb。

Share