linux命令deploy_Linux deploy 超详细入门教程

2023-05-16

在接触一个新的事物时,我首先会探究它能解决什么问题,再考虑它是否有研究的价值。

作为一名程序员,不管是前端还是后端,自然是离不开和服务器打交道的。比如我就一直想有一台自己的linux服务器。无奈各种XX云的云服务器漫天要价,树莓派4代400+的价格对于我这种不研究外设的性价比又不高,那还没有别的选择呢?当然有,只要一台旧安卓手机即可。废话不说直接开始流程:

1. 当然是准备手机以及SD卡

首先运行Linux deploy是需要root权限的,目前自用的OPPO R15舍不得用来折腾,更别说它还不支持root。所以只能去万能的咸鱼挑一个,这里我选的是几年前发售的TCL_M2M,MTK6752,2+16的配置。虽然配置辣鸡,打个王者最低特效都只有30帧,不过50包邮还要什么自行车呢。如果你手头更充裕的话,建议你入手小米4,2+16应该130左右,刷机还能体验各种第三方OS。

入手之后刷机直接升级到安卓5.1,然后就是root后卸载无用的系统应用,禁止后台自启等等。SD卡的话不要买太大,手机可能会识别不出来。

2. 配置Linux deploy

安装Linux deploy之前得首先安装Busybox,它集成了Linux的很多命令。

安装完Linux deploy之后:

首先点开左侧菜单,点击“配置文件”,点击编辑改个你喜欢的名字。

然后点击“设置”,【锁定wifi】,【CPU唤醒】,【联网更新】勾上,【PATH变量】最重要,点击并填上/system/xbin,这样才能关联Busybox。然后点击下面的【更新环境】。

然后点击右下角的设置图标开始进行配置,这里我以Centos为例:

发行版:【CentOS】

架构:【aarch64】

版本:【7】

源地址:http://mirrors.aliyun.com/centos-altarch/

源地址记得换成国内源,我的是阿里源,清华源体感不是很稳定,时好时坏。

安装类型:【分区】

如果你不了解安装类型有什么区别,请看这篇文章:LinuxDeploy 详解

众所周知,手机内置存储/SD卡都是fat32格式,不能储存超过4GB的文件。所以不能选择【镜像文件】形式,镜像文件无法超过4GB也就意味着你的Centos系统空间最多只有4GB,随便安几个包就满了。不过真的没办法了吗?当然有,以我的32GB SD卡为例,将SD卡进行分区,2GB fat32格式,25GB ext4格式,2GB缓存即可。具体操作步骤请看这篇文章:使用MiniTool Partition Wizard对SD卡进行EXT4格式分区

虽然现在软件版本已经更新很多代了,但是操作步骤没变。放心大胆的跟着做就行了。

安装路径: /dev/block/mmcblk1p2

其中mmcblk1相当于sdcard1也就是SD卡,如果你想安装内置存储,就是mmcblk0,相当于sdcard0。

p2就是mmcblk的第2个分区,p1就是第一个分区。前面我分区的时候将etx4分在了第2个区,所以选p2。

文件系统:【etx4】

用户名/密码:自选

特权用户:root

本地化:【zh_CN.UTF8】

初始化:可选可不选

勾选后linux deploy将在启动后在指定路径运行脚本,默认为/etc/rc.local,不过它是/etc/rc.d/rc.local的软连接,所以就是开机自动运行/etc/rc.d/rc.local的脚本

挂载:不选

由于已经安装在SD卡了,所以SD并没有其他有价值的东西可供探索了。。。

SSH:必选

剩下的看自己需求

3.SSH连接&&关闭唤醒锁

安装系统是一件很漫长的事。。。所以。。。be patient

安装完毕之后,第一件事就是用SSH连接了。正上方局中的标题就包含了你当前的局域网ip。用你刚才配置的用户名和密码登录即可。安卓端可以用ConnectBot,PC端推荐自带的openssh,或者功能更全面的Xshell。如果你想开启SSH免密登录的话,可以看这篇文章:三步实现SSH无密码登录

第二件事就是查看我们的分区是否成功。

[root@localhost ll]# df -h

文件系统 容量 已用 可用 已用% 挂载点

