首頁 > 軟體

Ubuntu 18.04及Snap體驗——讓Linux入門更簡單

2020-06-16 16:50:36

初次聽說過Linux的時候,是大一計算機課時候老師介紹說除了Windows還有Linux、Unix作業系統。但真正接觸Linux是為管理虛擬專用伺服器(VPS),都說Ubuntu適合新手於是接觸了是Ubuntu 10.10(Maverick Meerkat)。從此愛上了Linux。雖然之後我使用CentOS的時間長於別的Linux Distribution,但Ubuntu從沒有離開過我的電腦。如今都發行到了Ubuntu 18.04(Bionic Beaver)。

0x00 Ubuntu 18.04的安裝

1.Ubuntu每年都會在4月與10月份發布一個版本的更新,而每兩年發布一個LTS長期支援版本,其支援期限長達5年,而非LTS版本的支援通常只有半年。而18.04是2016年之後發行的第一個LTS版本,作為一個喜歡嚐鮮的Linuxer來說,肯定第一時間也安裝了Ubuntu 18.04 LTS。

2.Ubuntu18.04的安裝與之前的發行版並沒有什麼區別。由於我的生產環境Ubuntu16.10中程式較多,被DIY的較多,因而並沒有在實體機中安裝Ubuntu 18.04,而是在VirtualBox中安裝的。

3.在安裝型別中,我選擇了其他選項,因為這樣可以自己建立、調整分割區,或者為Ubuntu選擇多個分割區。

4.對於分割區來說,特別是在虛擬機器中,建議/掛載點劃分15G左右,/boot大概128MB左右,/swap分割區大概2G左右,剩餘空間劃分為/home。

由於我在虛擬機器裡分割區的劃分大小與裝置都是很隨意的設定了一下,不過還是應該按照個人的實際情況來安裝設定。對於初次安裝Linux的人來說,機子設定還可以的話,直接劃分/與/home即可。

5.之後耐心等待就可以完成Ubuntu 18.04的安裝了,總體安裝還是非常的快的,當然如果你勾選了網路下載更新的話,那麼會根據你的網速來決定你的安裝過程。安裝完畢後,提示重新啟動,之後就可以進入Ubuntu 18.04的桌面了。

6.進入系統後會發現又是那個熟悉的Gnome圖形介面,這裡不得不吐槽下從Ubuntu11.04到Ubuntu17.10的過程中圖形介面為Unity,我覺得是一個非常不友好的圖形介面,反正在Unity統治Ubuntu的6年半時間裡,我基本都會在第一時間將其更換為Gnome。

0x01 Ubuntu 18.04新特性與體驗

新版Gnome

剛才我還吐槽了Unity的同時讚美了Gnome。而隨Ubuntu 18.04一起到來的還有Gnome3.28。

由於在上一個LTS版本的Ubuntu中,Unity依舊為主流的桌面環境,Gnome3.28的到來標誌著新統一風格客製化的Gnome3.0桌面在長期支援版上的到了支援。

Suru圖片的納入

喜歡Linux的人一定還記得Ubuntu Touch吧!這個由Ubuntu衍生而來的行動作業系統,當初Suru作為一個開源圖示專案,就是專門為Ubuntu Touch設計的,如今已經完全的融入到了Ubuntu 18.04LTS,那些當初設計的圖示已經被重新用於Gnome主題圖示相對應。當然出了之前設計的圖示外,此次還在Sura專案中加入了很多資料夾與檔案型別的圖示。

具體樣式可以參考Suru官網。

# Project Suru

https://snwh.org/suru

全新Emoji支援

Firefox最近在about:config中終於可以啟開了內建Emoji,而查閱一下關於FirefoxEmoji支援,你會發現其最早是在Mozilla Firefox 50就引入了內建Emoji,不過最先只是給Gnu/Linux與Win8這類原生不帶Emoji的系統啟用的,你就可以知道Linux對Emoji的支援應該不是那麼滿意(Fedora除外哈!)該版本的Ubuntu中為了保持平台間的一致性,其預設使用了Noto Color Emoji(AOSP中也使用了該字型)字型,其支援最新的Unicode版本中定義的所有Emoji符號,且在該版本的Ubuntu中GTK程式中新增Emoji非常的簡單。

Gnome To Do

作為一個重度健忘症患者,在使用Windows和Android的時候,我一直都是用Microsoft To-Do來最為待辦事項管理,不過沒有想到在這個版本的Gnome中竟然自帶了這個功能。

Minimize on Click

