首頁 > 運維 > linux運維 > linux deploy的作用是什麼

linux deploy的作用是什麼

WBOY
發布: 2023-05-24 16:04:12
轉載
4273 人瀏覽過

linux deploy用於在Android裝置上部署Linux環境,其原理大概是在Android的Linux層跑一個chroot或proot容器,然後再在容器中執行我們準備好的另外一個Linux系統。必須取得手機Root權限後才能使用Linux Deploy。

Linux Deploy是一款可以在Android裝置上部署Linux環境的應用,其原理大概是在Android的Linux層跑一個chroot或proot容器,然後再在容器中運行我們準備好的另外一個Linux系統。值得注意的是,這與我們熟知的虛擬機器技術不同,新的Linux系統將和Android系統平行運作(非專業解釋不要深究)。

在使用Linux Deploy之前,我們需要取得手機的Root權限(必須),取得Root權限後,由於原機自帶的Linux指令集不完整,我們需要安裝Busybox來擴充Linux指令集(不安裝也可以)

Linux Deploy需要在Google商店安裝,其他安卓應用程式商店沒有,以下提到的軟體都只能在Google商店安裝
linux deploy的作用是什么

安裝完成後,我們將使用Linux Deploy在Android設備上部署Ubuntu系統:

  點擊介面最右下方的"下載"圖示進入設定檔的設定介面進行如下設定(我也不知道開發者為什麼會用這麼一個"下載"圖示作為設定檔設定介面的圖示):

  Containerization method:"chroot"

  發行版:"Ubuntu"

  架構:保持預設值

  發行版版本:"yakkety"(即Ubuntu 16.10)

  來源位址:http://mirror.tuna.tsinghua.edu.#  來源位址:http://mirror.tuna.tsinghua.educn/ubununtu -ports/(這裡我們採用預設方式部署,即在軟體來源中下載Linux元件和必要的軟體包的方式部署,因為預設來源速度不佳,為了不下載一天一夜,我們這裡使用的是清華大學的開源鏡像來源,如果你採用Repository方式部署(之後的文章會講到),這裡的"來源位址"應該填寫Repository檔案(後綴為tgz/tar.gz)檔案的本地或遠端路徑)

