LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 982|回复: 7

如何将已编译好的各个文件打成包让其他用户直接在其他机器上安装而无须重新编译?

[复制链接]
发表于 2009-1-20 15:30:26 | 显示全部楼层 |阅读模式
已编译好的各个文件并不在同一个目录下,我在其他机器上也得安装到不同目录下,我想通过tar

方式,让其解压到不同目录,具体怎么做,请高手指点下,不胜感激,最近急用.......
发表于 2009-1-20 19:39:57 | 显示全部楼层
tar 比较原始,要知道 tarball 内的原整路径才行,举例现有一个名叫 test.tar.gz 的 tarball

首先要知道内里有何东西,那麽可以用以下命令观之:

tar tf test.tar.gz|less

现在新版的 tar 已能自动辨认 bz2 或者 gz,所以无需用 tar ztf 或 tar jtf 了

假如 test.tar.gz 有如下内容:

aaa/bbb/1
aaa/bbb/2
aaa/bbb/c
aaa/bbb/c/d

要解压到不同的路径就要用 -C 选项,又假设文件目的如下:

aaa/bbb/1  --> /xxx/yyy/A
aaa/bbb/2  --> /xxx/yyy/B
aaa/bbb/c  --> /xxx/yyy/C
aaa/bbb/c/d

可以用:

tar xf test.tar.gz -C /xxx/yyy/A aaa/bbb/1
tar xf test.tar.gz -C /xxx/yyy/B aaa/bbb/2
tar xf test.tar.gz -C /xxx/yyy/C aaa/bbb/c

解压是会将 tarball 同的完整还原的,所以 aaa/bbb 会在目的路径之下,而最後一种情况就是 c 以下的全部解压

Hope this help!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-1-20 22:18:37 | 显示全部楼层
我的意思是,一个源码经过 make && make install后,它会把生成的相应文件安装到 /var/etc、/usr/bin等目录下,由于我要在其它机子也要用到这个源码,就不想再编译,想直接用编译好的文件,打成一个包,然后将这个包复制到其它机子上,最后 tar jxvf *.tar.bz2 -C \,由于源文件编译和安装后到的目录比较多,有没有什么简单的方法将编译好的文件打成一个包?谢谢!
回复 支持 反对

使用道具 举报

发表于 2009-1-20 22:24:11 | 显示全部楼层
做deb包啊
回复 支持 反对

使用道具 举报

发表于 2009-1-20 23:13:37 | 显示全部楼层

  1. make install DEST=/ur_dir

  2. cd /ur_dir

  3. tar cjf ur_package.tbz *

  4. 解压时:
  5. tar xjf ur_package.tbz -C /
复制代码
回复 支持 反对

使用道具 举报

发表于 2009-1-20 23:55:31 | 显示全部楼层
Post by dddk;1940169
我的意思是,一个源码经过 make && make install后,它会把生成的相应文件安装到 /var/etc、/usr/bin等目录下,由于我要在其它机子也要用到这个源码,就不想再编译,想直接用编译好的文件,打成一个包,然后将这个包复制到其它机子上,最后 tar jxvf *.tar.bz2 -C \,由于源文件编译和安装后到的目录比较多,有没有什么简单的方法将编译好的文件打成一个包?谢谢!


这种情况可借助包管理系统或工具,如正规 Debian 方式做 deb 包,或者用 checkinstall 做 deb 包或 tarball (tgz),又或者像 LFS 的 paco 管理安装後做 tarball (tar.gz)
回复 支持 反对

使用道具 举报

发表于 2009-1-21 08:42:10 | 显示全部楼层
Post by dddk;1940169
我的意思是,一个源码经过 make && make install后,它会把生成的相应文件安装到 /var/etc、/usr/bin等目录下,由于我要在其它机子也要用到这个源码,就不想再编译,想直接用编译好的文件,打成一个包,然后将这个包复制到其它机子上,最后 tar jxvf *.tar.bz2 -C \,由于源文件编译和安装后到的目录比较多,有没有什么简单的方法将编译好的文件打成一个包?谢谢!


checkinstall 啊。搜索一下用法。
回复 支持 反对

使用道具 举报

发表于 2009-1-21 14:22:17 | 显示全部楼层
用checkinstall是不错的选择,./configure  make checkinstall可以生成deb包,自己可以加入有关deb包的一些信息。生成的deb包可以用dpkg -i  dpkg -r 来安装和删除。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表