該功能類似於Windows的工作列,點選軟體圖示可以最小化視窗或者還原視窗。只不過點選的位置換成了Ubuntu Dock上了。不過略有遺憾的就是該功能預設情況下為關閉的,不過可以通過以下命令啟用該功能。

#啟用Minimize on Click

gsettings set org.gnome.shell.extensions.dash-to-dock click-action 'minimize'

Gstreamer Multimedia Codecs解碼器的加入

在安裝Ubuntu 18.04的時候就預設加入了第三方解碼器Gstreamer Multimedia Codecs,這個讓人挺意外的,其可以讓我們實現線上視訊觀看和改進圖形顯示卡的支援。當然不包括那些受限於Adobe Flash和專有驅動程式。

夜間模式

和Windows10 April更新一樣,加入了夜間模式,對於在學校半夜斷電後,還在玩電腦的同學來說,是一個非常貼心的功能。

除此之外,Ubuntu 18.04還使用Linux Kernel 4.15,並且恢復了Xorg為預設顯示服務等。這些新的特性都在預示著新的Ubuntu系統是一個很優秀的桌面Linux Distribution。

0x02 Ubuntu 18.04軟體安裝與體驗

更換更新源

為了讓軟體下載與系統更新更快點,推薦將更新源改為國內的更新源。這裡推薦使用阿里雲的更新源。

#阿里雲更新源

deb http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse

更換方法:

sudo vim /etc/apt/sources.list

將檔案的內容替換為阿里雲的更新源,:wq儲存

sudo apt update
sudo apt upgrade

安裝搜狗輸入法
其實我感覺Ubuntu現在預設的輸入法還是不錯的,當然沒有搜狗輸入法好用,好在搜狗輸入法也提供了Linux版本。
#Sogou for Linux

https://pinyin.sogou.com/linux/?r=pinyin
下載後進入下載目錄,嘗試安裝軟體,之後安裝依賴後重新安裝即可。

#搜狗輸入法安裝

sudo dpkg -i sogoupinyin2.2.0.0108amd64.deb

sudoapt-get install -f

sudo dpkg-i sogoupinyin2.2.0.0108amd64.deb
安裝好後,在系統設定中語言部分將鍵盤輸入法系統改為fcitx。之後重新啟動系統。在fcitx的設定中設定搜狗輸入法為預設即可。

網易雲安裝
網易雲的安裝和搜狗輸入法的一樣,不過不用設定非常的簡單。
#網易雲下載

http://music.163.com/
官網下載好後,進入下載目錄。
sudo dpkg-i netease-cloud-music1.1.0amd64_ubuntu.deb

sudoapt-get install -f

sudo dpkg-i netease-cloud-music1.1.0amd64_ubuntu.deb
不出意外的話,安裝完畢後你是無法開啟的,貌似是這個版本的Bug。
不過可以通過修改許可權來完成,不過修改後需要重新啟動。
cd ~/.cache

chmod 777netease-cloud-music

reboot

之後就可以在Ubuntu 18.04中欣賞音樂了。

QQ安裝

由於QQ沒有提供Linux版本的程式,所以一般情況下都用wine來安裝,不過wine的設定略麻煩,所以推薦使用appimage的方式來安裝。

#QQ Appimage 下載

https://yun.tzmm.com.cn/index.php/s/XRbfi6aOIjv5gwj/download

下載好程式後,右鍵屬性——允許作為程式執行檔案勾選即可。或者chmod +x download。

剩下的程式就可以用過APP Store或者Snap Store安裝即可。

0x03 關於Snap

Snap是Ubuntu母公司Canonical於2016年4月發布Ubuntu16.04時候引入的一種安全的、易於管理的、沙盒化的軟體包格式,與傳統的dpkg/apt有著很大的區別。

Snap可以讓開發者將他們的軟體更新包隨時發布給使用者,而不必等待發行版的更新週期;其次Snap應用可以同時安裝多個版本的軟體,比如安裝Python2.7和Python3.3。

我初次接觸Snap的時候是安裝NextCloud,通過Snap的方式來安裝NextCloud,很快就可以完成安裝與部署。

0x04 使用Snap安裝主題與美化

每天都要面對的作業系統,有一個漂亮的主題那麼心情會愉悅很多,而我個人使用的是flatabulous-theme。非常的漂亮,不過其沒有snap包,所以今天安裝另一款也很好看的主題communitheme。

主題安裝

方案一:SnapStore

在App Store中搜搜communitheme即可,之後點選安裝即可。

方案二:Snap命令安裝

這裡我通過edge通道進行安裝,也可以通過GTK+3、Qt frameworks、stable等通道進行安裝。

