tinycore Linux虚拟机下载安装和使用教程

前言

首先说明tinycore和正常的Linux版本比起来限制还是比较多的,比如安装的东西多了之后它运行的时候会相应地占用很多的内存,这个问题我还没有开始解决,个人猜测可能是.filetool.lst需要改一下,或者另外设置挂载分区把一部分不需要开机加载的东西另外放(开机加载项的那个文件我也没加什么东西,但它就是加载了。可能和tinycore在内存中运行的特性有关)

已经体验过Ubuntu,Fedora,Arch,puppy,tinycore,其中Fedora36特别特别卡,相同的配置Ubuntu就很流畅,Fedora36能卡成我妈用过十年的电脑上的PPT,不知道是什么原因。Ubuntu的iso镜像比较大,使用手感很不错。arch刚刚配置完st、dwm、python,准备开始折腾,目前使用感觉良好。tc装完了xorg-server,还没做接下来的配置。

安装

下载

我用的是清华的镜像站(上不了清华,就上清华的镜像站),网易也可以用,这两个比较全面。

进入镜像网站tinycorelinux,在downloads里面下载。我是用的最上面那个core版本,只有命令行(可以用xorg等等自己配置桌面,以后可能会尝试配置)。下面的tinycore和coreplus都有GUI界面,我下载过看了一下,比较丑,和没配置过的puppy差不多丑。当然也有其它的版本,在下面的other ports里面

图片[1]_tinycore Linux虚拟机下载安装和使用教程_八羊网
-x86 Pure 64-
-Raspberry Pi-
-dCore x86-
-dCore x86_64-
-dCore Arm V7hf-

扩展都在extensionsbrowse TCZs里,有不知道可不可以装的扩展可以用Ctrl+F查找,也可以装完后用tce-ab搜索,比如java的安装包,查找jdk,java,install,tools等等,可以找到很多合适的包体。使用tinycore本身就是探索的过程,中英文资料都比较少而且很老,但并不影响其安装包丰富,tc是适配.tar.gz安装包的,也就是Debian系列的安装包,可以使用wget、tar和make/cmake等指令安装库里没有的包体。第一次用建议挂VMware或者virtual box。

图片[2]_tinycore Linux虚拟机下载安装和使用教程_八羊网

我用的是VMware,当然网上装U盘的、用virtual box的教程都很多,vm反而寥寥无几。VMware需选择“稍后安装操作系统”,后面选择Linux版本,好多年前的百度上是2.6,不过我选过3.x,4.x的都能运行。

虚拟机设置

安装位置随意(反正也没多大),然后直接点下一步,完成。

接下来编辑虚拟机设置,把SCSI的硬盘删了,添加IDE的硬盘(必须用IDE,SCSI好像无法存盘。我试了tc和puppy两种在内存里面跑的Linux版本,都要用IDE硬盘,可能是因为这些系统内核比较老无法识别一些新的硬盘种类。),容量8G16G都可以(后期硬盘能调但没什么必要,内存可以调大但不建议调小)。内存我直接拉到1G,不过在前面我已经试过几次,不装桌面的话256M绰绰有余。

网络适配器选择NAT模式,CD/DVD(IDE)使用ISO镜像文件,把刚才下载的core-current.iso放进去。现在大概是这个样子:

图片[3]_tinycore Linux虚拟机下载安装和使用教程_八羊网

进入系统安装+换源

开启虚拟机,点进去就能操作了,解锁鼠标用Ctrl+Alt 。boot意为启动,要按一下enter。

接下来输入

sudo passwd(设置密码,设置的时候它不会显示,实际上是输进去了的。总共两遍)
sudo passwd tc(设置tc的密码)

这一步可以不做,主要是为了安全,毕竟sudo的权限比较大容易出问题。另外提一嘴Linux的权限系统确实比Windows的要合理很多,现在已经是win11了,还是那种需要管理员权限来设置管理员密码,但是设置密码必须要管理员权限的憨憨设定。Arch Linux在权限的引导上感觉做得更合理,创建root用户-设置用户组-创建普通用户,root用户在使用某些权限的时候则会报warning。

