在接觸一個(gè)新的事物時(shí)踱承,我首先會探究它能解決什么問題缎罢,再考慮它是否有研究的價(jià)值帘腹。
作為一名程序員额各,不管是前端還是后端,自然是離不開和服務(wù)器打交道的卿闹。比如我就一直想有一臺自己的linux服務(wù)器阱高。無奈各種XX云的云服務(wù)器漫天要價(jià)鹦付,樹莓派4代400+的價(jià)格對于我這種不研究外設(shè)的性價(jià)比又不高昆禽,那還沒有別的選擇呢蝗蛙?當(dāng)然有,只要一臺舊安卓手機(jī)即可醉鳖。廢話不說直接開始流程:
1. 當(dāng)然是準(zhǔn)備手機(jī)以及SD卡
首先運(yùn)行Linux deploy是需要root權(quán)限的捡硅,目前自用的OPPO R15舍不得用來折騰,更別說它還不支持root盗棵。所以只能去萬能的咸魚挑一個(gè)壮韭,這里我選的是幾年前發(fā)售的TCL_M2M,MTK6752纹因,2+16的配置泰涂。雖然配置辣雞,打個(gè)王者最低特效都只有30幀辐怕,不過50包郵還要什么自行車呢。如果你手頭更充裕的話从绘,建議你入手小米4寄疏,2+16應(yīng)該130左右,刷機(jī)還能體驗(yàn)各種第三方OS僵井。
入手之后刷機(jī)直接升級到安卓5.1陕截,然后就是root后卸載無用的系統(tǒng)應(yīng)用批什,禁止后臺自啟等等。SD卡的話不要買太大驻债,手機(jī)可能會識別不出來。
2. 配置Linux deploy
安裝Linux deploy之前得首先安裝Busybox合呐,它集成了Linux的很多命令。
安裝完Linux deploy之后:
首先點(diǎn)開左側(cè)菜單淌实,點(diǎn)擊“配置文件”冻辩,點(diǎn)擊編輯改個(gè)你喜歡的名字。
然后點(diǎn)擊“設(shè)置”恨闪,【鎖定wifi】,【CPU喚醒】咙咽,【聯(lián)網(wǎng)更新】勾上,【PATH變量】最重要犁珠,點(diǎn)擊并填上/system/xbin,這樣才能關(guān)聯(lián)Busybox犁享。然后點(diǎn)擊下面的【更新環(huán)境】余素。
然后點(diǎn)擊右下角的設(shè)置圖標(biāo)開始進(jìn)行配置炊昆,這里我以Centos為例:
發(fā)行版:【CentOS】
架構(gòu):【aarch64】
版本:【7】
源地址:http://mirrors.aliyun.com/centos-altarch/
源地址記得換成國內(nèi)源桨吊,我的是阿里源,清華源體感不是很穩(wěn)定凤巨,時(shí)好時(shí)壞视乐。
安裝類型:【分區(qū)】
如果你不了解安裝類型有什么區(qū)別,請看這篇文章:LinuxDeploy 詳解
眾所周知敢茁,手機(jī)內(nèi)置存儲/SD卡都是fat32格式佑淀,不能儲存超過4GB的文件。所以不能選擇【鏡像文件】形式彰檬,鏡像文件無法超過4GB也就意味著你的Centos系統(tǒng)空間最多只有4GB伸刃,隨便安幾個(gè)包就滿了。不過真的沒辦法了嗎逢倍?當(dāng)然有捧颅,以我的32GB SD卡為例,將SD卡進(jìn)行分區(qū)较雕,2GB fat32格式碉哑,25GB ext4格式,2GB緩存即可亮蒋。具體操作步驟請看這篇文章:使用MiniTool Partition Wizard對SD卡進(jìn)行EXT4格式分區(qū)
雖然現(xiàn)在軟件版本已經(jīng)更新很多代了扣典,但是操作步驟沒變。放心大膽的跟著做就行了宛蚓。
安裝路徑: /dev/block/mmcblk1p2
其中mmcblk1相當(dāng)于sdcard1也就是SD卡激捏,如果你想安裝內(nèi)置存儲,就是mmcblk0凄吏,相當(dāng)于sdcard0远舅。
p2就是mmcblk的第2個(gè)分區(qū)闰蛔,p1就是第一個(gè)分區(qū)。前面我分區(qū)的時(shí)候?qū)tx4分在了第2個(gè)區(qū)图柏,所以選p2序六。
文件系統(tǒng):【etx4】
用戶名/密碼:自選
特權(quán)用戶:root
本地化:【zh_CN.UTF8】
初始化:可選可不選
勾選后linux deploy將在啟動(dòng)后在指定路徑運(yùn)行腳本,默認(rèn)為/etc/rc.local蚤吹,不過它是/etc/rc.d/rc.local的軟連接例诀,所以就是開機(jī)自動(dòng)運(yùn)行/etc/rc.d/rc.local的腳本
掛載:不選
由于已經(jīng)安裝在SD卡了,所以SD并沒有其他有價(jià)值的東西可供探索了裁着。繁涂。。
SSH:必選
剩下的看自己需求
3.SSH連接&&關(guān)閉喚醒鎖
安裝系統(tǒng)是一件很漫長的事二驰。扔罪。。所以桶雀。矿酵。。be patient
安裝完畢之后矗积,第一件事就是用SSH連接了全肮。正上方局中的標(biāo)題就包含了你當(dāng)前的局域網(wǎng)ip棘捣。用你剛才配置的用戶名和密碼登錄即可。安卓端可以用ConnectBot哪自,PC端推薦自帶的openssh,或者功能更全面的Xshell邑彪。如果你想開啟SSH免密登錄的話,可以看這篇文章:三步實(shí)現(xiàn)SSH無密碼登錄
第二件事就是查看我們的分區(qū)是否成功宙彪。
[root@localhost ll]# df -h
文件系統(tǒng) 容量 已用 可用 已用% 掛載點(diǎn)
/dev/block/mmcblk1p2 25G 3.5G 20G 15% /
tmpfs 944M 84K 943M 1% /dev
tmpfs 944M 0 944M 0% /dev/shm
可以看到已經(jīng)成功了有巧。
第三件事是關(guān)閉喚醒鎖篮迎。這個(gè)很重要示姿。假如不關(guān)的話鎖屏一段時(shí)間后安卓系統(tǒng)會自動(dòng)限制后臺運(yùn)行栈戳,來達(dá)到省電的作用难裆。怎么關(guān)呢?把系統(tǒng)的省電方案更改為均衡褂痰,并且關(guān)閉諸如休眠省電之類的選項(xiàng)症虑。然后把Linux deploy在設(shè)置里讓其保持后臺運(yùn)行。然后下載MT管理器驶冒,打開左側(cè)菜單點(diǎn)擊【終端模擬器】韵卤,然后下滑任務(wù)欄里開啟喚醒鎖即可。其實(shí)任何終端應(yīng)該都有喚醒鎖功能需忿,開啟就行啦
4.進(jìn)行一些必要的工作
- 禁用yum插件
由于yum插件每次會加載而且鏡像效果還不好屋厘,通常下載到最后一個(gè)包的時(shí)候就限速月而,只有幾k/s,實(shí)在慢的令人無法忍受溢谤。所以我們必須第一件事就得禁用它并換上新的鏡像源憨攒。這里我用的是阿里云的鏡像,注意瞻坝,網(wǎng)上的方法并不能行得通杏瞻,必須你手動(dòng)改衙荐,因?yàn)閘inux deploy大部分是aarch64構(gòu)架赫模。
# 禁用Yum插件
vim /etc/yum.conf
找到plugins這一行改為0即可
#先執(zhí)行備份蒸矛,然后將下面的配置文件替換之即可
mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.bak
#適用于aarch64構(gòu)架的阿里云鏡像源配置文件
#其實(shí)無非就是批量替換版本以及構(gòu)架而已
# CentOS-Base.repo
[base]
name=CentOS-7.7.1908 - Base - mirrors.aliyun.com
failovermethod=priority
baseurl=http://mirrors.aliyun.com/centos-altarch/7.7.1908/os/aarch64/
http://mirrors.aliyuncs.com/centos-altarch/7.7.1908/os/aarch64/
http://mirrors.cloud.aliyuncs.com/centos-altarch/7.7.1908/os/aarch64/
gpgcheck=1
gpgkey=http://mirrors.aliyun.com/centos-altarch/RPM-GPG-KEY-CentOS-7
#released updates
[updates]
name=CentOS-7.7.1908 - Updates - mirrors.aliyun.com
failovermethod=priority
baseurl=http://mirrors.aliyun.com/centos-altarch/7.7.1908/updates/aarch64/
http://mirrors.aliyuncs.com/centos-altarch/7.7.1908/updates/aarch64/
http://mirrors.cloud.aliyuncs.com/centos-altarch/7.7.1908/updates/aarch64/
gpgcheck=1
gpgkey=http://mirrors.aliyun.com/centos-altarch/RPM-GPG-KEY-CentOS-7
#additional packages that may be useful
[extras]
name=CentOS-7.7.1908 - Extras - mirrors.aliyun.com
failovermethod=priority
baseurl=http://mirrors.aliyun.com/centos-altarch/7.7.1908/extras/aarch64/
http://mirrors.aliyuncs.com/centos-altarch/7.7.1908/extras/aarch64/
http://mirrors.cloud.aliyuncs.com/centos-altarch/7.7.1908/extras/aarch64/
gpgcheck=1
gpgkey=http://mirrors.aliyun.com/centos-altarch/RPM-GPG-KEY-CentOS-7
#additional packages that extend functionality of existing packages
[centosplus]
name=CentOS-7.7.1908 - Plus - mirrors.aliyun.com
failovermethod=priority
baseurl=http://mirrors.aliyun.com/centos-altarch/7.7.1908/centosplus/aarch64/
http://mirrors.aliyuncs.com/centos-altarch/7.7.1908/centosplus/aarch64/
http://mirrors.cloud.aliyuncs.com/centos-altarch/7.7.1908/centosplus/aarch64/
gpgcheck=1
enabled=0
gpgkey=http://mirrors.aliyun.com/centos-altarch/RPM-GPG-KEY-CentOS-7
#contrib - packages by Centos Users
[contrib]
name=CentOS-7.7.1908 - Contrib - mirrors.aliyun.com
failovermethod=priority
baseurl=http://mirrors.aliyun.com/centos-altarch/7.7.1908/contrib/aarch64/
http://mirrors.aliyuncs.com/centos-altarch/7.7.1908/contrib/aarch64/
http://mirrors.cloud.aliyuncs.com/centos-altarch/7.7.1908/contrib/aarch64/
gpgcheck=1
enabled=0
gpgkey=http://mirrors.aliyun.com/centos-altarch/RPM-GPG-KEY-CentOS-7
2.添加環(huán)境變量
這里默認(rèn)/usr/local/bin
并不在系統(tǒng)變量中斩祭,我們需要在/etc/bashrc
中添加之
echo export PATH=$PATH:/usr/local/bin >> /etc/bashrc
3.尋找systemctl的替代品
#從代碼中的github地址你可以發(fā)現(xiàn)怎么在chroot容器中實(shí)現(xiàn)systemctl類似的效果
wget https://github.com/smaknsk/servicectl/archive/1.0.tar.gz
tar -xf 1.0.tar.gz -C /usr/local/lib/
ln -s /usr/local/lib/servicectl-1.0/servicectl /usr/local/bin/servicectl
ln -s /usr/local/lib/servicectl-1.0/serviced /usr/local/bin/serviced
4.安裝Yarn(非必要摧玫,前端必備)
安裝yarn最好用npm裝诬像,最后用軟連接給/usr/local/bin
即可闸婴,注意node的安裝包不要放在你默認(rèn)用戶的文件夾(例如/home/ll
),否則其他用戶會因?yàn)闄?quán)限不夠訪問不了node降狠,npm庇楞,yarn等命令
# 這里我是將nodejs的包放在了/opt/下
ln -s /opt/nodejs/bin/node /usr/local/bin/node
ln -s /opt/nodejs/bin/npm /usr/local/bin/npm
npm config set registry http://registry.npm.taobao.org/
npm install -g yarn
ln -s /opt/nodejs/bin/yarn /usr/local/bin/yarn
yarn config set registry http://registry.npm.taobao.org/
5.備份與恢復(fù)
點(diǎn)擊軟件右上角菜單,點(diǎn)擊【導(dǎo)出】即可備份鏡像了蛋褥,不過就是比較慢睛驳,需要耐心等待,并且這個(gè)鏡像不能超過4GB,否則將無法儲存(FAT32最大只能儲存4GB文件)想恢復(fù)直接安裝這個(gè)鏡像即可溃论。方法是,在安裝時(shí)在【發(fā)行版GNU/Linux】中選擇“rootfs.tar”炬转,然后在【源地址】中選擇你導(dǎo)出鏡像的路徑,開始安裝即可驻啤。
最后是一些常用軟件的安裝方法
screen-多任務(wù)利器
Nodejs最新版
Python3
內(nèi)網(wǎng)穿透利器-Ngrok
結(jié)語
還有最后的最后荐吵,說一千道一萬,不如直接給個(gè)現(xiàn)成的包來的痛快贼涩,你說是叭薯蝎?
奉上自用Centos7的鏡像:堅(jiān)果云鏈接,已安裝以下軟件(包在/opt/中):
- nodejs 12.16.0
- yarn 1.22.0
- python 3.6.4
- @vue/cli 4.2.2
- screen 4.0.1
安裝方法就在上面的第五節(jié)【備份與恢復(fù)】中袒哥,如果需要用戶名和密碼消略,則為
用戶名:ll
密碼:0000