sudo snapinstall communitheme –edge

sudo snaprefresh

安裝好後,重新啟動後在登陸介面選擇小齒輪設定為新的主題即可。

是不是發現Theme的風格已經發生了改變,特別是左下角的的Ubuntu Logo特別的帥。

圖示安裝與設定

圖示包我非常喜歡的是Numix這個系列的圖示,特別是其中的numix-icon-theme-circle。那麼就安裝numix-icon-theme-circle這套圖示包了。

#Numix-icon-theme-circle

sudoadd-apt-repository ppa:numix/ppa

sudoapt-get update

sudoapt-get install numix-icon-theme-circle

圖示包安裝好了設定使用上該套圖示包還需要使用Gnome Tweak,安裝方法也是通過到AppStore中搜尋Gnome Tweak即可,也可以通過sudo apt-get install gnome-tweak-tool來完成安裝。由於系統是中文系統,該軟體中文名叫做“優化”。

在圖示部分選擇Numix-Circle即可。

總體來說這套圖示還是顏值很高的。

0x05 使用Snap安裝軟體及基礎教學

Snap安裝軟體也是非常的方便僅僅需要一個命令即可完成安裝,當然如果這樣做你就不能完全理解Snap的設計的完美。

Snap安裝軟體

VLC安裝

一般怎麼用Snap安裝軟體呢?這裡以VLC為例。

1.首先檢視你是否通過Ubuntu One登陸Snap。

snap whoami

2.如果顯示空郵箱的話,那麼說明你沒有登陸,你可以通過一下命令通過Ubuntu One登陸Snap。

snap login

3.此處分割線,其實以上過程可以省略,只是為了更加標準一點啦!

4.首先在SnapStore中尋找VLC。

snap find vlc

可以通過結果看出,VLC的Snap包的確就叫vlc,這個就很尷尬了,感覺多弄了一步,不顧沒關係這裡主要是告訴你如何使用Snap搜尋軟體。

5.為了在次確認VLC的軟體包,我可以查詢更多的資訊。

snap info vlc

在確定了vlc的資訊後,還可以看到各個通道中的Snap包的情況。

6.安裝VLC,如果你已經通過Ubuntu One登陸了Snap,一下命令可以省略了sudo。其預設是通過stable通道進行下載安裝的。

snap install vlc

安裝好後也可以通過vlc –version來檢視VLC的版本。

7.預設情況下,是通過stable的通道進行安裝的(還記得之前安裝communitheme時候我用的edge通道嗎?)。當然即使你安裝好了stable通道的VLC,當然也還可以切換到別的通道。

snap switch–channel=candidate vlc

snap refresh

之後就切換到了candidate(候選發行版)的vlc了,你可以通過剛才的vlc –-version來檢視你你的vlc版本。

8.看似很簡單的Snap是不是就完了呢?基本可以這麼說吧!不過還有一個snap run -shell的命令呢。通過snap run -shel vlc可以給你一個shell讓你擁有更多的snap權利。

你可以在/snap中找到snap的檔案。再其二級目錄中有一個和snap軟體包一樣的目錄,如/snap/vlc/。由於之前我也說了,Snap的一個優點就是可以安裝不同版本的同一個軟體,至於你現在使用的版本的檔案其在/snap/vlc/current/中。在meta/snap.yaml中,我可以可以獲取到snapcraft的組態檔。

Telegram

Telegram是近年來比較流行的即使聊天軟體,也是非常完美的融入了我的生活,至於這個軟體怎麼使用呢?自己Google吧!!!安裝的方法和VLC一樣,不過我覺得你都會來安裝Telegram,那麼Snap你估計也很熟悉了吧!這裡直接安裝Telegram。

#Telegram Snap App

sudo snap install telegram-sergiusens

Snap安裝軟體時候,終端會有白色進度條顯示下載百分比,非常的人性。

Snap基礎教學

其實基礎教學應該在實戰之前,不過我覺得實戰才是最好的學習方法,所以先寫了Snap安裝軟體的方法。相比你現在都已經學會了幾個Snap的基本用法了。

#查詢已經安裝了的軟體

sudo snap list

#搜尋要安裝的Snap軟體包

sudo snap find xxxx

#檢視Snap軟體的更多資訊

sudo snap info xxxx

#安裝Snap軟體包

sudo snap install xxxx

#更換軟體安裝通道

sudo snap switch –channel=xxxx xxxx

#更新Snap軟體包

sudo snap refresh xxxx

#還原到之前版本

sudo snap revert xxxx

#解除安裝Snap軟體