先换源:用vi /opt/tcemirror命令,里面已经有个网址

(为考虑vim新手的需要,涉及vim操作的步骤我都会详细说明)此时光标在行首,按i键进入输入模式,直接按住delete把那一行删了,输入镜像源网址:

http://mirrors.tuna.tsinghua.edu.cn/tinycorelinux
或者
http://mirrors.163.com/tinycorelinux 

注意是http不是https,我之前因为这个问题被卡了十几分钟,主要是之前用python,arch,Ubuntu设置镜像的时候都必须要用https,至于tc为什么现在还不能用,可能是https服务还没装。

输完按ESC进入命令模式,输入:wq(冒号加wq,w是写,q是退出,如果vim无法保存可能是权限不足,用:q!强制退出,在刚才的指令前面加sudo再去编辑,然后:wq退出)。不了解vim的几种模式的话就自己查吧

确认已经联网

ping www.baidu.com

Ctrl+C退出,如果ping没有成功检查一下主机是否联网,VMware是否是NAT模式(装U盘的或者实体硬盘的可能要装驱动,这个教程网上还是有的,但是要注意你现在没有网装不了驱动,可以在virtual box里面配置好然后重新烧写镜像)

接下来

tce-load -wi tc-install

tce-load是tinycore的安装工具,-w是下载,-i是安装,-wi是下载并安装。凡是没有出现进度条的应该都是镜像网址错误

下一步

sudo tc-install.sh

接下来做几个选择题,我是用的

c
f
1
y
3
vga=788 tce=hda1(这个直接enter了也没事,有默认值,而且后期可以调)
y
这几个指令是什么意思都会提示的,可以按照自己的想法选

然后sudo reboot重启,重新vi /opt/tcemirror再写一次换源命令

存盘

!!!!!!!!!!

接下来将上述修改保存到硬盘,必须先重启然后设置存盘

!!!!!!!!!!

可以直接用echo <文件名> >> /opt/.filetool.lst指令,也可以直接修改这个.lst文件

我先看了一下哪些东西要存盘

cd ../..
ls

列出了所有包含的目录。以下是各个目录的含义:

/bin二进制可执行命令
/dev设备特殊文件
/etc系统管理和配置文件
/etc/rc.d启动的配置文件和脚本
/home用户主目录的基点,比如用户user的主目录就是/home/user,可以用~user表示
/lib标准程序设计库,又叫动态链接共享库,作用类似windows里的.dll文件
/sbin系统管理命令,这里存放的是系统管理员使用的管理程序
/tmp公用的临时文件存储点
/root系统管理员的主目录
/mnt系统提供这个目录是让用户临时挂载其他的文件系统。
/lost+found这个目录平时是空的,系统非正常关机而留下“无家可归”的文件(windows下叫什么.chk)就在这里
/proc虚拟的目录,是系统内存的映射。可直接访问这个目录来获取系统信息。
/var某些大文件的溢出区,比方说各种服务的日志文件
/usr最庞大的目录,要用到的应用程序和文件几乎都在这个目录。其中包含:
/usr/x11r6存放xwindow的目录
/usr/bin众多的应用程序
/usr/sbin超级用户的一些管理程序
/usr/doclinux文档
/usr/includelinux下开发和编译应用程序所需要的头文件
/usr/lib常用的动态链接库和软件包的配置文件
/usr/man帮助文档
/usr/src源代码,linux内核的源代码就放在/usr/src/linux里
/usr/local/bin本地增加的命令
/usr/local/lib本地增加的库根文件系统

vi /opt/.filetool.lst打开该文件,按J键使光标移到最底下一行,按O键插入新行。

我在里面加入了opt,home,etc,usr,bin,lib。配置环境的话要加lib和bin,然后用户文件在home里。etc是系统配置文件夹,开始配置整个tc环境时会改到,所以也加入了备份。改完之后filetool.sh -b消耗的时间会变长(如果没有出现Backing up…… Done这两行说明失败了,想想上面哪一步出了问题再重来一次。存盘这一步很重要)

