Ste*_*fan 32 arch-linux openbox efficiency
我的一台机器是2GB EeePC Surf,这是一款资源非常有限的简洁上网本。现在有限,我还有22MB可用空间。
在它上面,我正在运行带有Openbox DE 的Arch Linux和许多需要的应用程序,以使其作为移动 PC 运行。
有哪些方法可以消除一些不必要的已用空间?
ech*_*hox 19
您可以从以下几点开始:
查看系统上安装的软件包,pacman -Q并删除不需要的软件包。一个好的开始可能是附加-t
开关:
限制或过滤输出到任何当前安装的包不需要的包。
使用以下命令清理 pacman 的包缓存 pacman -Sc
始终用于pacman -Rs删除未使用的包依赖项。
要查找使用大部分磁盘的“大文件”和文件夹,一个很好的补充du是xdiskusage. 这个小工具可让您快速浏览文件系统并查看文件夹磁盘使用情况的图形表示。
fdm*_*ion 13
警告:这些想法仅适用于精通 Linux 整体和 Arch Linux 的用户。
如果你愿意涉足危险的领域,你可以将基本的 Arch 安装精简到小于 500MB。这需要做一些非常危险的事情:
/usr/lib/firmware)/usr/lib/modules/...).a文件/usr/lib(仅当您从不使用系统编译软件时。注意:这包括使用makepkg)/usr/include(仅当您从不使用系统编译软件时)/usr/share/doc和删除不需要的文件/usr/share/info/usr/share/man/usr/share/terminfo和不需要的时区文件中删除/usr/share/zoneinfostrip *在包含可执行二进制文件(/usr/bin和/usr/sbin)的所有文件夹上运行upx压缩较大二进制文件的工具(Samba 二进制文件非常适合这种情况,因为它们往往非常大,因为它们通常是静态编译的。)还要注意,使用upx意味着整个未压缩的二进制文件必须适合RAM 在执行期间,因此对 RAM 低的系统感到厌烦。在您执行任何此操作之前,请对您的系统进行完整备份。幸运的是,Linux 使这相对容易——如果您可以连接和安装外部卷(例如 USB 驱动器),您可以执行诸如cd / && tar -cf /mnt/usb/mySystem.tar /备份整个系统之类的操作。
再次请注意,除非您对 Linux 内部结构和 Arch Linux具有深入的知识、经验和理解,否则我实际上并不建议您执行上述操作(尤其是 7 到 9)。使用我列出的几乎任何文件都可能以可怕的方式损坏系统,因此您已被警告。如果您不知道您的系统是否需要某个固件文件、模块等,请在弄乱它之前进行研究。(请注意,删除系统所需的内核模块可能会导致系统无法启动,或者系统没有键盘/网卡/声音/显示器/等支持,或其他各种无法解释的行为。)
另请注意,任何软件包升级都可以并将恢复您在上面删除的许多文件。如果您决定走这条路线,您可能希望最终编写删除不需要的文件的脚本,并在每次主要软件包升级后运行您的脚本。(例如:升级内核将带回所有内核模块,并且通过依赖项升级 linux-firmware 包将带回所有固件/usr/lib/firmware。)
最后,请密切注意/var/log日志文件会随着时间的推移而增长。您可以通过rm *\@*.journal在您的日记文件夹中执行类似操作来删除过去的日记,但保留当前的日记。
我已经使用这些技术成功地在 512MB 磁盘模块设备上运行了 NAS 服务器数月,但是它们仍然不适合胆小的人。(我还使用 LinuxFromScratch 在仅 128MB 的存储空间中构建了一个类似的项目,但那是另一回事了......)
编辑/添加:
您可以使用以下几种方法来尝试获得一些额外空间:
摆脱libgo. 该libgo库附带gcc-libs并且 AFAIK 仅由用 Go 语言编写的应用程序使用。我想不出我使用的任何需要该库的应用程序。在我的系统上,它的大小为 40MB。当你想减肥时,那是很大的空间。我已经从我的“迷你”安装中删除了它,对我所做的任何事情都没有不良影响(但同样,那就是我,YMMV!)
收缩libicudata.so。在我的系统上它是 27MB。它基本上是压缩到库对象中的大量 unicode/locale 数据。有一个在线工具可以制作此文件的较小版本,但尚未针对当前版本进行更新(并且您不能在新版本中使用旧文件。)我还没有尝试过手动执行此操作,但是如果你能弄清楚怎么做,你可以从这个文件中减少大约 20-22MB。
如果你使用 Python,你可以通过test从 python2: 中删除库来节省 37MB 左右,rm -r /usr/lib/python2.7/test通过将它移除到 python3:可以节省大约 66MB rm -r /usr/lib/python3.6/test。
再次对于 Python,您可以摆脱.pyo文件和.py文件。这些.pyo文件是“优化的”文件,但 Python 从未真正使用过它们。这些.py文件是标准库的原始源代码。Python 在运行 Python 代码时通常读取的唯一文件是.pyc(python 编译的)文件。cd /usr/lib/python2.7 && find . -name "*.pyo" -exec rm -v {} \;和cd /usr/lib/python3.6 && find . -name "*.pyo" -exec rm -v {} \;
删除不必要的语言环境数据。有一个名为 AUR 的包localepurge可以自动执行此操作。否则,您必须在/usr/share/locale. 您需要保留自己的语言环境和locale.alias. 我在这里,在美国,保持en_US并locale.alias和消除一切剃掉约80MB。
现在,我想要看到的是一个工具,它可以分析您的系统并确定您需要哪些内核模块,以及您需要哪些固件文件。这将是“安全”清理这些文件夹的好方法......
或者,也许有人应该将使用uClibc或diet-libc类似的东西放在一起的 Arch “发行版” 。那可能是一个有趣的暑期项目。:-)
journalctl --vacuum-size=100M #remove all logs, only retain 100mb
pacman -Scc #remove all package installation files (obsolete and current)
pacman -S bleachbit
bleachbit -c system.*
Run Code Online (Sandbox Code Playgroud)
du -d1 -h / 2>/dev/null | sort -h
Run Code Online (Sandbox Code Playgroud)
这显示了最大目录的排序列表,/
您可以向下执行两个级别:
du -d2 -h / 2>/dev/null | sort -h
Run Code Online (Sandbox Code Playgroud)
我的结果是:
0 /proc
0 /sys
0 /tmp
12K /dev
12K /srv
16K /lost+found
632K /run
4.3M /boot
13M /opt
15M /etc
75M /root
93M /home
2.4G /var
3.2G /usr
221G /mnt
227G /
Run Code Online (Sandbox Code Playgroud)
我忽略/mnt(因为这是一个外部驱动器)两个目录:var和usr. 让我们看看里面是什么:
du -d1 -h /var /usr 2>/dev/null | sort -h
Run Code Online (Sandbox Code Playgroud)
然后,再深入一点:
du -d1 -h /var/log /usr/share /usr/lib /var/cache 2>/dev/null | sort -h
Run Code Online (Sandbox Code Playgroud)
我有 717mb 的/var/log.
我不喜欢随机删除目录,所以让我们用干净的方式来做:
$ journalctl --disk-usage
Archived and active journals take up 728.7M on disk.
Run Code Online (Sandbox Code Playgroud)
让我们只留下 100mb 的日志:
journalctl --vacuum-size=100M
...
Deleted archived journal /var/log/journal/ba5391...b.journal (8.0M).
...
Vacuuming done, freed 616.6M of archived journals on disk.
Run Code Online (Sandbox Code Playgroud)
有关如何在此处配置 journalctl 的更多信息。
我有660M /var/cache/pacman。它是 1.8gb,但我跑去pacman -Sc删除未使用的包。让我们删除其余的:
pacman -Scc
Run Code Online (Sandbox Code Playgroud)
许多用户确实删除了它,或者至少清理了它。但我可能是一个问题。但是结帐漂白位(下一段)。
自动清洁器。会删除很多东西,但因为它主要是语言环境。
$ pacman -S bleachbit
$ bleachbit -p system.*
Disk space to be recovered: 488.8MB
$ bleachbit -c system.*
Run Code Online (Sandbox Code Playgroud)
您可以查找更多要删除的内容:
bleachbit --list
bleachbit -p thunderbird.*
Run Code Online (Sandbox Code Playgroud)