sudo snap remove xxxx

當然光靠命令你想搜尋什麼snap軟體包也是一頭霧水吧!可以去uappexplorer裡查詢下,有什麼snap軟體包呢!喜歡的就都安裝上。

#Uappexplorer

https://uappexplorer.com/snaps

0x06 將軟體打包為Snap軟體

Snapcraft是用來構建snaps的軟體,他使用也非常的簡單,我們僅僅需要寫一個snapcraft.yaml的組態檔即可。接下來就用Snapcraft打包一下GNU專案裡的hello和bash。先從hello開始。

由於Ubuntu 18.04LTS中已經安裝有Snapcraft了,我們就不需要在去apt安裝了。可以直接開始打包我們的snap軟體。

初始打包

1.建立一個打包snap的目錄hello。

mkdir hello

cd hello

2.初始化snapcraft。

snapcraft init

3.使用vim編輯組態檔snapcraft.yaml。

vim snap/snapcraft.yaml

將其修改為以下內容。

name:描述這個snap軟體的名稱

version:描述這個軟體的版本,可以用ascii碼。

summary:對軟體的一個總結。

Description:對軟體進行一個描述。

grade:軟體的發行通道。

confinement:對軟體做一個限制,如devmode或者strict。

之後按照格式定義以下parts。

其中source表示打包軟體的來源,plugin表示此軟體安裝時候需要的一些依賴關係,使用autotools即可。

4.編譯snap打包軟體。

snapcraft

由於我們的source需要從GNU的ftp伺服器上下載程式,待下載好後,其會自動打包編譯。

5.之後進行測試安裝。

sudo snap install --devmode hello2.10amd64.snap

可以通過snap list檢視是否安裝成功,注意看Notes部分,其為devmode。

6.進行測試,輸入hello命令。

神馬??竟然抱錯了。當然你肯定會想用which hello進行檢查。不過我可以告訴你答案,hello的二進位制檔案在/snap/bin裡,是不是明白哪裡出問題了?

Snap全域性命令

我們已經知道了為什麼hello不能成為全域性命令了,當然也還是只能通過修改snapcraft.yaml組態檔來使之成為全域性命令。

1.修改snapcraft.yaml,新增一個apps部分,使命令hello指向bin/hello即可。

2.疊代你的snap打包軟體。

snapcraft prime

3.之後再次嘗試hello命令,終於生效了。

Snap打包進階

1.為了讓我們的snap更有意思一點,我們新增一個新的parts和apps。

2.之後我們重新執行。

Snapcraft prime

毫無疑問你肯定會報錯失敗。為什麼呢??因為gnu-hello和gnu-bash兩個不同的parts都將定向到了一個share/info/dir裡,這裡就發生了衝突。

3.其實在執行snapcraft的時候,類似於執行./configure,這裡只用給./configure一個引數即可。那麼snapcraft.yaml組態檔可以這麼修改。

這相當於將—infodir=/var/bash/info作為一個引數傳遞給了./configure。

3.之後重新編譯。

snapcraft clean gnu-bash -s build

這裡的clean只是相當於重新構架了一下gnu-bash,並不需要重新下載gnu-bash,當然可以snapcraft成功了。

4.之後重新測試。

sudo snap try --devmode prime

5.之後再次測試hello和hello.bash命令,看看是否能進入這個子shell。

之後通過env查詢當前的環境,確認進入子shell,要退出的話,按q哦!

刪除devmode

之前通過snap list可以看出Notes部分標記hello為devmode,既然我們都測試完畢了,那麼是時候改為strict了。

1.修改組態檔snapcraft.yaml。

將devmode修改為strict;其實也可以將grade後面的devel修改為stable了。

2.再次snapscraft一下。

3.你可以嘗試安裝它。

sudo snap install hello2.10amd64.snap

不出意外會報錯:error: cannot find signatures with metadata for snap "hello2.10amd64.snap"。

4.為什麼會報錯呢?是由於我們的軟體沒有經過Snap Store簽名,而之前的安裝是因為是devmode所以可以被安裝,因而要在本地安裝非devmode的snap時候,需要加入—dangerous選項。

之後snap打包後的hello即可被安裝,在通過snap list看一下,Notes部分已經沒有devmode的字樣了。而程式也可以正常的執行。

0x07 總結

Ubuntu 18.04 LTS經過開源社群及個人開發者的努力已經越來越完善了,軟體數量豐富,美化資源也不少。雖然具有革命意義的Snap軟體格式包的出現,讓我們對Linux的上手更加的容易。


IT145.com E-mail:sddin#qq.com