一切的开始
dietpi极度简洁,软件配置集约化,通过终端图形化选项设置就可以轻松配置好各种复杂环境,比如nextcloud。同时是一个完整linux发行版本,提供自主折腾的途径。
本来想树莓派上docker部署一个nextcloud,结果折腾磁力链接的时候被docker映射整蒙了,干脆换一个dietpi环境。
下载安装
官网下对应img,官网地址:https://dietpi.com/,我的版本是raspberry pi32位镜像。
烧录,可以用官方烧录工具也可以diskimager,我用的是后者,习惯了。
别插卡,先改sd卡目录的dietpi.txt
静态ip
AUTO_SETUP_NET_USESTATIC=1
AUTO_SETUP_NET_STATIC_IP=192.168.1.99
AUTO_SETUP_NET_STATIC_MASK=255.255.255.0
AUTO_SETUP_NET_STATIC_GATEWAY=192.168.1.1
AUTO_SETUP_NET_STATIC_DNS=114.114.114.114
软件源
CONFIG_APT_RASPBIAN_MIRROR=http://mirrors.ustc.edu.cn/raspbian/raspbian/
CONFIG_APT_DEBIAN_MIRROR=http://mirrors.ustc.edu.cn/archive.raspberrypi.org/
一定先改再插卡上电!
初级配置
进ssh后自动更新系统,进行汉化等设置,可参考dietpi远程桌面与中文汉化教程
进行到安装远程桌面时,由于2021年github某些资源无法访问,curl报错。
所以(如果失败的话 )直接ctrl+c返回terminal。
换源
首先确认在下载安装那一步里改了dietpi.txt把源换了,如果没有就再来一次
nano /etc/apt/sources.list
#改成如下(中科大源)
deb http://mirrors.ustc.edu.cn/raspbian/raspbian/ buster main contrib non-free rpi
# deb-src http://mirrors.ustc.edu.cn/raspbian/raspbian/ buster main contrib non-free rpi
#继续修改raspi.list
nano /etc/apt/sources.list.d/raspi.list
#改成:
deb http://mirrors.ustc.edu.cn/archive.raspberrypi.org/debian/ buster main ui
#deb-src http://mirrors.ustc.edu.cn/archive.raspberrypi.org/debian/ buster main ui
#改完
apt-get update
修改dietpi-software
在安装软件过程中发现一个巨坑,xfce需要从github上下一个conf,github的rawcontent获取不到,很麻烦,换了hosts还是连接不上,开启proxy后ssl又报错。
hosts方法(失败)
常规思路还是换hosts,有兴趣可以继续尝试验证以下hosts,并在linux下修改/etc/hosts:
151.101.76.133 raw.githubusercontent.com
同时放一个ip检测:ip138检测
改脚本
尝试无果后转而分析脚本代码,锁定SD卡dietpi/dietpi-software,在dietpi-software源码里找到了这么一行:
#Disable DPMS and screen blanking
dps_index=$software_id Download_Install '98-dietpi-disable_dpms.conf' /etc/X11/xorg.conf.d/98-dietpi-disable_dpms.conf
安装Xserver要禁用DPMS,短短一行巨坑啊(中国特殊环境,国外没这个问题)
解决方案:从dropbear切换到openssh,用scp把配置文件"98-dietpi-disable_dpms.conf"传到指定目录"/etc/X11/xorg.conf.d/"
SD卡dietpi目录内dietpi-software修改如下:
#Disable DPMS and screen blanking
dps_index=/etc/X11/xorg.conf.d/98-dietpi-disable_dpms.conf #$software_id Download_Install '98-dietpi-disable_dpms.conf'
顺利运行!不过治标不治本,终究要吃亏。果然不出我所料,后续大片的curl出错,必须淦起来,尝试把获取不到的文件都clone一份。
克隆指定文件
主要针对.conf路径
mkdir dietpi
cd dietpi/
git int
git remote add -f origin https://github.com/MichaIng/DietPi.git #拉取remote的all objects信息
git config core.sparsecheckout true #启用sparse clone
echo ".conf" >> .git/info/sparse-checkout #添加指定目录
cat .git/info/sparse-checkout #确认一下
git pull origin master #拉下来
cd ..
rm -R .git
然后针对剩余几个文件进行类似操作。
顺手记录mkdir创建系列文件夹操作:
如果要在新创建的目录中创建目录,那么可以用 -p 这个option,比如先创建dir1,然后在dir1中创建dir2,在dir2中创建dir3,就可以直接使用以下的命令:
mkdir -p dir1/dir2/dir3
构造好的项目地址:https://codechina.csdn.net/u012886849/dietpi,内含修改好的dietpi-software,直接替换sd卡dietpi/dietpi-software文件(dpms配置需手动scp复制到指定目录)
大功告成,目前经过简单测试没有遇到任何报错,满足个人需求了。
高级设置
nextcloud
nextcloud安装卡在ncc maintenance:mode --off,经搜索发现了一个issue:Crash while installing NextCloud
解决方案:
sed -i "\|cp '/var/www/nextcloud/config/config.sample.php'|d" /DietPi/dietpi/dietpi-software
# 如果已经进行安装出现了卡死:
rm /var/www/nextcloud/config/config.php
rm /var/www/nextcloud/occ
mysqladmin drop nextcloud #原有数据库必须删除
dietpi-software install 114
然后又遇到curl卡死,分析发现nextcloud latest release包要放到/var/www目录下,用scp再传一个,继续安装。
结束语
最后说明本人即为csdn同名文章作者gaby-li(我也不知道csdn那边最后通过审核了没有)