/opt/.filetool.lst是filetool.sh -b运行时的备份列表,tc是运行在RAM里面的,必须用指令将它存入盘中。如何自动存盘我还在探索。

关于vm及内存的说明

现在基础的设置已经结束,用df -h查一下内存,发现只显示了RAM分配的内存。检查刚才filetool.sh -b指令的输出,发现存盘在/mnt/sda1里(由于之前手动配置过puppy linux的存盘,印象很深,当时也是没有VMware的教程,自己在虚拟机里试。主要是当时不知道要用IDE硬盘,还有存盘的指令和正常的流程不太一样,它的mnt文件夹里面没有sda,我检查了半天才发现没法挂载。tc的流程比那个好多了,检查时就已经自动挂载到sda1,但是如果想分区还是得照着流程来。不知道swap区在这种系统里有没有用,还没试过)

接下来用du -h /mnt/sda1查看消耗的硬盘容量(不另外挂载的话应该在sda里,mnt全称mount,也是一个Linux指令),我目前是26.7M。之前有次安装失败的时候我统计过一些数据,vm创建的文件夹达到1.04G时已经安装的包体大概在90.3M左右,本体有16M,分配时总共给了硬盘16G,内存1G,消耗的存储与我设置的磁盘“其他Linux内核-0”中的占用相仿,最大的是一个.vmem虚拟内存文件1G,即实际分配的内存。

测试

输入ls(列出当前目录里的文件),应该显示了一堆文件夹,因为上面已经cd ..两次,根据之前Ubuntu、puppy等版本的使用经验我们刚打开所在位置是/home/tc,一般用户的文件存在home文件夹里面。(所以.filetool.lst中本来就会有两个文件夹,一个是用户文件,一个是系统配置)

cd /home

进入home,

mkdir test

先创建一个文件夹,测试一下是否能成功保存

filetool.sh -b
sudo reboot

reboot是重启,poweroff是关机。

等到重启完毕,检查一下

cd ..
ls

看看test是否还在,然后

vi /opt/tcemirror

检查是否换源成功。最好要换源,因为tc本身的服务器很慢还经常会断。

:q  退出vim

接下来可以自由尝试了,一般用tinycore都是建立微型服务器或者配置网络的,之前用过的puppy一般用来做服务器或者数据恢复工具,当然这两个现在都不常见了。如果玩坏了也不要紧,大不了再装一遍,上面的步骤熟练的话几分钟就能完成。所以说装着玩的建议不要直接挂U盘,在virtual box或者vm里面用熟了再装。我之前用坏了两个Ubuntu一个puppy(主要是vm里面可以放飞自我,用着感觉不太行了就重装。修?懒得修,有用的资料我都另外记在主机里面)

配置gcc环境及python开发环境

(java环境在镜像源里也挺全的,但我没学过)

在刚才说的browse TCZs里面Ctrl+F搜索python3.9,好像比直接搜python少很多,但是不要直接tce-load python,因为这样装的是python2,我暂时不要用。目前先不要存盘,等到编译成功之后再存,否则出了错不太方便解决。

python3的ensurepip有gcc的依赖包,不装gcc无法安装pip3(我就是因为这个重开了两次,后来查报错信息才想起来有依赖库这回事),先

tce-load -wi gcc
tce-load -wi make
tce-load -wi cmake

(我也不知道当时缺的是哪个包,反正装上吧,都要用的)

tce-load -wi python3.9
tce-load -wi python3.9-setuptools

接下来装pip

python3 -m ensurepip
python3 -m pip list

此时正常会出现warning,pip需更新

python3 -m pip install --upgrade pip

更新pip时可能有超时,在后面加一个 -i https://pypi.tuna.tsinghua.edu.cn/simple或者任意一个镜像源重新执行upgrade即可

这些命令在Windows上是要用管理员权限打开cmd的,在Linux上我本来不放心加了一个sudo,发现根本没必要。

