在 Arch Linux 上安裝 Naver Line


前言

自從不打遊戲之後,在 Linux 環境中一直都沒有什麼大問題,

但是沒辦法在 Linux 上面使用 Line,老實說是還蠻不方便的事情之一,

不過原本有 Chrome 的 Extension 可以安裝 Line 一直都不是什麼大問題,

但在這次我把沒有在用的 Surface Go 裝上 Manjaro 之後我發現在執行的時候一直出現網路錯誤,

稍微在網路上搜索了一下之後才發現 Line 已經正式停止 Chrome Extension 的支援了。

雖然很不想要淌這個混水,但要在 Linux 上面執行 Line 看來只剩下 Wine 這一個方向了。

Linux + Wine, 施主回頭是岸。

準備工作

YAY (Yet Another Yogurt)

因爲 Manjaro 是基於 Arch,爲了方便我們在上面直接編譯安裝 yay 這個 套件管理員

原本在使用的是 Yaourt ,不過因爲開發者很久沒有更新了,yay 是一個很好的替代方案。

若是簡單比較差異,就是 pacman + AUR repo 的工具,甚至連使用方法都跟 pacman 相同。

安裝

$ git clone https://aur.archlinux.org/yay.git
$ cd yay
$ makepkg -si

Color Output

記得開啓 Pacman 的 Color Output。

$ vim /etc/pacman.conf

Enable Multilib

編輯完之後請不要急着關閉編輯器,記得開啓 multilib

安裝 Wine 的時候用的到。

Wine

Yay 設定好之後,我們要開始安裝 Wine,

但是最新開發版本 5.0 並不支援 Naver Line,

會在執行的時候顯示 verifyCodeSign=failed 的訊息。

後來發現在 wine-staging 的時候才跑的起來,但也已經過了好幾天了 QAQ。

安裝 Wine Staging

爲了防止之後各種依賴的錯誤,我們要把所有 Wine 的依賴一次裝起來。

$ yay -Sy

$ yay -S wine-staging winetricks

$ yay -S giflib lib32-giflib libpng lib32-libpng \
        libldap lib32-libldap gnutls lib32-gnutls mpg123 lib32-mpg123 \
        openal lib32-openal v4l-utils lib32-v4l-utils libpulse \
        lib32-libpulse alsa-plugins lib32-alsa-plugins alsa-lib \
        lib32-alsa-lib libjpeg-turbo lib32-libjpeg-turbo libxcomposite \
        lib32-libxcomposite libxinerama lib32-libxinerama ncurses lib32-ncurses \
        opencl-icd-loader lib32-opencl-icd-loader libxslt lib32-libxslt \
        libva lib32-libva gtk3 lib32-gtk3 gst-plugins-base-libs \
        lib32-gst-plugins-base-libs vulkan-icd-loader lib32-vulkan-icd-loader \
        cups samba dosbox

初始化 Wine

安裝完成之後我們要先初始化 Wine,

因爲還沒有安裝中文字型,所以要先設定環境變數爲英文:

LC_ALL=en_US.UTF8 WINEARCH=win64 WINEPREFIX=$HOME/.wine winecfg

若是像我一樣使用 fish shell,必須要加上 env 才能設定。

env LC_ALL=en_US.UTF8 WINEARCH=win64 WINEPREFIX=$HOME/.wine winecfg

建議將環境設定爲 Windows 10, 我是這樣跑起來的。

安裝中文字形

在設定中文字形之前,我們必須要先安裝等一下要使用的中文字形,

在這裏使用的是 Google 的 Noto 字形,檔案很大非常大,

不過我們可以使用 Yay 一行安裝:

$ yay -S noto-fonts-cjk

這個過程會很沉長,可以去沖個澡或者上個廁所等一下。

設定中文字體

安裝完成之後我們要解決中文字形無法顯示的問題, 不過好在一個註冊檔就能解決這個煩人的問題:

REGEDIT4
[HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\FontLink]
"FontLinkControl"=dword:00004000
"FontLinkDefaultChar"=dword:00003000
/* 替換字型1 */
/* 安裝Wine不會提供字型,所以需要替換字型,我以Noto Sans CJK TC Medium替換 */
/* 取代字型 */
/* Wine 1.1.12 打補丁後也會有亂碼,所以要修改這裡 */
/* Wine 1.1.12 之前可以不用修改,改了應該也沒關係 */
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\FontLink\SystemLink]
"Microsoft Sans Serif"="NotoSansCJK-Medium.ttc,Noto Sans CJK TC Medium"
"SimSun"="NotoSansCJK-Medium.ttc,Noto Sans CJK TC Medium"
"Tahoma"="NotoSansCJK-Medium.ttc,Noto Sans CJK TC Medium"
"PMingLiU"="NotoSansCJK-Medium.ttc,Noto Sans CJK TC Medium"
[HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\FontSubstitutes]
"Arial Baltic,186"="Noto Sans CJK TC Medium,186"
"Arial CE,238"="Noto Sans CJK TC Medium,238"
"Arial CYR,204"="Noto Sans CJK TC Medium,204"
"Arial Greek,161"="Noto Sans CJK TC Medium,161"
"Arial TUR,162"="Noto Sans CJK TC Medium,162"
"Courier New Baltic,186"="Noto Sans CJK TC Medium,186"
"Courier New CE,238"="Noto Sans CJK TC Medium,238"
"Courier New CYR,204"="Noto Sans CJK TC Medium,204"
"Courier New Greek,161"="Noto Sans CJK TC Medium,161"
"Courier New TUR,162"="Noto Sans CJK TC Medium,162"
"Helv"="Noto Sans CJK TC Medium"
"Helvetica"="Noto Sans CJK TC Medium"
"MS Shell Dlg"="Noto Sans CJK TC Medium"
"MS Shell Dlg 2"="Noto Sans CJK TC Medium"
"PMingLiU"="Noto Sans CJK TC Medium"
"新細明體"="Noto Sans CJK TC Medium"
"Tahoma"="Noto Sans CJK TC Medium"
"Times"="Noto Sans CJK TC Medium"
"Times New Roman Baltic,186"="Noto Sans CJK TC Medium,186"
"Times New Roman CE,238"="Noto Sans CJK TC Medium,238"
"Times New Roman CYR,204"="Noto Sans CJK TC Medium,204"
"Times New Roman Greek,161"="Noto Sans CJK TC Medium,161"
"Times New Roman TUR,162"="Noto Sans CJK TC Medium,162"
"Tms Rmn"="Noto Sans CJK TC Medium"

"Lucida Sans Unicode"="NotoSansCJK-Medium.ttc,Noto Sans CJK TC Medium"
/* 平滑化(anti-alias) */
/* 如果覺得開了之後字體難看,把三個Y改成N */
[HKEY_CURRENT_USER\Software\Wine\X11 Driver]
"ClientSideAntiAliasWithCore"="N"
"ClientSideAntiAliasWithRender"="N"
"ClientSideWithRender"="N"

/* 替換字型2 */
[HKEY_CURRENT_USER\Software\Wine\Fonts\Replacements]
@="Noto Sans CJK TC Medium"
"Arial"="Noto Sans CJK TC Medium"
"Fixedsys"="Noto Sans CJK TC Medium"
"Microsoft Sans Serif"="Noto Sans CJK TC Medium"
"MingLiU"="Noto Sans CJK TC Medium"
"MS UI Gothic"="Noto Sans CJK TC Medium"
"PMingLiU"="Noto Sans CJK TC Medium"
"Simsun"="Noto Sans CJK TC Medium"
"Songti"="Noto Sans CJK TC Medium"
"System"="Noto Sans CJK TC Medium"
"Tahoma"="Noto Sans CJK TC Medium"

存檔成 zh.reg 之後放到 $HOME/.wine 中,

然後使用 $ wine regedit zh.reg 或者 regedit zh.reg 將註冊檔匯入。

當然也可以將 zh.reg 放到 $HOME/.wine/drive_c/users/$USERNAME/Desktop 中,

然後輸入 $ wine regedit 使用註冊表編輯器手動選擇匯入檔案。

Winetricks

安裝 Line 之前要先使用 Winetricks 安裝 vcrun2008

$ winetricks vcrun2008

Line

下載 Line

終於到了重頭戲了!

官方網站 下載最新的 LineInst.exe

安裝 Line

切換到下載資料夾,然後執行 $ wine LineInst.exe 執行安裝。

安裝的時候選擇 English 直接一直下一步安裝完之後,沒有意外 Line 會自動啓動。

同場加映

dmenu-desktop 執行 Line

若是像我一樣使用 Tiling Window Manager 的話,應該是沒辦法直接執行捷徑啓動 Line,

Dmenu 的 i3-dmenu-desktop 可以直接執行 Wine 的 Line。

dmenu 執行 Line

如果不想要使用 i3-dmenu-desktop 執行 Line,

或者想要在 terminal 中輸入就能執行行 Line 的話,

可以簡單寫一個 Shell 執行就可以了。

#!/bin/bash

wineuserpath=$HOME/.wine/drive_c/users/username
linepath="Local Settings/Application Data/LINE/bin"
exe=LineLauncher.exe

wine $wineuserpath/$linepath/$exe

然後記得 $ chmod +x naver-line 讓他可以執行之後,

丟到 /usr/local/bin 中,就可以了!

$ sudo mv naver-line /usr/local/bin/

之後只要在 terminal 中輸入 naver-line 他就會自動執行了哦~

不使用 line 當名稱是因爲有一個程式就是 line,這樣子可以避免重名。

心得

還記得第一次碰到 Wine 的時候是想要在自己破破爛爛的 ubuntu 8.04 上玩 RO 的時候。

以前 Wine 設定起來非常複雜,還寫了一篇文章放在 Ubuntu 的論壇上面。

那時候偷偷發誓在也不要這樣折騰自己,要玩遊戲的話用 Windows 就好了。

沒想到十多年之後會爲了 Line 又重新回來用 Wine :/