linux编译的程序如何转移到别的linux系统 (满意追加50)

我有一个网关是linux系统的。可是上面没有编译环境我想在上面安装一个tcpdump怎么弄。
主要是网关上面没有编译环境。。gcc和make都没用。
网关系统信息:Linux version 2.6.24.5 (gcc version 4.2.3 (Ubuntu 4.2.3-2ubuntu7)) #49 SMP Wed Jan 26 15:05:06 CST 2011
网关cpu信息:
processor : 0
vendor_id : GenuineIntel
cpu family : 6
model : 14
model name : Intel(R) Celeron(R) M CPU 420 @ 1.60GHz
stepping : 8
cpu MHz : 1600.118
cache size : 1024 KB
fdiv_bug : no
hlt_bug : no
f00f_bug : no
coma_bug : no
fpu : yes
fpu_exception : yes
cpuid level : 10
wp : yes
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat clflush dts acpi mmx fxsr sse sse2 ss tm pbe nx constant_tsc up arch_perfmon bts pni monitor tm2 xtpr
bogomips : 3203.50
clflush size : 64

我该怎么样才能编译一个可以用的tcpdump上去。环境该怎么搭建。

1、使用rpm包进行安装;
优点是不需要另外的编译机,缺点是要安装其他的依赖包。
2、使用源码编译生成安装包
优点是在目标机器可以直接使用编译结果,缺点是需要额外的机器
找一个内核与发布版本都与你的网关Linux相同的机器,上传你要编译的源码,一般官网提供的是xxx.tar.gz。按照下面步骤操作:
a、解压;
b、执行configure;
c、make;
d、make install
e、把install目录中的文件打包到目标机器解压;
f、在bin或者sbin等目录创建软链接到目标机器安装目录的bin目录下的二进制文件;

下面的例子是把openssl安装在opt/openssl目录下:
tar -zxf openssl-0.9.8y.tar.gz
cd openssl-0.9.8y/
./config shared threads --prefix=/opt/openssl
make
make install
执行完上面的命令,就会把openssl安装在编译机的/opt/openssl目录下,接下来只需要把/opt/openssl里面的内容拷贝到你的网关Linux机器即可,记得要在添加/opt/openssl/bin到环境变量PATH里面或者在/usr/bin目录创建软链接到/opt/openssl/bin下的二进制文件。追问

没有rpm。。。

内核和发布版本应该可以找的到。但是网关的系统肯定是修改过的。。。
另外,那支持库怎么办。我不知道服务器上面会不会缺少库。
软件会对内核和版本有需求么?

追答

不一致影响也不大。如果缺少运行库,configure和make的时候会有提示的。
你用的是什么发布版,一般没有rpm也会有其他的包啊。

追问

那个应该不是发布版本,网关是买来的。应该是定制的系统。所以我在想,支持库编译好能不能也上传?
貌似是用busybox定制的。

追答

定制的也不影响你是用源代码生成,所有需要的库在编译机上编译的时候都会提示你的

温馨提示:内容为网友见解,仅供参考
第1个回答  2014-05-28
你上面提供的信息可以看出:你的网关应该是一台装了 Linux 的PC机,现在你要做的就是编译一个c语言开发的系统放上去运行。只说了你的 Linux 内核是 2.6.24.5 版的,并没有说整个系统所用的是哪种发行版的Linux,Debian系列(Debian、Ubuntu、Mint等)与红帽子系列(RHEL、CentOS、Federo、Oracle、红旗等)的软件安装命令是完全不同的,如果是Debian系列的,你就可以用 apt-get install build-essential 命令来安装(需要 root 身份和连了 Internet 的环境),如果是红帽子系列则需要你自己从网上搜索下载各个软件包下载到自己的电脑(网关)中来再安装。
实际上,所谓“编译环境”主要就是 make、gcc、glibc 三个包,你可以从网上下载这三个包的源程序下来到自己的电脑(已经有编译环境的、不是那个网关)里来自己编译安装到自己另外指定的目录里,然后再整个目录复制到网关恰当的目录上去。不过,这样做需要注意make、gcc、glibc 三个包的版本配套问题,版本搭配不正确容易产生各种问题。这种做法你需要学习掌握 CLFS 相关知识。
当然,你还可以考虑根本就不理网关上没有编译系统的问题,在自己的已经有编译系统的电脑上编译 tcpdump 源代码生成适合于网关上安装的软件包来使用。把源代码编译生成某种软件包的方法应该在 tcpdump 源代码的根目录下有说明的,你查看一下该目录下名为 README、INSTALL的文件或子目录,里面应该有教你安装的方法。追问

gcc version 4.2.3 (Ubuntu 4.2.3-2ubuntu7)
这个Ubuntu是什么情况。。

追答

这是说明你的网关已经安装了 Ubuntu 团队优化过的 gcc 4.2.3,作为一个编译环境,光有它是不够了,至少还得有 make 、glibc 这些包。

追问

可是gcc命令怎么没用?那怎么办?上传上去么

追答

如果你的网关装的是Debian系列的Linux,你就可以用 apt-get install build-essential 命令来安装编译环境。

追问

# apt-get

-sh: apt-get: not found

追答

这说明你的网关运行的不是 Debian 系列的 Linux,你需要采用红帽子系列的的安装方法来安装了。前面已经说过该方法。

追问

可惜里面没见到编译器啊。。那个应该是用busybox 定制的

追答

另外找一台电脑来交叉编译吧

第2个回答  2014-05-28
tcpdump就是个纯软件的东西,不涉及硬件,而且你这个事X86的,直接去ubuntu的官网上下载个.deb包,然后放到服务器上,直接dpkg -i 安装上就可以了追问

啊?=。=那支持库那些呢。怎么上传

追答

下个.deb的包就可以用

追问

没有dpkg命令。

追答

PC板的Ubuntu上在/usr/sbin下有tcpdump。
ldd /usr/sbin/tcpdump查看了下,大体依赖
linux-gate.so.1 => (0xb7762000)
libcrypto.so.1.0.0 => /lib/i386-linux-gnu/libcrypto.so.1.0.0 (0xb740e000)
libpcap.so.0.8 => /usr/lib/i386-linux-gnu/libpcap.so.0.8 (0xb73d7000)
libc.so.6 => /lib/i386-linux-gnu/libc.so.6 (0xb722d000)
libdl.so.2 => /lib/i386-linux-gnu/libdl.so.2 (0xb7228000)
libz.so.1 => /lib/i386-linux-gnu/libz.so.1 (0xb7212000)
/lib/ld-linux.so.2 (0xb7763000)
要是你的服务器上有这些包的话,把Pc上的tcpdump考到服务器上试试看,要不就从源码编译下看看,虽说是Ubuntu修改过的gcc,应该差不多能用

追问

我试试看可不可以

第3个回答  2014-05-28
这个网关可以安装软件不,不可以很麻烦的。真想了解,去看下LFS资料追问

不可以,apt-get rpm 那些命令都没用

追答

安装软件的方法很多的,最靠谱,你可以自己编译。楼下说得很详细了,缺什么安装什么

相似回答