「Mozilla Firefox 官方版」更新腳本 [論壇 - Ubuntu 非官方發行版討論]


正在瀏覽:   1 名遊客


 到底部   前一個主題   下一個主題  [無發表權] 請登錄或者註冊



「Mozilla Firefox 官方版」更新腳本
會員四級
註冊日期:
2015/9/29 21:19
所屬群組:
已註冊使用者
等級: 16
HP : 0 / 380
MP : 100 / 8310
EXP: 22
離線
不喜歡特定發行版加料的Firefox可以參考改用官方版. 已去除firefox自動更新.

僅在 Ubuntu / Debian (sid) / Arch Linux 上測試
必須已安裝發行版的firfox套件

$ wget https://github.com/Mint-Fans/linux-package/raw/master/update-firefox
$ chmod 755 update-firefox
$ update-firefox

如果執行腳本可正常下載 則免設定. 會自動偵測最新版.
如果下載錯誤 就必須手動設定 LANG= 或 VER

詳細可參考 http://download.cdn.mozilla.net/pub/firefox/releases/47.0.1/linux-x86_64/

2016/7/2 19:15
應用擴展 工具箱
回覆: 「Mozilla Firefox 官方版」更新腳本
會員五級
註冊日期:
2012/4/22 10:50
所屬群組:
已註冊使用者
等級: 36
HP : 179 / 898
MP : 664 / 28634
EXP: 92
離線
姜至奐 寫到:
不喜歡特定發行版加料的Firefox可以參考改用官方版. 已去除firefox自動更新.

$ wget https://github.com/Mint-Fans/linux-package/raw/master/update-firefox
$ chmod 755 update-firefox
$ sudo update-firefox

執行前先設定一下腳本.
基本上LANG語言不用設定, 中文與部份外文都是正確的.
但如果使用日文版 就必須手動設定一下 LANG=ja

VER版本自己手動設定目前的 47.0 或者 47.0.1 或 其他版號.
詳細可參考 http://download.cdn.mozilla.net/pub/firefox/releases/


讚喔!

我稍微提一下我的方式

我通常是到下面的網址去下載(使用「firefox ftp」查詢,就可以查到)

https://ftp.mozilla.org/pub/firefox/releases/

例如

英文版

$ wget -c https://ftp.mozilla.org/pub/firefox/releases/47.0.1/linux-x86_64/en-US/firefox-47.0.1.tar.bz2

中文版

$ wget -c https://ftp.mozilla.org/pub/firefox/releases/47.0.1/linux-x86_64/zh-TW/firefox-47.0.1.tar.bz2

然後解開到一個位置,例如 「~/app/firefox/version/firefox-47」

產生一個profile資料夾(空資料夾),例如「~/app/firefox/profile/firefox-47/」

可以寫一個啟動的script,例如「~/app/firefox/bin/firefox-47.sh」


#!/usr/bin/env bash

/home/user/app/firefox/version/firefox-47/firefox --new-instance --profile /home/user/app/firefox/profile/firefox-47



以上script先簡易的寫,解釋概念,可以改寫一些變數取代。

上面這個「script」也可以放到「~/bin」或「/usr/local/bin/」。

我目前使用上,主要有用到兩個參數

* --new-instance <-- 這個可以讓你有多個 filefox instance(當你用兩個不同的版本的時候)
* --profile <-- 這個可以指定 profile 的資料夾所在位置

可以用 「firefox -h」看更多參數。


這樣就可以使用「Portable的Firefox」,
不過上面的script可以改的更動態,
到時候只要複製到任何的資料夾就可以動了。

另外我沒有像樓主去研究怎麼把更新的機制移除就是了,
所以當有新版本釋出時,firefox會自動更新。

系統原本有安裝flash,也會使用,不用去特別設定。

也可以搭配「Desktop Entry」,可以到「 /usr/share/applications/」複製一個來改,除了放到這個位置,
也可以放到「~/.local/share/applications/」這個資料夾。
主要要設定的「Exec=/home/user/app/firefox/bin/firefox-47.sh」指到上面提到的那個啟動的script。
之前的「一篇回覆」,也有提到相關的用法。


