红联Linux门户
Linux帮助

经过我多次实验,/usr/share/目录疑似可以移动,解决要分区不足的情况

发布时间:2011-09-14 21:25:00来源:红联作者:dchwlinux
[i=s] 本帖最后由 dchwlinux 于 2011-9-15 21:47 编辑 [/i]

我的根分区因为装第三方软件而不太够用,于是我就想能不能把文件做一下移植。我本来想移动libreoffice,通过新立得查看安装文件以及信赖的安装文件得知libreoffice很大一部分装在/usr/lib/libreoffice下,而且还不小:[code]$ sudo du -sh /usr/lib/libreoffice/
225M /usr/lib/libreoffice/
$
[/code]于是想移动下这个目录,把libreoffice复制到~/software_deb下,并命名usr_lib_libreoffice,然后在原目录下放个连接。[code]$ sudo cp /usr/lib/libreoffice ~/software_deb/usr_lib_libreoffice -r
$ sudo rm /usr/lib/libreoffice -r
$sudo ln -s ~/software_deb/usr_lib_libreoffice /usr/lib/libreoffice
$
[/code]但是结果是失败的!之前曾经移动过游戏,比如wesnoth、frozen-bubble、fillets-ng等,这些软件是装在/usr/share/games下的,不过移植过程中发现游戏里用的了软连接,不过软连接连到的是相对路径,这时如果游戏主目录被移动到别处,使用相对路径就会出错。好在游戏启动时用到的shell脚本,可以通过vi修改成绝对路径。但是libreoffice这样的软件比较复杂,安装目录比较多而且/usr/lib是库目录,太多太复杂,试了很长时间都不行。又试了其它软件都不行,最后放弃了。后来又把目光移向了/usr/share目录,也是个不小的目录。
在里面找了几个大的目录试着移动:[code]$ du -sh /usr/share/*/|grep M
25M /usr/share/app-install/
2.2M /usr/share/aptitude/
8.2M /usr/share/backgrounds/
1.2M /usr/share/branding/
6.6M /usr/share/cairo-dock/
2.8M /usr/share/ccsm/
2.4M /usr/share/command-not-found/
7.1M /usr/share/compiz/
1.3M /usr/share/consolefonts/
13M /usr/share/cups/
136M /usr/share/doc/
1.7M /usr/share/espeak-data/
2.3M /usr/share/file/
238M /usr/share/fonts/
1.5M /usr/share/foo2qpdl/
1.8M /usr/share/foo2zjs/
109M /usr/share/foomatic/
2.9M /usr/share/gconf/
1.3M /usr/share/gedit-2/
1.3M /usr/share/GeoIP/
1.6M /usr/share/gettext/
2.9M /usr/share/ghostscript/
32M /usr/share/gimp/
63M /usr/share/gnome/
1.5M /usr/share/gnome-control-center/
1.6M /usr/share/gnome-games/
2.5M /usr/share/gnome-power-manager/
1.6M /usr/share/groff/
2.9M /usr/share/grub/
6.7M /usr/share/gtk-doc/
1.8M /usr/share/guile/
5.3M /usr/share/gutenprint/
1.6M /usr/share/hal/
13M /usr/share/hplip/
22M /usr/share/i18n/
48M /usr/share/ibus-table/
316M /usr/share/icons/
172K /usr/share/ImageMagick-6.5.7/
1.3M /usr/share/info/
29M /usr/share/java/
1.9M /usr/share/javazi/
28M /usr/share/kde4/
4.7M /usr/share/libchewing3/
3.7M /usr/share/liblouis/
56M /usr/share/libreoffice/
123M /usr/share/locale/
53M /usr/share/locale-langpack/
7.0M /usr/share/m17n/
24M /usr/share/man/
33M /usr/share/midi/
5.0M /usr/share/mime/
2.0M /usr/share/mime-info/
2.7M /usr/share/miro/
3.5M /usr/share/mlt/
11M /usr/share/mplayer/
8.0K /usr/share/NetworkManager/
7.4M /usr/share/notify-osd/
4.1M /usr/share/omf/
18M /usr/share/perl/
6.0M /usr/share/perl5/
60M /usr/share/pinyin-database/
2.2M /usr/share/pixmaps/
47M /usr/share/ppd/
81M /usr/share/pyshared/
2.1M /usr/share/qt4/
1.1M /usr/share/sgml/
7.5M /usr/share/skype/
4.5M /usr/share/smplayer/
2.2M /usr/share/snmp/
1.1M /usr/share/software-center/
1.3M /usr/share/sopcast-player/
3.9M /usr/share/sounds/
88M /usr/share/stardict/
1.2M /usr/share/synaptic/
2.6M /usr/share/system-config-printer/
5.3M /usr/share/tcltk/
5.6M /usr/share/themes/
24M /usr/share/vim/
58M /usr/share/virtualbox/
1.9M /usr/share/vlc/
2.5M /usr/share/webkit-1.0/
35M /usr/share/wine/
5.5M /usr/share/X11/
70M /usr/share/xbmc/
1.1M /usr/share/xine/
5.1M /usr/share/xml/
1.9M /usr/share/xmodmap/
1.3M /usr/share/yelp/
6.1M /usr/share/zoneinfo/
$[/code]移动了这和几个:
usr_share_doc usr_share_icons usr_share_virtualbox
usr_share_fonts usr_share_libreoffice usr_share_wine
usr_share_gimp usr_share_stardict usr_share_xbmc

竟然全成功了,只要在/usr/share下建好连接就能正常使用软件。
我现在怀疑是不是整个share目录都能完整的移动到别处。这个我没试验过,我的要目录已经够用了。如果你的根分区也有不够的情况,可以考虑移动/share目录。移动整个share目录还没被实验过,请在虚拟机里实验,不要盲目移动。
文章评论

共有 24 条评论

  1. jackhan1 于 2014-06-13 17:12:41发表:

    学习了

  2. cswait 于 2013-06-12 22:00:17发表:

    强文ING,支持楼主

  3. gky2009514 于 2012-12-07 13:03:57发表:

    新手完成任务,求下书籍~

  4. yc3ig5fn 于 2012-05-27 02:46:40发表:

    这个论坛全是广告.管理了

  5. haiwawa 于 2011-12-16 16:22:16发表:

    试试

  6. wuxingang5 于 2011-11-26 19:35:04发表:

    没事可以试着玩玩

  7. 风落飘伤 于 2011-11-05 19:39:07发表:

    路过

  8. sourcehappy 于 2011-11-04 19:17:27发表:

    听麻烦

  9. 493505954 于 2011-10-26 11:06:02发表:

    不错,好东西, 支持楼主。再接再厉

  10. yzchunfeng 于 2011-09-29 09:20:47发表:

    xuexi,谢谢大侠

  11. listeningto2 于 2011-09-23 15:24:06发表:

    我是直接mv,最后添加软连接,使用完全正常。很简单,也很安全。:0)1

  12. age 于 2011-09-17 17:26:20发表:

    话说这种方法太繁琐了吧
    光相对路径修改就让人头痛
    一劳永逸的方法是为/usr单独分区
    并使用lvm
    以后增加空间只需要一条简单的lvextend命令就行了

  13. cbaadntdwx 于 2011-09-17 17:22:30发表:

    目前看这个还很茫然:0w5ty(1

  14. hrhy256 于 2011-09-17 07:49:25发表:

    学习了

  15. starimpact 于 2011-09-16 11:33:41发表:

    可以开一个新的分区,将usr整个给mv过去的,但是一定要在mv前在fstab中注册一下这个新分区,这样很简单。

  16. dchwlinux 于 2011-09-15 21:47:46发表:

    引用:
    回楼主,这个问题得从两个方面去说
    第一,硬盘空间不够用,可以把像/usr/share移到另一个分区上,然后修改/etc/fstab来把这个分区挂载到/usr/share,也可以把里面的部分内容转移到其它的分区上,然后做个软链接,从 ...
    pl_014 发表于 2011-9-15 20:33

    大侠说的是,已经改成移动了。

  17. pl_014 于 2011-09-15 20:35:08发表:

    引用:
    我也遇到过类似的问题,用的系统为opensuse 11.2,采取的方法是删除/opt中的内容。
    my1114 发表于 2011-9-15 12:32

    /opt也是用于存储一些软件,像chrome、adobe reader等,所以最好不要随便删

  18. pl_014 于 2011-09-15 20:33:49发表:

    [i=s] 本帖最后由 pl_014 于 2011-9-15 20:36 编辑 [/i]

    回楼主,这个问题得从两个方面去说
    第一,硬盘空间不够用,可以把像/usr/share移到另一个分区上,然后修改/etc/fstab来把这个分区挂载到/usr/share,也可以把里面的部分内容转移到其它的分区上,然后做个软链接,从这一点上看,几乎所有的目录都具有这种性质。这里需要注意的是,转移到的分区的文件系统必须能够存储uid、gid和权限信息,即必须上unix或类unix的文件系统。
    第二,如果你编译过一些软件的话,你可能会发现一些编译好的软件其实可以放到许多的目录下,甚至有些都可以不执行make install而直接运行编译好的程序,这是因为大部分的应用软件都不需要装到固定的目录下,你要是学过编程的话,尤其是C语言,对这点应该理解得更深刻
    另外,这种性质不叫可移植,说可移动更贴切点。移植指的是在一个操作系统上写出来的一个程序经过一些修改(或可以不经修改),在另一个操作系统上进行编译并且与原程序几乎相同或相似,或者说一个操作系统在一种硬件平台上写完后经过修改或重写能够在另一种硬件平台上编译并使用,且功能及操作方式与原作没有太大的差异;而可移植一般用于形容某一编程语言或某些库可以只写一次代码而在大多数的操作系统或硬件平台上编译,比如底层的有C语言等,用于应用软件的有java、qt、gtk等

  19. dchwlinux 于 2011-09-15 14:39:20发表:

    引用:
    可以新建分区,用mount挂载~~~~~~~~`
    gogo11 发表于 2011-9-15 00:05

    改分区太麻烦了,还可能有危险(尽管gparted很好用)。移植目录多简单。

  20. my1114 于 2011-09-15 12:32:15发表:

    我也遇到过类似的问题,用的系统为opensuse 11.2,采取的方法是删除/opt中的内容。

  21. Growth兆 于 2011-09-15 09:26:32发表:

    感谢dchwlinux的分享,本贴加入到论坛顶置的Linux应用贴中

  22. bitey 于 2011-09-15 08:41:23发表:

    严重学习了~~

  23. sun82110 于 2011-09-15 00:06:20发表:

    围观~

  24. gogo11 于 2011-09-15 00:05:45发表:

    可以新建分区,用mount挂载~~~~~~~~`