谷歌瀏覽器爲什麼不能自定義安裝路徑?

久病成名醫。在經歷了電腦最近的備份崩潰恢復後,我對朝夕相處的Windows又多了幾分瞭解。Windows 7是Windows XP之後微軟最成功的操作系統,也是之後Windows 8和10的基礎,因此本文介紹的內容都以Windows 7爲環境。

Windows用戶最熟悉的程序安裝路徑是C盤下的Program Files。在64位操作系統下,多出來了一個區分32位程序的Program Files (x86) 文件夾。許多用戶爲了防止操作系統重裝時程序丟失,將軟件都安裝在d盤或其他硬盤分區中。無需安裝的硬盤版(綠色)和程序員普遍使用的虛擬機加編譯或源代碼形式的工具,則直接保存在下載文件夾或同一個硬盤的其他目錄下。以上大概就是普通Windows用戶安裝程序的幾種情況。

新的軟件打破了慣例。我們會注意到谷歌瀏覽器(以下簡稱Chrome)和其他一些軟件既不允許用戶選擇安裝路徑,也沒有安裝到Program Files目錄下,而是在C:\Users\[當前用戶名]\AppData\Local路徑下創建了專用的文件夾。要理解這些軟件爲什麼被設計成如此行爲,必須理解Windows中上述文件夾的作用。

首先AppData與下面提到的ProgramData都是隱藏的文件夾,要通過下列操作才能看到:

  1. 打開文件管理器(即開始菜單中選擇計算機),在工具欄的“組織”下拉列表中,單擊“文件夾和搜索選項”,顯示文件夾選項對話框。
  2. 選中“查看”選項卡。
  3. 在高級設置的“隱藏文件和文件夾”條目下,選擇“顯示隱藏的文件文件夾和驅動器”。確定並關閉文件夾選項對話框。

ProgramData與AppData文件夾的含義與區別

這時在C盤下將能看到與Program Files並列的ProgramData文件夾。顧名思義,ProgramData文件夾就是用來保存各個程序的數據的,如配置、緩存和臨時文件,其下建立了對應各個程序的子文件夾。

C盤下還有一個Users文件夾,當前計算機的所有賬號都有一個同名的子文件夾於其中,此外還有名爲Public和Guest這兩個對應特殊賬號的文件夾,這些文件夾中存放的是對應賬號的環境和配置信息。每個賬號的文件夾下,有一個名爲AppData的隱藏子文件夾,其中存放的也是各個程序的數據,它與ProgramData的區別在於,ProgramData保存的是與賬號無關的數據,也就是對一個程序的所有用戶都相同的數據,例如一個畫圖軟件的幫助文件;AppData保存的是特定於某個賬號的數據,例如各個用戶所畫的圖片文件。

Local、Locallow和Roaming文件夾的含義與區別

在AppData文件夾下,又存在Local、Locallow和Roaming三個子文件夾,它們是爲企業、組織等多計算機多用戶的環境而設置的。在這樣的環境中,多個用戶可能共享一臺計算機,一名用戶能夠使用不同的計算機,用戶登錄的不是單臺計算機,而是多臺計算機組成的域。當一名用戶使用不同的計算機時,他希望計算機看起來是一樣的、使用習慣是一致的,這就要求前面所說的某個賬號的環境和配置信息能夠在計算機之間漫遊(Roam)。Windows的做法是,用戶登錄到域服務器時,服務器將他的賬號信息傳輸到他所用的計算機,保存在Roaming文件夾內;等到用戶登出時,有可能更改過的Roaming文件夾內最新的賬號信息又被上傳回服務器。與之對應,Local文件夾內保存的則是僅僅存放於本機的賬號信息,這些信息不必漫遊,或者由於體積太大,不方便漫遊,如瀏覽器的緩存。Locallow用於保存低級別的本機賬號數據,現已很少使用。

對於家庭使用的個人計算機,不存在漫遊的需要和可能性,賬號信息基本上都保存在Local文件夾內。

Chrome爲什麼要安裝在C:\Users\[當前用戶名]\AppData\Local\Google\Chrome路徑下?

既然一臺計算機允許有多個賬號訪問,就存在賬號權限的問題。上面提到Users路徑下各個文件夾保存的是對應賬號的數據。不同的賬號不僅需要有分隔的位置以存放其數據,還必須控制數據的訪問權限——每個賬號只有權訪問自己的數據。表現在Windows的存取控制列表上,就是每個賬號的文件夾只有該賬號和管理員、系統等特殊賬號有權訪問。再來看Program Files文件夾,管理員和系統等賬號對該文件夾及其中的內容有完全權限,即可以讀、寫、修改、刪除、列出文件夾內容、運行程序等等;普通賬號只能讀、列出文件夾內容和運行程序。換言之,只有管理員的特殊賬號能夠將程序安裝於該文件夾內,普通賬號可以使用這些程序,但不能安裝、修改或刪除。

在家用電腦上,我們都是以管理員賬號登錄,在很多情況下管理員甚至是唯一的個人身份賬號,並且無需輸入密碼就登錄。因此我們意識不到多賬號和權限的問題,在Program Files或任何其他文件夾下安裝、修改和刪除程序都被視爲理所當然。

在多用戶通過不同賬號訪問一臺計算機的環境中,權限的問題就會浮現出來。首先是普通賬號沒有權限在Program Files文件夾中安裝程序。其次是即使管理員在該文件夾中安裝好了供大家使用的程序,普通賬號也無法進行更新。而我們知道Chrome是一款更新頻繁的瀏覽器,爲了確保任何賬號使用計算機時都有權安裝和更新、每個賬號的瀏覽器都對其他賬號透明從而免去瀏覽時的疑問和維護時的衝突,Google便強制將Chrome的程序和數據一道安裝在C:\Users\[當前用戶名]\AppData\Local\Google\Chrome路徑下。因爲AppData文件夾的本意是保存特定於某個賬號的數據而非程序,才使得這一做法看上去有些奇怪。假如Users文件夾本來就被設計成不僅保存數據,也用於存放屬於不同賬號的程序,Chrome的做法就顯得正常了。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章