也可以放到「~/Desktop」或「~/桌面」,這樣就會在桌面出現圖示。


註:

* 上面「/home/user」請改成您帳號的家目錄
* 關於「~/bin」和「/usr/local/bin/」的概念,
可以參考「鳥哥的 Linux 私房菜 / 10.4.1 路徑與指令搜尋順序」,連結有紀錄在「[索引]如何執行指令」。

關於「~/bin」,在「Ubuntu」可以參考「~/.profile」,裡面有下面這一段


# set PATH so it includes user's private bin if it exists
if [ -d "$HOME/bin" ] ; then
PATH="$HOME/bin:$PATH"
fi



關於「/usr/local/bin/」,在「Ubuntu」可以參考「/etc/environment 」,內容如下


PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games"




關於「/etc/profile」和「~/.profile」和「~/.bashrc」,可以參考這篇討論的「#2」,「#4」,「#6

以上概念參考


========================================================


後記 (2017-04-09):

後來在「回覆: Chrome 45 以上及Firefox 52以上 版本不再支援網路ATM..」,
有提供參考的「Shell Script」,可以輔助參考,了解上面所說的操作步驟。

========================================================



2016/7/2 20:02
應用擴展 工具箱
回覆: 「Mozilla Firefox 官方版」更新腳本
會員五級
註冊日期:
2012/4/22 10:50
所屬群組:
已註冊使用者
等級: 36
HP : 179 / 898
MP : 664 / 28634
EXP: 92
離線
備份連結

======================================================


以下單純討論「shell script」的一些寫法,以「bash」為主,我也還在學習當中。

剛好瞥見到「update-firefox」下面這幾行,
藉著樓主的案例,想到一些可以提出來,給大家參考的。


mkdir -p firefox/browser/defaults
mkdir -p firefox/browser/defaults/preferences
wget https://github.com/Mint-Fans/linux-package/raw/master/vendor.js
mv vendor.js firefox/browser/defaults/preferences/




關於下面這兩行


mkdir -p firefox/browser/defaults
mkdir -p firefox/browser/defaults/preferences




這個應該可以寫成一行就行了


mkdir -p firefox/browser/defaults/preferences




可以參考

$ man 1 mkdir


-p, --parents
no error if existing, make parent directories as needed




「mkdir」,當有給「-p」,

* 若資料夾已經存在,不會出現執行錯誤的訊息。
* 根據你的路徑,直接建立資料夾,若父資料夾不存在,會先建立。


=================================================

然後下面這兩行,提供兩個其他的寫法,


wget https://github.com/Mint-Fans/linux-package/raw/master/vendor.js
mv vendor.js firefox/browser/defaults/preferences/




通常的寫法,就是兩個檔「update-firefox」和「vendor.js」。


我揣測摟主的用意,
因為他只要提供一個「script檔(update-firefox)」,使用wget下載下來。
所以才會把「vendor.js」放在「遠端(github)」,「script檔(update-firefox)」裡再使用wget下載「vendor.js」下來。

提供另外兩個我目前知道的寫法,不見得是「best practice」,
只是剛好藉著這個案例,把我會的寫法提出來供參考。

## 寫法一

第一個用法,我是在「http://scrapy.org/」這裡看到的技巧。

這個用法可以參考「Wikipidia / Here document (中文)」,
或是執行「man bash」找尋「Here Strings」上下文閱讀。

所以上面就可以改成下面這一段,這樣就可以直接寫在「update-firefox」。
就不需要「vendor.js」這個擋了。


cat > vendor.js << EOF
// Use LANG environment variable to choose locale
pref("intl.locale.matchOS", true);

// Disable application updates
pref("app.update.auto", false);
pref("app.update.enabled", false);

// Disable default browser checking.
pref("browser.shell.checkDefaultBrowser", false);

// Disable OpenH264 Decoder
pref("media.gmp-gmpopenh264.enabled", false);

// Don't disable our bundled extensions in the application directory
pref("extensions.autoDisableScopes", 11);
pref("extensions.shownSelectionUI", true);
EOF