/dev/block/mmcblk1p2 25G 3.5G 20G 15% /

tmpfs 944M 84K 943M 1% /dev

tmpfs 944M 0 944M 0% /dev/shm

可以看到已经成功了。

第三件事是关闭唤醒锁。这个很重要。假如不关的话锁屏一段时间后安卓系统会自动限制后台运行,来达到省电的作用。怎么关呢?把系统的省电方案更改为均衡,并且关闭诸如休眠省电之类的选项。然后把Linux deploy在设置里让其保持后台运行。然后下载MT管理器,打开左侧菜单点击【终端模拟器】,然后下滑任务栏里开启唤醒锁即可。其实任何终端应该都有唤醒锁功能,开启就行啦

4.进行一些必要的工作

禁用yum插件

由于yum插件每次会加载而且镜像效果还不好,通常下载到最后一个包的时候就限速,只有几k/s,实在慢的令人无法忍受。所以我们必须第一件事就得禁用它并换上新的镜像源。这里我用的是阿里云的镜像,注意,网上的方法并不能行得通,必须你手动改,因为linux deploy大部分是aarch64构架。

# 禁用Yum插件

vim /etc/yum.conf

找到plugins这一行改为0即可

#先执行备份,然后将下面的配置文件替换之即可

mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.bak

#适用于aarch64构架的阿里云镜像源配置文件

#其实无非就是批量替换版本以及构架而已

# 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.添加环境变量

这里默认/usr/local/bin并不在系统变量中,我们需要在/etc/bashrc中添加之

echo export PATH=$PATH:/usr/local/bin >> /etc/bashrc

3.寻找systemctl的替代品

#从代码中的github地址你可以发现怎么在chroot容器中实现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的安装包不要放在你默认用户的文件夹(例如/home/ll),否则其他用户会因为权限不够访问不了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.备份与恢复

点击软件右上角菜单,点击【导出】即可备份镜像了,不过就是比较慢,需要耐心等待,并且这个镜像不能超过4GB,否则将无法储存(FAT32最大只能储存4GB文件)想恢复直接安装这个镜像即可。方法是,在安装时在【发行版GNU/Linux】中选择“rootfs.tar”,然后在【源地址】中选择你导出镜像的路径,开始安装即可。

最后是一些常用软件的安装方法

结语

还有最后的最后,说一千道一万,不如直接给个现成的包来的痛快,你说是叭?

奉上自用Centos7的镜像:坚果云链接,已安装以下软件(包在/opt/中):

nodejs 12.16.0

yarn 1.22.0

python 3.6.4

@vue/cli 4.2.2

screen 4.0.1

安装方法就在上面的第五节【备份与恢复】中,如果需要用户名和密码,则为

用户名:ll

密码:0000

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