#安裝類型:這一選項的話有兩種建議,"目錄"和"檔案",如果對Linux不太熟悉並且/data分區剩餘空間≥2g的話,建議使用"目錄"的安裝方式,如果對Linux比較熟悉或/data分割區剩餘空間<2g的話,建議使用"檔案"的安裝方式。在這裡,為了操作方便,使用"目錄"的安裝方式,但在實際使用中,為了不佔用/data分區空間,建議大家採用"文件(鏡像)"的安裝方式。

  安裝路徑:"安裝路徑"選擇"目錄"時,這個選項將定義系統安裝在哪個路徑中,預設路徑為${ENV_DIR}/rootfs/linux,即安裝在/data/user/0/ru.meefik.linuxdeploy/env/rootfs/linux目錄下。 "安裝類型"選擇"檔案"時,這個選項將定義Linux系統安裝在哪個映像檔中,預設值為外部儲存/linux.img

  鏡像大小(MB)(安裝類型"選擇"檔案"時可用):這個選項將定義系統所在鏡像檔案的大小。系統安裝之前將在安裝目錄建立一個大小為設定的鏡像大小的空白檔案用來存放系統檔案和資料(相當於新Linux系統的總磁碟空間)。建議不要用預設值,填寫2048m足夠了。

  檔案系統(安裝類型"選擇"檔案"時可用):選擇"自動"。

  用戶名:這個選項為登入系統時的用戶名,預設為"android",可以隨意更改。

  使用者密碼:這個選項為Ubuntu系統中使用者的密碼,可以依照自己的習慣填寫。

  Privileged Users:保持預設值

  DNS伺服器:可以保持預設值,也可自訂填入DNS伺服器位址(如114.114.114.114等)

  本地化:  本地化:  本地化:  本地化:  建議保持預設值POSIX,如果有其他需求,例如需要讓ssh回傳結果為中文或讓圖形介面的顯示語言為中文時,選擇"zh_CN.UTF8"

  INIT/MOUNTS項目:若有需求時可設置,無需求可忽略。

  允許SSH伺服器啟動:開啟此選項

  SSH設定:保持預設

  允許圖形介面啟動:若有需求可以設置,這裡暫時不打開這個選項(之後的文章將會為大家介紹如何部署圖形介面)。

linux deploy的作用是什么

  設定完成後,按返回鍵返回應用主介面,按下選單鍵,選擇"安裝"開始Linux系統的安裝,安裝過程中需要一直保持網路連線(建議在WIFI下安裝,大概需要幾百兆流量)。

  當看到終端輸出">>>deploy"時,代表安裝已開始:

linux deploy的作用是什么

  當看到終端輸出"< <

linux deploy的作用是什么

#  點擊主介面下方的"啟動"按鈕可以啟動新安裝的系統,點擊"停止"可以停止系統。

linux deploy的作用是什么

  至此,系統部署部分描述完畢。

  部署完畢後,我們需要用到lJuiceSSH/ConnectBot之類的SSH工具來登入系統(這裡以JuiceSSH為例)。

  成功啟動系統後我們開啟JuiceSSH,依序點擊"連線" - 右下角" "按鈕進入新連線介面:

  暱稱:可隨意填寫,我們以"Localhost - Android"為例類型:SSH   位址:127.0.0.1

linux deploy的作用是什么

  認證:選擇"新建"跳到"新建認證"介面:   暱稱:同樣可以隨意填寫,我們同樣以" Localhost - Android"為例使用者名稱:填寫"設定檔設定"介面的"使用者名稱",預設為android   密碼:填寫"設定檔設定"介面的設定的"使用者密碼"

linux deploy的作用是什么

#  點擊右上角的"√"圖示儲存並返回到"新建連接"介面,再次點擊"√"圖示儲存,在"連線清單"中點選剛剛新建的這個專案連接到我們剛剛部署好的系統,連接成功後介面如下:

linux deploy的作用是什么

#  因為我們是透過普通用戶android登陸系統的,接下來我們需要設定超級使用者(root)的密碼並且以超級使用者的身分登陸系統:

  在終端機中鍵入:

sudo passwd root

#終端機將會提示用戶輸入root用戶的密碼並且再次輸入一次以確認(輸入密碼時密碼將不可見,連*都不會顯示),設定完畢後,在終端機鍵入命令su並輸入剛剛設定好的root用戶密碼即可切換到root用戶。

  檔案的管理:   如果你是透過"目錄"方式部署的Linux系統,那麼你可以直接使用R.E.管理器存取/data/user/0/ru.meefik.linuxdeploy/env/rootfs/linux 即可管理新系統中的文件,如果你是透過"文件"方式部署的Linux系統,管理文件等操作就得依靠SFTP了(當然使用SSH方式也沒問題,但是還是覺得SFTP更方便些)。當我們使用普通使用者身分登入SFTP時,由於權限原因,我們無權操作大多數檔案。所以我們需要以超級使用者登入SFTP。但預設配置是不允許root使用者登入SSH和SFTP的,所以我們需要進行以下設定:

  在Linux Deploy中啟動部署好的系統,以android使用者登入SSH,在終端機中執行:

sudo apt-get install -y vim        #安裝vim編輯器

  當然啦,使用系統自帶的vi編輯器也是可以的,如果你對vi編輯器比較熟悉也可以使用vi編輯器編輯文件。 vim編輯器安裝完成後我們繼續在終端機執行:

vim /etc/ssh/sshd_config        #使用vim編輯器開啟/etc/ssh/sshd_config這個檔案

  開啟檔案後,鍵入檔案後,鍵入這個檔案

  開啟檔案後,鍵入i進入編輯模式,點擊終端任意空白位置可以彈出特殊鍵鍵盤,使用上下遊標滾動瀏覽文件,在文件的#Authentication部分找到PermitRootLogin這一項,將其改為yes,改動完成後點擊特殊鍵鍵盤中的"ESC"鍵退出編輯模式,鍵盤鍵入:wq!儲存並強制退出檔案完成檔案的編輯操作。 linux deploy的作用是什么

  開啟Linux Deploy,停止後再啟動Linux系統。開啟"Turbo客戶端" - 側邊欄- 建立一個新帳戶- SFTP 來新建一個SFTP連線(部分檔案管理器,例如ES檔案瀏覽器(ESFileExplorer),SE檔案管理器(SolidExplorer)也帶有SFTP功能,如果不想安裝TurboFTP的話,可以用它們來代替): linux deploy的作用是什么

#  其中:

  用戶名為:root密碼為剛剛設定好的root用戶的密碼主機名為:127.0.0.1

  其他項目保持默認,點擊右上角的"保存"圖標保存配置,在側邊欄的連接列表中我們將以root使用者連接到SFTP並管理檔案: linux deploy的作用是什么

  當然,修改完sshd_config文件,停止並啟動Linux系統後,你也可以直接以root用戶連接到SSH了。介紹完安裝,介紹一下卸載吧~你可以透過以下方法完全卸載Linux Deploy:  1.如果你使用"目錄"的方式部署的Linux系統,那麼在Linux Deploy內"停止"Linux系統,接著直接卸載Linux Deploy並重啟手機即可完全卸載;   2.如果你使用"文件(鏡像)"方式部署的Linux系統,你需要先"停止"Linux系統,然後刪除放置在內置存儲下的鏡像文件,鏡像檔案路徑就是上文在部署Linux系統之前提到的"安裝路徑"這一項,如果此項未經修改,則鏡像路徑為

外部儲存/linux.img

,接著卸載Linux Deploy並重新啟動手機即可完全卸載。

安裝圖形環境

修改以下設定項:

#  INIT:   打勾:啟用自訂腳本執行(INIT的其他設定保持不變)

  圖形介面:

  打勾:允許圖形介面啟動

  圖形子系統:VNC

#  圖形化介面設定:保持預設配置

####  桌面環境:按需選擇,這裡選擇的是LXDE ###
linux deploy的作用是什么
linux deploy的作用是什么
linux deploy的作用是什么

linux deploy的作用是什么
linux deploy的作用是什么

#  配置完畢後,點擊底部的"停止"按鈕停止Linux系統,再點擊"啟動"按鈕啟動Linux系統,接著我們登入SSH,在終端機中執行:

sudo apt-get install ttf-wqy-zenhei    #安裝文字庫
  中文字庫安裝完畢後,執行以下指令啟動VNC:

vncserver


  終端將傳回下列結果:

New 'X' desktop is localhost:1  Starting applications specified in /home/android/.vnc/xstartup Log file islications specified in /home/android/.vnc/xstartup Log file islications specified in /home/android/.vnc/xstartup Log file is /home/android/.vnc/localhost:1.log

複製

  證明vncserver已啟動成功。   (注意,在某些時候,第一次執行vncserver

指令時系統將要求你設定一個小於8位數的VNC密碼,你需要輸入兩次密碼之後提交,VNC密碼設定完成之後還會有提示,不用理會,鍵入

n提交即可)

進入圖形介面:

接著我們使用VncViewer來連接到我們剛剛部署好的的圖形介面:

  開啟VncViewer,點擊右下角的" "按鈕新增VNC會話:

  Address:   127.0.0.1:590     :   Localhost - Ubuntu@Xfce

  其中,"Address"項目為VNC伺服器所在的位址。由於我們需要連接本機的VNC伺服器,所以填寫127.0.0.1即可,此外我們還需要在位址後面指定VNC端口,因為剛剛終端返回的資訊:

New 'X' desktop is localhost:1

指定了這次桌面會話號碼為1,所以連接埠就為5900 1=5901。如果我們開啟了多個虛擬桌面,它們的會話號碼為2,3,4...,那麼各自的連接埠即為5902,5903,5904...依次類推。並且,伺服器位址與連接埠之間需要用英文冒號隔開。 "Name"項目為使用者為此VNC會話指定的位址,我們為了區別其他會話,填寫的是Localhost - Ubuntu@Xfce,實際上隨便填寫什麼都可以。
linux deploy的作用是什么
linux deploy的作用是什么

###################################################################################### ###########  確認訊息無誤後,點擊下面綠色的"CONNECT"按鈕開始連接VNC會話(如果你之前沒有設定過VNC密碼,但在連接VNC連接過程中仍然需要你輸入密碼時,那麼你可以輸入android用戶的密碼試試):###
linux deploy的作用是什么
linux deploy的作用是什么

#  好了...圖形介面的部署過程到此為止,剩下的你們自己折騰吧(/doge臉)~

可能遇到的問題:

  1. 當你開啟了一個VNC會話,停止Linux系統再啟動Linux系統後,再次執行vncserver指令,系統可能會報出以下錯誤:

linux deploy的作用是什么

  這時候,你可以執行以下兩個指令:

rm -rf /tmp/.X[1-9]-lock
rm -rf /tmp/.X11-unix/X[1-9]

  執行完畢後,再執行vncserver,會話號碼就會被重置為1了。為了防止每次停止再啟動Linux系統後帶來的這個問題,我們可以編輯/etc/rc.local文件,在此文件的exit 0之前插入這兩個命令:

sudo vim /etc/rc.local    #編輯/etc/rc.local
linux deploy的作用是什么

  編輯完成後,儲存即可,進行這步驟操作後,在啟動Linux系統後和停止Linux系統之前,Linux Deploy都會替我們執行這兩個指令,這樣一來之後就不會再報錯了~

  2. vncserver預設的解析度是1024×768,但市面上大部分的手機螢幕的解析度都是720P(1280×720),1080P(1920×1080),甚至2K(2560×1440),vncserver預設的1024×768解析度可能會造成VNC畫面不能填滿滿螢幕的情況,這時候,我們有必要修改VNC解析度以適應螢幕,經過測試,拿1080P螢幕來說,將解析度設為720P可讓VNC影像充滿螢幕且不影響顯示效果。調節方法就是每次執行vncserver指令時在後面加上-geometry參數,例如我需要把VNC解析度調為720P(1280×720),那麼在啟動vncserver時,執行:

vncserver -geometry 1280x720

#  即可將新開啟的VNC虛擬會話螢幕解析度設為1280×720。值得注意的是,指令中的1280x720裡的x是小寫字母x,而不是數學中的乘號×#。

  下面是1280×720解析度和1024×768解析度的比較(將VNC Viewer畫面縮小到最小):

linux deploy的作用是什么
linux deploy的作用是什么


  如果你覺得每次啟動vncserver時輸這麼一長串命令有點麻煩,那麼可以編輯linux deploy的作用是什么~/.bashrc
文件,在下圖所示的位置增加一行alias定義:

vim ~/.bashrc    #編輯~/.bashrc

alias vncserver='vncserver -geometry 1280x720' ###複製###################################################################################### ##########  之後,每次執行###vncserver###指令後,新開啟的VNC會話的解析度都會被設為1280×720。 ###

升级ubuntu

会发现ubuntu只能安装到18.04

升级的方法就是安裝Ubuntu后再直接升级。

用VNC登入桌面後,用終端機安裝更新器

sudo apt install update-manager-core
登入後複製

更新全部套件至最新版

sudo apt update && sudo apt upgrade
sudo do-release-upgrade
登入後複製

如果出現authenticate 'focal.tar.gz' against 'focal.tar.gz.gpg' Authentication failed錯誤,先安裝gnupg並執行以下指令:

sudo apt install gnupg gnupg1 gnupg2
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 871920D1991BC93C
登入後複製

再次执行sudo do-release-upgrade,输入y開始更新系统,按照终端的指示更新。

如果提示Please Install All Available Updates Before Upgrading

apt clean 
apt autoclean
sudo apt update 
sudo apt upgrade -y 
sudo apt dist-upgrade
登入後複製

再次执行sudo do-release-upgrade,输入y開始更新系统,按照终端的指示更新。

不出意外的话,系统正常升级完了。

升级完之后还需要回到linux deploy的配置项中把用户名改成root,密码可以保持不变,原因是升级后,原来的android这个用户名就没有root权限了

修改用户名之后一定要点linux deploy的配置选项重新配置

# 2023.3.8更新   如果你遇到“The required dependency 'apt (>= 2.0.4)' is not installed.”需要修改/etc/apt/source.list文件

## /etc/apt/source.list
deb http://ports.ubuntu.com/ focal multiverse main universe
deb-src http://ports.ubuntu.com/ focal multiverse main universe
deb http://ports.ubuntu.com/ focal-updates main universe multiverse
deb-src http://ports.ubuntu.com/ focal-updates main universe multiverse
deb http://ports.ubuntu.com/ focal-security main universe multiverse
deb-src http://ports.ubuntu.com/ focal-security main universe multiverse
登入後複製

以上是linux deploy的作用是什麼的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:yisu.com
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板