mv vendor.js firefox/browser/defaults/preferences/





## 寫法 二

echo的用法,應該比較容易理解,
不過步驟可能會多一道手續,編輯上也可能不容易看懂,還有可能會有淺在的問題發生(見下面的「註:」)
所以一般還是會採用一開始提到的拆成兩個檔的寫法。
這個寫法也可以直接寫在「update-firefox」。
也不需要「vendor.js」這個檔。


#touch vendor.js
echo -n > vendor.js
echo '// Use LANG environment variable to choose locale' >> vendor.js
echo 'pref("intl.locale.matchOS", true);' >> vendor.js
echo >> vendor.js
echo '// Disable application updates' >> vendor.js
echo 'pref("app.update.auto", false);' >> vendor.js
echo 'pref("app.update.enabled", false);' >> vendor.js
echo >> vendor.js
echo '// Disable default browser checking.' >> vendor.js
echo 'pref("browser.shell.checkDefaultBrowser", false);' >> vendor.js
echo >> vendor.js
echo '// Disable OpenH264 Decoder' >> vendor.js
echo 'pref("media.gmp-gmpopenh264.enabled", false);' >> vendor.js
echo >> vendor.js
echo "// Don't disable our bundled extensions in the application directory" >> vendor.js
echo 'pref("extensions.autoDisableScopes", 11);' >> vendor.js
echo 'pref("extensions.shownSelectionUI", true);' >> vendor.js

mv vendor.js firefox/browser/defaults/preferences/



注意:

* 上面兩種寫法,都要注意字串裡面,變數置換的問題。(單引號的字串除外,但要注意單引號裡面的單引號)
* 寫法二也可以直接「echo >> firefox/browser/defaults/preferences/vendor.js」。
但拆開來寫可以面對一種狀況,若是要放到其他使用者權限的資料夾,就可以使用「sudo」。
不然直接「echo」和使用「sudo」,就要迂迴透過另一個方式「sudo sh -c 'echo "hello" >> vendor.js'」。


也許其他人有其他的寫法和做法,歡迎加入討論,

另外作法和寫法,我覺得可以有多種變化,
所以我只是提供一些思路和一些考量的取捨點。

以上參考



2016/7/3 2:36
應用擴展 工具箱
回覆: 「Mozilla Firefox 官方版」更新腳本
會員四級
註冊日期:
2015/9/29 21:19
所屬群組:
已註冊使用者
等級: 16
HP : 0 / 380
MP : 100 / 8310
EXP: 22
離線
samwhelp 寫到:
以下單純討論「shell script」的一些寫法,以「bash」為主,我也還在學習當中。

剛好瞥見到「update-firefox」下面這幾行,
藉著樓主的案例,想到一些可以提出來,給大家參考的。
...

以上參考




THX 腳本已做修正

這個原先是為自己整合的 Arch linux LMAE 使用, 後來拿到LMDE與Mint18上測試出現錯誤.

locale 在「debian」與「五本兔」的錯誤語法與誤刪的的lib已經修正.

shell script 我也沒有很刻意去學習, 只是為達目的找現成資料參考.

目前在我大腦的 shell script 記憶區塊,都放在google搜尋引擎

2016/7/3 12:20
應用擴展 工具箱
回覆: 「Mozilla Firefox 官方版」更新腳本
管理員
註冊日期:
2006/10/31 19:52
來自 Baker Street 221B
所屬群組:
網站管理員
已註冊使用者
討論區管理群
等級: 30
HP : 0 / 733
MP : 405 / 35124
EXP: 34
離線
linux上還是自己編譯Firefox比較好
官方編譯的,裡面一堆library都是萬年版本

2016/7/4 16:54
應用擴展 工具箱


 [無發表權] 請登錄或者註冊


可以查看帖子.
不可發帖.
不可回覆.
不可編輯自己的帖子.
不可刪除自己的帖子.
不可發起投票調查.
不可在投票調查中投票.
不可上傳附件.
不可不經審核直接發帖.