完全体的gcc不建议安装(即下载gcc镜像里的.tar.gz安装包然后make编译),会极大拖慢存盘速度,或者每次存盘都要重设.filetool.lst文件,比较麻烦。还有python有些比较大的包也建议不要安装,这里不准备用c和py进行数据量比较大的开发,只是作为脚本语言存在。因为gcc的体系过于庞杂,在这种运行于内存中的系统下可能一个make就能把内存跑满(不要问我是怎么知道的,2G的内存,半天的血泪教训)

tinycore做网络编程、脚本开发等较为轻量的工作效果还可以,具体可以看大佬的博客(这个人写得挺好的cnblogs.com/minlearn/ar搜索的时候搜tinycolinux,他好像一开始的时候拼错了)

错误的gcc配置,不过还是有些收获

写了一个cpp文件,g++执行(gcc安装自带g++)报错缺少头文件features.h,因为tc镜像源上没有找到类似Ubuntu的gcc-multilib,经查找,features.h在/usr/local/include/c++/11.2.0/parallel下

图片[4]_tinycore Linux虚拟机下载安装和使用教程_八羊网

接下来调节环境变量。tinycore好像缺一些环境变量相关的文件夹(命令皆文件,Windows下也是这样),在/etc下,没找到bashrc文件(其实也不需要,在profile.d下配置更容易维护),只有profile和profile.d文件夹,而目前profile.d文件夹里是空的。

尝试配置profile.d文件夹,其中的shell脚本文件格式应为(<>符号内的是格式,不是具体语句)export <PATH>=<file path>

首先输入envexport,显示所有的环境变量,或使用echo $<PATH NAME>或者env|grep <PATH NAME>显示<PATH NAME>所定义的环境变量。

网上查到C/C++相关的环境变量有LIBRARY_PATHLD_LIBRARY_PATH,但是这里好像用CPLUS_INCLUDE_PATH才有效,C语言则是C_INCLUDE_PATH

先装个tree指令看看该c++头文件目录下有多少个文件夹:

tce-load -wi tree

因为目前还没有装桌面和虚拟终端,终端直接的输出无法翻页。在cd /usr/local/include/c++/下,使用tree -d ./ > /home/cppref.txt把该目录下所有的文件夹收集到/home/cppref.txt中用vim打开,总共有四十几个文件夹。

因为不太确定环境变量所在的shell脚本里是否可以用for遍历,我就另外用python脚本自动写个cppref.sh:

vi /home/test/py/WriteShell.py

(目前我的home目录是这样)

图片[5]_tinycore Linux虚拟机下载安装和使用教程_八羊网

录入代码:

图片[6]_tinycore Linux虚拟机下载安装和使用教程_八羊网

运行

rm -f cppref.sh
python3 WriteShell.py

结果:

图片[7]_tinycore Linux虚拟机下载安装和使用教程_八羊网

另外由于c++有很多的c语言库依赖,所以再配置一下C_INCLUDE_PATH并且把C的路径也放到C++后面

图片[8]_tinycore Linux虚拟机下载安装和使用教程_八羊网

找到gcc的路径在/usr/local/lib/gcc中(这边路径雀氏有点乱,为什么不把c++和gcc放一起呢),同样稍微扩展一下刚才的程序,在第二行输出c++的配置

图片[9]_tinycore Linux虚拟机下载安装和使用教程_八羊网

再次运行并替换原来的环境变量:

rm -f cppref.sh
python3 WriteShell.py
sudo rm -f /etc/profile.d/cppref.sh
sudo cp -f ./cppref.sh /etc/profile.d/
filetool.sh -b
sudo reboot

然后还是缺少头文件locale.h,所以我上github查了一下gcc的库,看见locale.h也没多少,我就直接把它抄到gcc的文件夹里去了,然后果然,又有别的报错。我就意识到这个gcc并不是完整的,make和cmake指令我没试过可不可以用,但是只要有gcc环境就可以执行ensurepip了。

随后我又用wget下了一个完整的gcc,/configure之后没问题,用make编译的时候内存就炸了(这时候有2G),遂止步于此。

阿巴阿巴

记一个表述上的错误,linux是自学的,没有系统概念

图片[10]_tinycore Linux虚拟机下载安装和使用教程_八羊网
© 版权声明
THE END
喜欢就支持一下吧
点赞14 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容