linux命令deploy_Linux deploy 超详细入门教程 的相关文章

  • 在 execl 在输出中不可见之前打印

    include
  • 内核驱动程序从用户空间读取正常,但写回始终为 0

    因此 我正在努力完成内核驱动程序编程 目前我正在尝试在应用程序和内核驱动程序之间构建简单的数据传输 我使用简单的字符设备作为这两者之间的链接 并且我已成功将数据传输到驱动程序 但我无法将有意义的数据返回到用户空间 内核驱动程序如下所示 in
  • 如何通过 makefile 在 Linux 上安装程序? [复制]

    这个问题在这里已经有答案了 可能的重复 Linux Unix make install 应该包含什么 https stackoverflow com questions 528399 what should linux unix make
  • Vagrant 遇到问题 - “404 - 未找到”

    我正在尝试使用 Vagrant 制作一个 LAMP 盒子 有人告诉我它使用起来非常简单 我对网络和虚拟机完全陌生 对 Linux Ubuntu 的经验也很少 我目前已尝试按照官方文档页面上的教程进行操作 http docs vagrantu
  • 在ubuntu中打开spyder

    我想在ubuntu中打开spyder Python IDE 通常我会在 shell 中编写 spyder 它会打开spyder IDE 现在 当我在shell中编写spyder时 它只是换行 什么也没有发生 类似于按 enter 我如何找回
  • 更新Linux中的包含路径

    我的 my path to file 文件夹中有几个头文件 我知道如何将这些文件包含在新的 C 程序中 但每次我都需要在包含它之前输入头文件的完整路径 我可以在linux中设置一些路径变量 以便它自动查找头文件吗 您可以创建一个 makef
  • bash while 循环的布尔表达式中的 -lt 意味着什么?

    我猜测它代表小于基于输出 但是我在哪里可以找到有关此语法的文档 bin bash COUNTER 0 while COUNTER lt 10 do echo The counter is COUNTER let COUNTER COUNTE
  • 链接错误:命令行中缺少 DSO

    我对 Linux 使用 Ubuntu 14 04 LTS 64 位 相当陌生 来自 Windows 并且正在尝试移植我现有的 CUDA 项目 当通过链接时 usr local cuda bin nvcc arch compute 30 co
  • 如何在 Linux 和 C 中使用文件作为互斥体?

    我有不同的进程同时访问 Linux 中的命名管道 并且我想让此访问互斥 我知道可以使用放置在共享内存区域中的互斥体来实现这一点 但作为一种家庭作业 我有一些限制 于是 我想到的是对文件使用锁定原语来实现互斥 我做了一些尝试 但无法使其发挥作
  • BASH:输入期间按 Ctrl+C 会中断当前终端

    我的 Bash 版本是 GNU bash version 4 3 11 1 release x86 64 pc linux gnu 我有一段这样的代码 while true do echo n Set password read s pas
  • “git add”返回“致命:外部存储库”错误

    我刚刚进入 git 的奇妙世界 我必须提交我对程序所做的一系列更改 位于名为的目录中 var www myapp 我创建了一个新目录 home mylogin gitclone 从这个目录中 我做了一个git clone针对公共回购 我能够
  • 如何在线程创建和退出时调用函数?

    include
  • Linux 使用 boost asio 拒绝套接字绑定权限

    我在绑定套接字时遇到问题 并且以用户身份运行程序时权限被拒绝 这行代码会产生错误 acceptor new boost asio ip tcp acceptor io boost asio ip tcp endpoint boost asi
  • 如何才能将 TCP 连接返回到同一端口?

    机器是 RHEL 5 3 内核 2 6 18 有时我在 netstat 中注意到我的应用程序有连接 建立了 TCP 连接本地地址 and 国外地址是一样的 其他人也报告了同样的问题 症状与链接中描述的相同 客户端连接到本地运行的服务器的端口
  • Tomcat Intellij Idea:远程部署

    RackSpace 云服务器 Ubuntu 12 04 Intellij Idea 11 1 2 Windows 8 Tomcat 7 0 26 JDK 6 在 Intellij Idea 上 当我尝试在远程 Tomcat 7 服务器上运行
  • ioctl 命令的用户权限检查

    我正在实现 char 驱动程序 Linux 并且我的驱动程序中有某些 IOCTL 命令仅需要由 ADMIN 执行 我的问题是如何在 ioctl 命令实现下检查用户权限并限制非特权用户访问 IOCTL 您可以使用bool capable in
  • 在内核代码中查找函数的最佳方法[关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我开始浏览内核代码 遇到的一件事是如何跟踪函数调用 结构定义等 有没有一种好的方法可以快速跳转到函数定义并退出 我尝试过 Source N
  • 找不到包“gdk-pixbuf-2.0”

    我正在尝试在 Amazon Linux 发行版实例上构建 librsvg 我已经通过 yum 安装了大部分依赖项 其中一些在实例上启用的默认 yum 存储库中不可用 因此必须从头开始构建它们 我已经走了很远 但还停留在最后一点 跑步时sud
  • Linux 中 m 标志和 o 标志将存储在哪里

    我想知道最近收到的路由器通告的 m 标志和 o 标志的值 从内核源代码中我知道存储了 m 标志和 o 标志 Remember the managed otherconf flags from most recently received R
  • SSH,运行进程然后忽略输出

    我有一个命令可以使用 SSH 并在 SSH 后运行脚本 该脚本运行一个二进制文件 脚本完成后 我可以输入任意键 本地终端将恢复到正常状态 但是 由于该进程仍在我通过 SSH 连接的计算机中运行 因此任何时候它都会登录到stdout我在本地终

随机推荐