哲思官方群认证群组  - 讨论区

标题:[zeuux-universe] 可执行文件,安装后的文件,二进制包 区别

2012年01月02日 星期一 10:35

项超 cloudaice在163.com
星期一 一月 2 10:35:15 CST 2012

在安装软件的时候,经常会碰到这样的问题,有源码包,二进制包,rpm包等等各种,有时候迷迷糊糊似乎是弄懂了一样,但是碰到另外的,就又迷糊了。怀疑自己理解的正确性了。看看网上的一些说法更是觉得晕了。
首先有一点,我是很清楚的。举一个例子就是,我在linux系统下,写一个“Hello Word”的c程序。然后用GCC编译,就可以生成可执行的文件了。我只要一运行这个可执行的文件。就算我这个软件已经完成了。我本来觉得就是这么简单的,至少对于这个足够小的程序来说。但是现在又发现不对劲了。我们平时所说的“安装”又是怎么一回事呢?安装完之后的可以用的程序,和我编译完成后的可执行的文件有什么区别呢?
另外还有什么二进制包,rpm,等等各种包,越发分不清楚了。之前也看过一些介绍这些的文章,因为也只是粗略的明白了点,但是碰到更多的类似的东西又糊涂了,怀疑自己了。还有那个编译完后的可执行文件不是二进制包吗?我一直以为编译完之后的可执行文件就是二进制文件。哎……好乱啊……

--

项超
哈尔滨工业大学
计算机科学与技术系
邮箱:cloudaice在163.com
gmail邮箱:cloudaice在gmail.com
QQ:1214696737
-------------- 下一部分 --------------
一个HTML附件被移除...
URL: <http://www.zeuux.org/pipermail/zeuux-universe/attachments/20120102/6b75704a/attachment.html>

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-universe]

2012年01月02日 星期一 10:42

Alex Zhang cheungtifan在gmail.com
星期一 一月 2 10:42:53 CST 2012

Source Package: .tar.gz
Binary Distribution: .deb, .rpm, .txz (slackware)
.src.rpm: source package

C 文件 + autotools 生成的 configure 等脚本 = source package
安装: 将二进制放到正确的地方的步骤,例如将 foo 放到 /usr/bin, 将 foo.1 到 /usr/man/man1 里

去看看鸟哥的 Linux 私房菜,以及 Ubuntu 中文论坛,哲思似乎不是特别适合这种讨论。
另外,有个 mailing list 叫做 learning-linux-c-cpp 不错,在
http://learn.akae.cn/media/由于我在国内不方便上 Google Groups... 你想办法上去好了

--
Alex Difan Zhang (@tifan)
http://difan.org.cn/ | http://blog.osqdu.org/
Graduate School, Towson University
Towson MD 21204
Tel: 434-532-1042


2012/1/2 项超 <cloudaice at 163.com>

>
>
> 在安装软件的时候,经常会碰到这样的问题,有源码包,二进制包,rpm包等等各种,有时候迷迷糊糊似乎是弄懂了一样,但是碰到另外的,就又迷糊了。怀疑自己理解的正确性了。看看网上的一些说法更是觉得晕了。
> 首先有一点,我是很清楚的。举一个例子就是,我在linux系统下,写一个“Hello
> Word”的c程序。然后用GCC编译,就可以生成可执行的文件了。我只要一运行这个可执行的文件。就算我这个软件已经完成了。我本来觉得就是这么简单的,至少对于这个足够小的程序来说。但是现在又发现不对劲了。我们平时所说的“安装”又是怎么一回事呢?安装完之后的可以用的程序,和我编译完成后的可执行的文件有什么区别呢?
>
> 另外还有什么二进制包,rpm,等等各种包,越发分不清楚了。之前也看过一些介绍这些的文章,因为也只是粗略的明白了点,但是碰到更多的类似的东西又糊涂了,怀疑自己了。还有那个编译完后的可执行文件不是二进制包吗?我一直以为编译完之后的可执行文件就是二进制文件。哎……好乱啊……
> --
> 项超
> 哈尔滨工业大学
> 计算机科学与技术系
> 邮箱:cloudaice at 163.com
> gmail邮箱:cloudaice at gmail.com
> QQ:1214696737
>
>
>
>
> _______________________________________________
> zeuux-universe mailing list
> zeuux-universe at zeuux.org
> http://www.zeuux.org/mailman/listinfo/zeuux-universe
>
> ZEUUX Project - Free Software, Free Society!
> http://www.zeuux.org
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.zeuux.org/pipermail/zeuux-universe/attachments/20120102/766413bd/attachment.html>

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-universe]

2012年01月02日 星期一 10:54

项超 cloudaice在163.com
星期一 一月 2 10:54:58 CST 2012

谢谢Alex Zhang

在 2012-01-02 10:43:48,"Alex Zhang" <cheungtifan在gmail.com> 写道:
Source Package: .tar.gz
Binary Distribution: .deb, .rpm, .txz (slackware)
.src.rpm: source package


C 文件 + autotools 生成的 configure 等脚本 = source package
安装: 将二进制放到正确的地方的步骤,例如将 foo 放到 /usr/bin, 将 foo.1 到 /usr/man/man1 里


去看看鸟哥的 Linux 私房菜,以及 Ubuntu 中文论坛,哲思似乎不是特别适合这种讨论。
另外,有个 mailing list 叫做 learning-linux-c-cpp 不错,在 http://learn.akae.cn/media/ 由于我在国内不方便上 Google Groups... 你想办法上去好了

--
Alex Difan Zhang (@tifan)
http://difan.org.cn/ | http://blog.osqdu.org/
Graduate School, Towson University
Towson MD 21204
Tel: 434-532-1042



2012/1/2 项超 <cloudaice在163.com>


在安装软件的时候,经常会碰到这样的问题,有源码包,二进制包,rpm包等等各种,有时候迷迷糊糊似乎是弄懂了一样,但是碰到另外的,就又迷糊了。怀疑自己理解的正确性了。看看网上的一些说法更是觉得晕了。
首先有一点,我是很清楚的。举一个例子就是,我在linux系统下,写一个“Hello Word”的c程序。然后用GCC编译,就可以生成可执行的文件了。我只要一运行这个可执行的文件。就算我这个软件已经完成了。我本来觉得就是这么简单的,至少对于这个足够小的程序来说。但是现在又发现不对劲了。我们平时所说的“安装”又是怎么一回事呢?安装完之后的可以用的程序,和我编译完成后的可执行的文件有什么区别呢?
另外还有什么二进制包,rpm,等等各种包,越发分不清楚了。之前也看过一些介绍这些的文章,因为也只是粗略的明白了点,但是碰到更多的类似的东西又糊涂了,怀疑自己了。还有那个编译完后的可执行文件不是二进制包吗?我一直以为编译完之后的可执行文件就是二进制文件。哎……好乱啊……

--

项超
哈尔滨工业大学
计算机科学与技术系
邮箱:cloudaice在163.com
gmail邮箱:cloudaice在gmail.com
QQ:1214696737





_______________________________________________
zeuux-universe mailing list
zeuux-universe在zeuux.org
http://www.zeuux.org/mailman/listinfo/zeuux-universe

ZEUUX Project - Free Software, Free Society!
http://www.zeuux.org

-------------- 下一部分 --------------
一个HTML附件被移除...
URL: <http://www.zeuux.org/pipermail/zeuux-universe/attachments/20120102/593d2919/attachment-0001.html>

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-universe]

2012年01月05日 星期四 08:49

pansz pan.shizhu在gmail.com
星期四 一月 5 08:49:30 CST 2012

安装的原因是因为依赖。

例如你的软件会使用一些动态库一般会放在某个 /lib 下面,同时可能会读取一些配置文件 可能放在某个 /etc 或者 HOME
下面,同时还有数据放到某个 share 下面。

所谓安装,就是把主程序复制到某个 /bin 下面,库放到某个 /lib 下面,配置文件放到该放的位置,数据放到某个 /share
下面。OK, Linux 下的安装就等于复制文件。。。

为什么要打包呢?有两点,一个当然是你可以指定把不同的文件放到不同的目录下去。二个是你会依赖不同的库,而这个库在不同的 Linux
发行版中叫不同的名字,之所以要打 rpm 跟 deb,是因为你依赖的库在 deb 系统跟 rpm
系统中往往叫不同的名字,你为了让系统自己知道怎么去找那些库,就得按照对应系统的命名规则来。

2012/1/2 项超 <cloudaice在163.com>:
>
> 在安装软件的时候,经常会碰到这样的问题,有源码包,二进制包,rpm包等等各种,有时候迷迷糊糊似乎是弄懂了一样,但是碰到另外的,就又迷糊了。怀疑自己理解的正确性了。看看网上的一些说法更是觉得晕了。
> 首先有一点,我是很清楚的。举一个例子就是,我在linux系统下,写一个“Hello
> Word”的c程序。然后用GCC编译,就可以生成可执行的文件了。我只要一运行这个可执行的文件。就算我这个软件已经完成了。我本来觉得就是这么简单的,至少对于这个足够小的程序来说。但是现在又发现不对劲了。我们平时所说的“安装”又是怎么一回事呢?安装完之后的可以用的程序,和我编译完成后的可执行的文件有什么区别呢?
> 另外还有什么二进制包,rpm,等等各种包,越发分不清楚了。之前也看过一些介绍这些的文章,因为也只是粗略的明白了点,但是碰到更多的类似的东西又糊涂了,怀疑自己了。还有那个编译完后的可执行文件不是二进制包吗?我一直以为编译完之后的可执行文件就是二进制文件。哎……好乱啊……

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-universe]

2012年01月06日 星期五 12:27

项超 cloudaice在163.com
星期五 一月 6 12:27:06 CST 2012

那编译后的可执行文件就是二进制文件吗?
在 2012-01-05 08:49:40,pansz <pan.shizhu在gmail.com> 写道:
>安装的原因是因为依赖。
>
>例如你的软件会使用一些动态库一般会放在某个 /lib 下面,同时可能会读取一些配置文件 可能放在某个 /etc 或者 HOME
>下面,同时还有数据放到某个 share 下面。
>
>所谓安装,就是把主程序复制到某个 /bin 下面,库放到某个 /lib 下面,配置文件放到该放的位置,数据放到某个 /share
>下面。OK, Linux 下的安装就等于复制文件。。。
>
>为什么要打包呢?有两点,一个当然是你可以指定把不同的文件放到不同的目录下去。二个是你会依赖不同的库,而这个库在不同的 Linux
>发行版中叫不同的名字,之所以要打 rpm 跟 deb,是因为你依赖的库在 deb 系统跟 rpm
>系统中往往叫不同的名字,你为了让系统自己知道怎么去找那些库,就得按照对应系统的命名规则来。
>
>2012/1/2 项超 <cloudaice在163.com>:
>>
>> 在安装软件的时候,经常会碰到这样的问题,有源码包,二进制包,rpm包等等各种,有时候迷迷糊糊似乎是弄懂了一样,但是碰到另外的,就又迷糊了。怀疑自己理解的正确性了。看看网上的一些说法更是觉得晕了。
>> 首先有一点,我是很清楚的。举一个例子就是,我在linux系统下,写一个“Hello
>> Word”的c程序。然后用GCC编译,就可以生成可执行的文件了。我只要一运行这个可执行的文件。就算我这个软件已经完成了。我本来觉得就是这么简单的,至少对于这个足够小的程序来说。但是现在又发现不对劲了。我们平时所说的“安装”又是怎么一回事呢?安装完之后的可以用的程序,和我编译完成后的可执行的文件有什么区别呢?
>> 另外还有什么二进制包,rpm,等等各种包,越发分不清楚了。之前也看过一些介绍这些的文章,因为也只是粗略的明白了点,但是碰到更多的类似的东西又糊涂了,怀疑自己了。还有那个编译完后的可执行文件不是二进制包吗?我一直以为编译完之后的可执行文件就是二进制文件。哎……好乱啊……
>_______________________________________________
>zeuux-universe mailing list
>zeuux-universe在zeuux.org
>http://www.zeuux.org/mailman/listinfo/zeuux-universe
>
>ZEUUX Project - Free Software, Free Society!
>http://www.zeuux.org

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-universe]

2012年01月06日 星期五 12:28

Alex Zhang cheungtifan在gmail.com
星期五 一月 6 12:28:25 CST 2012

对。

On Friday, January 6, 2012, 项超 <cloudaice at 163.com> wrote:
> 那编译后的可执行文件就是二进制文件吗?
> 在 2012-01-05 08:49:40,pansz <pan.shizhu at gmail.com> 写道:
>>安装的原因是因为依赖。
>>
>>例如你的软件会使用一些动态库一般会放在某个 /lib 下面,同时可能会读取一些配置文件 可能放在某个 /etc 或者 HOME
>>下面,同时还有数据放到某个 share 下面。
>>
>>所谓安装,就是把主程序复制到某个 /bin 下面,库放到某个 /lib 下面,配置文件放到该放的位置,数据放到某个 /share
>>下面。OK, Linux 下的安装就等于复制文件。。。
>>
>>为什么要打包呢?有两点,一个当然是你可以指定把不同的文件放到不同的目录下去。二个是你会依赖不同的库,而这个库在不同的 Linux
>>发行版中叫不同的名字,之所以要打 rpm 跟 deb,是因为你依赖的库在 deb 系统跟 rpm
>>系统中往往叫不同的名字,你为了让系统自己知道怎么去找那些库,就得按照对应系统的命名规则来。
>>
>>2012/1/2 项超 <cloudaice at 163.com>:
>>>
>>>
在安装软件的时候,经常会碰到这样的问题,有源码包,二进制包,rpm包等等各种,有时候迷迷糊糊似乎是弄懂了一样,但是碰到另外的,就又迷糊了。怀疑自己理解的正确性了。看看网上的一些说法更是觉得晕了。
>>> 首先有一点,我是很清楚的。举一个例子就是,我在linux系统下,写一个“Hello
>>>
Word”的c程序。然后用GCC编译,就可以生成可执行的文件了。我只要一运行这个可执行的文件。就算我这个软件已经完成了。我本来觉得就是这么简单的,至少对于这个足够小的程序来说。但是现在又发现不对劲了。我们平时所说的“安装”又是怎么一回事呢?安装完之后的可以用的程序,和我编译完成后的可执行的文件有什么区别呢?
>>>
另外还有什么二进制包,rpm,等等各种包,越发分不清楚了。之前也看过一些介绍这些的文章,因为也只是粗略的明白了点,但是碰到更多的类似的东西又糊涂了,怀疑自己了。还有那个编译完后的可执行文件不是二进制包吗?我一直以为编译完之后的可执行文件就是二进制文件。哎……好乱啊……
>>_______________________________________________
>>zeuux-universe mailing list
>>zeuux-universe at zeuux.org
>>http://www.zeuux.org/mailman/listinfo/zeuux-universe
>>
>>ZEUUX Project - Free Software, Free Society!
>>http://www.zeuux.org
> _______________________________________________
> zeuux-universe mailing list
> zeuux-universe at zeuux.org
> http://www.zeuux.org/mailman/listinfo/zeuux-universe
>
> ZEUUX Project - Free Software, Free Society!
> http://www.zeuux.org

-- 
Sent from Gmail Mobile
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.zeuux.org/pipermail/zeuux-universe/attachments/20120106/ce2ef3fa/attachment.html>

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-universe]

2012年01月06日 星期五 16:22

项超 cloudaice在163.com
星期五 一月 6 16:22:33 CST 2012

哦,如果我理解的没有措的话,哪些可执行文件就是一些二进制0,1机器代码。

在 2012-01-06 12:28:39,"Alex Zhang" <cheungtifan在gmail.com> 写道:
对。

On Friday, January 6, 2012, 项超 <cloudaice在163.com> wrote:
> 那编译后的可执行文件就是二进制文件吗?
> 在 2012-01-05 08:49:40,pansz <pan.shizhu在gmail.com> 写道:
>>安装的原因是因为依赖。
>>
>>例如你的软件会使用一些动态库一般会放在某个 /lib 下面,同时可能会读取一些配置文件 可能放在某个 /etc 或者 HOME
>>下面,同时还有数据放到某个 share 下面。
>>
>>所谓安装,就是把主程序复制到某个 /bin 下面,库放到某个 /lib 下面,配置文件放到该放的位置,数据放到某个 /share
>>下面。OK, Linux 下的安装就等于复制文件。。。
>>
>>为什么要打包呢?有两点,一个当然是你可以指定把不同的文件放到不同的目录下去。二个是你会依赖不同的库,而这个库在不同的 Linux
>>发行版中叫不同的名字,之所以要打 rpm 跟 deb,是因为你依赖的库在 deb 系统跟 rpm
>>系统中往往叫不同的名字,你为了让系统自己知道怎么去找那些库,就得按照对应系统的命名规则来。
>>
>>2012/1/2 项超 <cloudaice在163.com>:
>>>
>>> 在安装软件的时候,经常会碰到这样的问题,有源码包,二进制包,rpm包等等各种,有时候迷迷糊糊似乎是弄懂了一样,但是碰到另外的,就又迷糊了。怀疑自己理解的正确性了。看看网上的一些说法更是觉得晕了。
>>> 首先有一点,我是很清楚的。举一个例子就是,我在linux系统下,写一个“Hello
>>> Word”的c程序。然后用GCC编译,就可以生成可执行的文件了。我只要一运行这个可执行的文件。就算我这个软件已经完成了。我本来觉得就是这么简单的,至少对于这个足够小的程序来说。但是现在又发现不对劲了。我们平时所说的“安装”又是怎么一回事呢?安装完之后的可以用的程序,和我编译完成后的可执行的文件有什么区别呢?
>>> 另外还有什么二进制包,rpm,等等各种包,越发分不清楚了。之前也看过一些介绍这些的文章,因为也只是粗略的明白了点,但是碰到更多的类似的东西又糊涂了,怀疑自己了。还有那个编译完后的可执行文件不是二进制包吗?我一直以为编译完之后的可执行文件就是二进制文件。哎……好乱啊……
>>_______________________________________________
>>zeuux-universe mailing list
>>zeuux-universe在zeuux.org
>>http://www.zeuux.org/mailman/listinfo/zeuux-universe
>>
>>ZEUUX Project - Free Software, Free Society!
>>http://www.zeuux.org
> _______________________________________________
> zeuux-universe mailing list
> zeuux-universe在zeuux.org
> http://www.zeuux.org/mailman/listinfo/zeuux-universe
>
> ZEUUX Project - Free Software, Free Society!
> http://www.zeuux.org

--
Sent from Gmail Mobile
-------------- 下一部分 --------------
一个HTML附件被移除...
URL: <http://www.zeuux.org/pipermail/zeuux-universe/attachments/20120106/2d43b083/attachment-0001.html>

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-universe]

2012年01月06日 星期五 16:42

Alex Zhang cheungtifan在gmail.com
星期五 一月 6 16:42:51 CST 2012

不完全是。
exec()也可以调用一些脚本,比如

#!/usr/bin/env python
print "Hello World"

可以执行,但是不是二进制。其实这个有点复杂了,你可以file xxx看一下来判断,一般的“可执行二进制”会说
/bin/sh: Mach-O universal binary with 2 architectures
/bin/sh (for architecture x86_64):	Mach-O 64-bit executable x86_64
/bin/sh (for architecture i386):	Mach-O executable i386
(Mac上的二进制)
/sbin/sh:       ELF 32-bit LSB executable 80386 Version 1 [FPU],
dynamically linked, not stripped, no debugging information available
(32位二进制)
/usr/php/5.3/sbin/php-fpm:      ELF 64-bit LSB executable AMD64
Version 1 [SSE2 SSE CMOV FPU], dynamically linked, stripped
(64位二进制)

在UNIX里,可执行!=二进制

当然,二进制!=可执行,只不过我们一般说可执行二进制为二进制罢了
--
Alex Difan Zhang (@tifan)
http://difan.org.cn/ | http://blog.osqdu.org/
Graduate School, Towson University
Towson MD 21204
Tel: 434-532-1042



2012/1/6 项超 <cloudaice at 163.com>:
> 哦,如果我理解的没有措的话,哪些可执行文件就是一些二进制0,1机器代码。
>
> 在 2012-01-06 12:28:39,"Alex Zhang" <cheungtifan at gmail.com> 写道:
>
> 对。
>
> On Friday, January 6, 2012, 项超 <cloudaice at 163.com> wrote:
>> 那编译后的可执行文件就是二进制文件吗?
>> 在 2012-01-05 08:49:40,pansz <pan.shizhu at gmail.com> 写道:
>>>安装的原因是因为依赖。
>>>
>>>例如你的软件会使用一些动态库一般会放在某个 /lib 下面,同时可能会读取一些配置文件 可能放在某个 /etc 或者 HOME
>>>下面,同时还有数据放到某个 share 下面。
>>>
>>>所谓安装,就是把主程序复制到某个 /bin 下面,库放到某个 /lib 下面,配置文件放到该放的位置,数据放到某个 /share
>>>下面。OK, Linux 下的安装就等于复制文件。。。
>>>
>>>为什么要打包呢?有两点,一个当然是你可以指定把不同的文件放到不同的目录下去。二个是你会依赖不同的库,而这个库在不同的 Linux
>>>发行版中叫不同的名字,之所以要打 rpm 跟 deb,是因为你依赖的库在 deb 系统跟 rpm
>>>系统中往往叫不同的名字,你为了让系统自己知道怎么去找那些库,就得按照对应系统的命名规则来。
>>>
>>>2012/1/2 项超 <cloudaice at 163.com>:
>>>>
>>>>
>>>> 在安装软件的时候,经常会碰到这样的问题,有源码包,二进制包,rpm包等等各种,有时候迷迷糊糊似乎是弄懂了一样,但是碰到另外的,就又迷糊了。怀疑自己理解的正确性了。看看网上的一些说法更是觉得晕了。
>>>> 首先有一点,我是很清楚的。举一个例子就是,我在linux系统下,写一个“Hello
>>>>
>>>> Word”的c程序。然后用GCC编译,就可以生成可执行的文件了。我只要一运行这个可执行的文件。就算我这个软件已经完成了。我本来觉得就是这么简单的,至少对于这个足够小的程序来说。但是现在又发现不对劲了。我们平时所说的“安装”又是怎么一回事呢?安装完之后的可以用的程序,和我编译完成后的可执行的文件有什么区别呢?
>>>>
>>>> 另外还有什么二进制包,rpm,等等各种包,越发分不清楚了。之前也看过一些介绍这些的文章,因为也只是粗略的明白了点,但是碰到更多的类似的东西又糊涂了,怀疑自己了。还有那个编译完后的可执行文件不是二进制包吗?我一直以为编译完之后的可执行文件就是二进制文件。哎……好乱啊……
>>>_______________________________________________
>>>zeuux-universe mailing list
>>>zeuux-universe at zeuux.org
>>>http://www.zeuux.org/mailman/listinfo/zeuux-universe
>>>
>>>ZEUUX Project - Free Software, Free Society!
>>>http://www.zeuux.org
>> _______________________________________________
>> zeuux-universe mailing list
>> zeuux-universe at zeuux.org
>> http://www.zeuux.org/mailman/listinfo/zeuux-universe
>>
>> ZEUUX Project - Free Software, Free Society!
>> http://www.zeuux.org
>
> --
> Sent from Gmail Mobile
>
>
>
>
> _______________________________________________
> zeuux-universe mailing list
> zeuux-universe at zeuux.org
> http://www.zeuux.org/mailman/listinfo/zeuux-universe
>
> ZEUUX Project - Free Software, Free Society!
> http://www.zeuux.org

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-universe]

2012年01月07日 星期六 21:39

项超 cloudaice在163.com
星期六 一月 7 21:39:03 CST 2012

其实对于python 的脚本文件来说,不应该是可执行文件,因为是一种解释型语言,它只是在运行的时候通过解释器编程字节码,然后再在虚拟机上面运行,最终也是要变成二进制格式的代码送给CPU执行,可能过程还会更加复杂,只是这样子粗略的理解。但是绝大部分的安装在计算机上的文件都是可执行的二进制文件吧,至少在运行效率方面考虑也应该是这样子吧。关于一些python,java语言写的软件,发布安装在计算机中也是编译完成后的二进制文件,还是只是脚本文件?
在 2012-01-06 16:43:48,"Alex Zhang" <cheungtifan在gmail.com> 写道:
>不完全是。
>exec()也可以调用一些脚本,比如
>
>#!/usr/bin/env python
>print "Hello World"
>
>可以执行,但是不是二进制。其实这个有点复杂了,你可以file xxx看一下来判断,一般的“可执行二进制”会说
>/bin/sh: Mach-O universal binary with 2 architectures
>/bin/sh (for architecture x86_64):	Mach-O 64-bit executable x86_64
>/bin/sh (for architecture i386):	Mach-O executable i386
>(Mac上的二进制)
>/sbin/sh:       ELF 32-bit LSB executable 80386 Version 1 [FPU],
>dynamically linked, not stripped, no debugging information available
>(32位二进制)
>/usr/php/5.3/sbin/php-fpm:      ELF 64-bit LSB executable AMD64
>Version 1 [SSE2 SSE CMOV FPU], dynamically linked, stripped
>(64位二进制)
>
>在UNIX里,可执行!=二进制
>
>当然,二进制!=可执行,只不过我们一般说可执行二进制为二进制罢了
>--
>Alex Difan Zhang (@tifan)
>http://difan.org.cn/ | http://blog.osqdu.org/
>Graduate School, Towson University
>Towson MD 21204
>Tel: 434-532-1042
>
>
>
>2012/1/6 项超 <cloudaice在163.com>:
>> 哦,如果我理解的没有措的话,哪些可执行文件就是一些二进制0,1机器代码。
>>
>> 在 2012-01-06 12:28:39,"Alex Zhang" <cheungtifan在gmail.com> 写道:
>>
>> 对。
>>
>> On Friday, January 6, 2012, 项超 <cloudaice在163.com> wrote:
>>> 那编译后的可执行文件就是二进制文件吗?
>>> 在 2012-01-05 08:49:40,pansz <pan.shizhu在gmail.com> 写道:
>>>>安装的原因是因为依赖。
>>>>
>>>>例如你的软件会使用一些动态库一般会放在某个 /lib 下面,同时可能会读取一些配置文件 可能放在某个 /etc 或者 HOME
>>>>下面,同时还有数据放到某个 share 下面。
>>>>
>>>>所谓安装,就是把主程序复制到某个 /bin 下面,库放到某个 /lib 下面,配置文件放到该放的位置,数据放到某个 /share
>>>>下面。OK, Linux 下的安装就等于复制文件。。。
>>>>
>>>>为什么要打包呢?有两点,一个当然是你可以指定把不同的文件放到不同的目录下去。二个是你会依赖不同的库,而这个库在不同的 Linux
>>>>发行版中叫不同的名字,之所以要打 rpm 跟 deb,是因为你依赖的库在 deb 系统跟 rpm
>>>>系统中往往叫不同的名字,你为了让系统自己知道怎么去找那些库,就得按照对应系统的命名规则来。
>>>>
>>>>2012/1/2 项超 <cloudaice在163.com>:
>>>>>
>>>>>
>>>>> 在安装软件的时候,经常会碰到这样的问题,有源码包,二进制包,rpm包等等各种,有时候迷迷糊糊似乎是弄懂了一样,但是碰到另外的,就又迷糊了。怀疑自己理解的正确性了。看看网上的一些说法更是觉得晕了。
>>>>> 首先有一点,我是很清楚的。举一个例子就是,我在linux系统下,写一个“Hello
>>>>>
>>>>> Word”的c程序。然后用GCC编译,就可以生成可执行的文件了。我只要一运行这个可执行的文件。就算我这个软件已经完成了。我本来觉得就是这么简单的,至少对于这个足够小的程序来说。但是现在又发现不对劲了。我们平时所说的“安装”又是怎么一回事呢?安装完之后的可以用的程序,和我编译完成后的可执行的文件有什么区别呢?
>>>>>
>>>>> 另外还有什么二进制包,rpm,等等各种包,越发分不清楚了。之前也看过一些介绍这些的文章,因为也只是粗略的明白了点,但是碰到更多的类似的东西又糊涂了,怀疑自己了。还有那个编译完后的可执行文件不是二进制包吗?我一直以为编译完之后的可执行文件就是二进制文件。哎……好乱啊……
>>>>_______________________________________________
>>>>zeuux-universe mailing list
>>>>zeuux-universe在zeuux.org
>>>>http://www.zeuux.org/mailman/listinfo/zeuux-universe
>>>>
>>>>ZEUUX Project - Free Software, Free Society!
>>>>http://www.zeuux.org
>>> _______________________________________________
>>> zeuux-universe mailing list
>>> zeuux-universe在zeuux.org
>>> http://www.zeuux.org/mailman/listinfo/zeuux-universe
>>>
>>> ZEUUX Project - Free Software, Free Society!
>>> http://www.zeuux.org
>>
>> --
>> Sent from Gmail Mobile
>>
>>
>>
>>
>> _______________________________________________
>> zeuux-universe mailing list
>> zeuux-universe在zeuux.org
>> http://www.zeuux.org/mailman/listinfo/zeuux-universe
>>
>> ZEUUX Project - Free Software, Free Society!
>> http://www.zeuux.org
>_______________________________________________
>zeuux-universe mailing list
>zeuux-universe在zeuux.org
>http://www.zeuux.org/mailman/listinfo/zeuux-universe
>
>ZEUUX Project - Free Software, Free Society!
>http://www.zeuux.org

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-universe]

2012年01月08日 星期日 08:00

julyclyde julyclyde在gmail.com
星期日 一月 8 08:00:49 CST 2012

带#!的脚本可以运行,那是操作系统的功能,不是什么应该不应该的问题,而是既成事实

发自我的 iPad

在 2012-1-7,21:39,项超 <cloudaice在163.com> 写道:

> 其实对于python 的脚本文件来说,不应该是可执行文件,因为是一种解释型语言,它只是在运行的时候通过解释器编程字节码,然后再在虚拟机上面运行,最终也是要变成二进制格式的代码送给CPU执行,可能过程还会更加复杂,只是这样子粗略的理解。但是绝大部分的安装在计算机上的文件都是可执行的二进制文件吧,至少在运行效率方面考虑也应该是这样子吧。关于一些python,java语言写的软件,发布安装在计算机中也是编译完成后的二进制文件,还是只是脚本文件?
> 在 2012-01-06 16:43:48,"Alex Zhang" <cheungtifan在gmail.com> 写道:
>> 不完全是。
>> exec()也可以调用一些脚本,比如
>> 
>> #!/usr/bin/env python
>> print "Hello World"
>> 
>> 可以执行,但是不是二进制。其实这个有点复杂了,你可以file xxx看一下来判断,一般的“可执行二进制”会说
>> /bin/sh: Mach-O universal binary with 2 architectures
>> /bin/sh (for architecture x86_64):    Mach-O 64-bit executable x86_64
>> /bin/sh (for architecture i386):    Mach-O executable i386
>> (Mac上的二进制)
>> /sbin/sh:       ELF 32-bit LSB executable 80386 Version 1 [FPU],
>> dynamically linked, not stripped, no debugging information available
>> (32位二进制)
>> /usr/php/5.3/sbin/php-fpm:      ELF 64-bit LSB executable AMD64
>> Version 1 [SSE2 SSE CMOV FPU], dynamically linked, stripped
>> (64位二进制)
>> 
>> 在UNIX里,可执行!=二进制
>> 
>> 当然,二进制!=可执行,只不过我们一般说可执行二进制为二进制罢了
>> --
>> Alex Difan Zhang (@tifan)
>> http://difan.org.cn/ | http://blog.osqdu.org/
>> Graduate School, Towson University
>> Towson MD 21204
>> Tel: 434-532-1042
>> 
>> 
>> 
>> 2012/1/6 项超 <cloudaice在163.com>:
>>> 哦,如果我理解的没有措的话,哪些可执行文件就是一些二进制0,1机器代码。
>>> 
>>> 在 2012-01-06 12:28:39,"Alex Zhang" <cheungtifan在gmail.com> 写道:
>>> 
>>> 对。
>>> 
>>> On Friday, January 6, 2012, 项超 <cloudaice在163.com> wrote:
>>>> 那编译后的可执行文件就是二进制文件吗?
>>>> 在 2012-01-05 08:49:40,pansz <pan.shizhu在gmail.com> 写道:
>>>>> 安装的原因是因为依赖。
>>>>> 
>>>>> 例如你的软件会使用一些动态库一般会放在某个 /lib 下面,同时可能会读取一些配置文件 可能放在某个 /etc 或者 HOME
>>>>> 下面,同时还有数据放到某个 share 下面。
>>>>> 
>>>>> 所谓安装,就是把主程序复制到某个 /bin 下面,库放到某个 /lib 下面,配置文件放到该放的位置,数据放到某个 /share
>>>>> 下面。OK, Linux 下的安装就等于复制文件。。。
>>>>> 
>>>>> 为什么要打包呢?有两点,一个当然是你可以指定把不同的文件放到不同的目录下去。二个是你会依赖不同的库,而这个库在不同的 Linux
>>>>> 发行版中叫不同的名字,之所以要打 rpm 跟 deb,是因为你依赖的库在 deb 系统跟 rpm
>>>>> 系统中往往叫不同的名字,你为了让系统自己知道怎么去找那些库,就得按照对应系统的命名规则来。
>>>>> 
>>>>> 2012/1/2 项超 <cloudaice在163.com>:
>>>>>> 
>>>>>> 
>>>>>> 在安装软件的时候,经常会碰到这样的问题,有源码包,二进制包,rpm包等等各种,有时候迷迷糊糊似乎是弄懂了一样,但是碰到另外的,就又迷糊了。怀疑自己理解的正确性了。看看网上的一些说法更是觉得晕了。
>>>>>> 首先有一点,我是很清楚的。举一个例子就是,我在linux系统下,写一个“Hello
>>>>>> 
>>>>>> Word”的c程序。然后用GCC编译,就可以生成可执行的文件了。我只要一运行这个可执行的文件。就算我这个软件已经完成了。我本来觉得就是这么简单的,至少对于这个足够小的程序来说。但是现在又发现不对劲了。我们平时所说的“安装”又是怎么一回事呢?安装完之后的可以用的程序,和我编译完成后的可执行的文件有什么区别呢?
>>>>>> 
>>>>>> 另外还有什么二进制包,rpm,等等各种包,越发分不清楚了。之前也看过一些介绍这些的文章,因为也只是粗略的明白了点,但是碰到更多的类似的东西又糊涂了,怀疑自己了。还有那个编译完后的可执行文件不是二进制包吗?我一直以为编译完之后的可执行文件就是二进制文件。哎……好乱啊……
>>>>> _______________________________________________
>>>>> zeuux-universe mailing list
>>>>> zeuux-universe在zeuux.org
>>>>> http://www.zeuux.org/mailman/listinfo/zeuux-universe
>>>>> 
>>>>> ZEUUX Project - Free Software, Free Society!
>>>>> http://www.zeuux.org
>>>> _______________________________________________
>>>> zeuux-universe mailing list
>>>> zeuux-universe在zeuux.org
>>>> http://www.zeuux.org/mailman/listinfo/zeuux-universe
>>>> 
>>>> ZEUUX Project - Free Software, Free Society!
>>>> http://www.zeuux.org
>>> 
>>> --
>>> Sent from Gmail Mobile
>>> 
>>> 
>>> 
>>> 
>>> _______________________________________________
>>> zeuux-universe mailing list
>>> zeuux-universe在zeuux.org
>>> http://www.zeuux.org/mailman/listinfo/zeuux-universe
>>> 
>>> ZEUUX Project - Free Software, Free Society!
>>> http://www.zeuux.org
>> _______________________________________________
>> zeuux-universe mailing list
>> zeuux-universe在zeuux.org
>> http://www.zeuux.org/mailman/listinfo/zeuux-universe
>> 
>> ZEUUX Project - Free Software, Free Society!
>> http://www.zeuux.org
> _______________________________________________
> zeuux-universe mailing list
> zeuux-universe在zeuux.org
> http://www.zeuux.org/mailman/listinfo/zeuux-universe
> 
> ZEUUX Project - Free Software, Free Society!
> http://www.zeuux.org

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-universe]

2012年01月08日 星期日 12:22

项超 cloudaice在163.com
星期日 一月 8 12:22:11 CST 2012

这句话听的不是很明白,“是操作系统的功能”。操作洗系统也是可以说清楚的吧。并不是推给操作系统就万事大吉了吧。
在 2012-01-08 08:01:09,julyclyde <julyclyde在gmail.com> 写道:
>带#!的脚本可以运行,那是操作系统的功能,不是什么应该不应该的问题,而是既成事实
>
>发自我的 iPad
>
>在 2012-1-7,21:39,项超 <cloudaice在163.com> 写道:
>
>> 其实对于python 的脚本文件来说,不应该是可执行文件,因为是一种解释型语言,它只是在运行的时候通过解释器编程字节码,然后再在虚拟机上面运行,最终也是要变成二进制格式的代码送给CPU执行,可能过程还会更加复杂,只是这样子粗略的理解。但是绝大部分的安装在计算机上的文件都是可执行的二进制文件吧,至少在运行效率方面考虑也应该是这样子吧。关于一些python,java语言写的软件,发布安装在计算机中也是编译完成后的二进制文件,还是只是脚本文件?
>> 在 2012-01-06 16:43:48,"Alex Zhang" <cheungtifan在gmail.com> 写道:
>>> 不完全是。
>>> exec()也可以调用一些脚本,比如
>>> 
>>> #!/usr/bin/env python
>>> print "Hello World"
>>> 
>>> 可以执行,但是不是二进制。其实这个有点复杂了,你可以file xxx看一下来判断,一般的“可执行二进制”会说
>>> /bin/sh: Mach-O universal binary with 2 architectures
>>> /bin/sh (for architecture x86_64):    Mach-O 64-bit executable x86_64
>>> /bin/sh (for architecture i386):    Mach-O executable i386
>>> (Mac上的二进制)
>>> /sbin/sh:       ELF 32-bit LSB executable 80386 Version 1 [FPU],
>>> dynamically linked, not stripped, no debugging information available
>>> (32位二进制)
>>> /usr/php/5.3/sbin/php-fpm:      ELF 64-bit LSB executable AMD64
>>> Version 1 [SSE2 SSE CMOV FPU], dynamically linked, stripped
>>> (64位二进制)
>>> 
>>> 在UNIX里,可执行!=二进制
>>> 
>>> 当然,二进制!=可执行,只不过我们一般说可执行二进制为二进制罢了
>>> --
>>> Alex Difan Zhang (@tifan)
>>> http://difan.org.cn/ | http://blog.osqdu.org/
>>> Graduate School, Towson University
>>> Towson MD 21204
>>> Tel: 434-532-1042
>>> 
>>> 
>>> 
>>> 2012/1/6 项超 <cloudaice在163.com>:
>>>> 哦,如果我理解的没有措的话,哪些可执行文件就是一些二进制0,1机器代码。
>>>> 
>>>> 在 2012-01-06 12:28:39,"Alex Zhang" <cheungtifan在gmail.com> 写道:
>>>> 
>>>> 对。
>>>> 
>>>> On Friday, January 6, 2012, 项超 <cloudaice在163.com> wrote:
>>>>> 那编译后的可执行文件就是二进制文件吗?
>>>>> 在 2012-01-05 08:49:40,pansz <pan.shizhu在gmail.com> 写道:
>>>>>> 安装的原因是因为依赖。
>>>>>> 
>>>>>> 例如你的软件会使用一些动态库一般会放在某个 /lib 下面,同时可能会读取一些配置文件 可能放在某个 /etc 或者 HOME
>>>>>> 下面,同时还有数据放到某个 share 下面。
>>>>>> 
>>>>>> 所谓安装,就是把主程序复制到某个 /bin 下面,库放到某个 /lib 下面,配置文件放到该放的位置,数据放到某个 /share
>>>>>> 下面。OK, Linux 下的安装就等于复制文件。。。
>>>>>> 
>>>>>> 为什么要打包呢?有两点,一个当然是你可以指定把不同的文件放到不同的目录下去。二个是你会依赖不同的库,而这个库在不同的 Linux
>>>>>> 发行版中叫不同的名字,之所以要打 rpm 跟 deb,是因为你依赖的库在 deb 系统跟 rpm
>>>>>> 系统中往往叫不同的名字,你为了让系统自己知道怎么去找那些库,就得按照对应系统的命名规则来。
>>>>>> 
>>>>>> 2012/1/2 项超 <cloudaice在163.com>:
>>>>>>> 
>>>>>>> 
>>>>>>> 在安装软件的时候,经常会碰到这样的问题,有源码包,二进制包,rpm包等等各种,有时候迷迷糊糊似乎是弄懂了一样,但是碰到另外的,就又迷糊了。怀疑自己理解的正确性了。看看网上的一些说法更是觉得晕了。
>>>>>>> 首先有一点,我是很清楚的。举一个例子就是,我在linux系统下,写一个“Hello
>>>>>>> 
>>>>>>> Word”的c程序。然后用GCC编译,就可以生成可执行的文件了。我只要一运行这个可执行的文件。就算我这个软件已经完成了。我本来觉得就是这么简单的,至少对于这个足够小的程序来说。但是现在又发现不对劲了。我们平时所说的“安装”又是怎么一回事呢?安装完之后的可以用的程序,和我编译完成后的可执行的文件有什么区别呢?
>>>>>>> 
>>>>>>> 另外还有什么二进制包,rpm,等等各种包,越发分不清楚了。之前也看过一些介绍这些的文章,因为也只是粗略的明白了点,但是碰到更多的类似的东西又糊涂了,怀疑自己了。还有那个编译完后的可执行文件不是二进制包吗?我一直以为编译完之后的可执行文件就是二进制文件。哎……好乱啊……
>>>>>> _______________________________________________
>>>>>> zeuux-universe mailing list
>>>>>> zeuux-universe在zeuux.org
>>>>>> http://www.zeuux.org/mailman/listinfo/zeuux-universe
>>>>>> 
>>>>>> ZEUUX Project - Free Software, Free Society!
>>>>>> http://www.zeuux.org
>>>>> _______________________________________________
>>>>> zeuux-universe mailing list
>>>>> zeuux-universe在zeuux.org
>>>>> http://www.zeuux.org/mailman/listinfo/zeuux-universe
>>>>> 
>>>>> ZEUUX Project - Free Software, Free Society!
>>>>> http://www.zeuux.org
>>>> 
>>>> --
>>>> Sent from Gmail Mobile
>>>> 
>>>> 
>>>> 
>>>> 
>>>> _______________________________________________
>>>> zeuux-universe mailing list
>>>> zeuux-universe在zeuux.org
>>>> http://www.zeuux.org/mailman/listinfo/zeuux-universe
>>>> 
>>>> ZEUUX Project - Free Software, Free Society!
>>>> http://www.zeuux.org
>>> _______________________________________________
>>> zeuux-universe mailing list
>>> zeuux-universe在zeuux.org
>>> http://www.zeuux.org/mailman/listinfo/zeuux-universe
>>> 
>>> ZEUUX Project - Free Software, Free Society!
>>> http://www.zeuux.org
>> _______________________________________________
>> zeuux-universe mailing list
>> zeuux-universe在zeuux.org
>> http://www.zeuux.org/mailman/listinfo/zeuux-universe
>> 
>> ZEUUX Project - Free Software, Free Society!
>> http://www.zeuux.org
>_______________________________________________
>zeuux-universe mailing list
>zeuux-universe在zeuux.org
>http://www.zeuux.org/mailman/listinfo/zeuux-universe
>
>ZEUUX Project - Free Software, Free Society!
>http://www.zeuux.org

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-universe]

2012年01月08日 星期日 12:31

Alex Zhang cheungtifan在gmail.com
星期日 一月 8 12:31:17 CST 2012

Please read: http://www.in-ulm.de/~mascheck/various/shebang/ The #!
magic, details about the shebang/hash-bang mechanism on various Unix
flavours
这个也可以参考: http://www.kernel.org/doc/Documentation/binfmt_misc.txt
--
Alex Difan Zhang (@tifan)
http://difan.org.cn/ | http://blog.osqdu.org/
Graduate School, Towson University
Towson MD 21204
Tel: 434-532-1042



2012/1/8 项超 <cloudaice at 163.com>:
> 这句话听的不是很明白,“是操作系统的功能”。操作洗系统也是可以说清楚的吧。并不是推给操作系统就万事大吉了吧。
> 在 2012-01-08 08:01:09,julyclyde <julyclyde at gmail.com> 写道:
>>带#!的脚本可以运行,那是操作系统的功能,不是什么应该不应该的问题,而是既成事实
>>
>>发自我的 iPad
>>
>>在 2012-1-7,21:39,项超 <cloudaice at 163.com> 写道:
>>
>>> 其实对于python 的脚本文件来说,不应该是可执行文件,因为是一种解释型语言,它只是在运行的时候通过解释器编程字节码,然后再在虚拟机上面运行,最终也是要变成二进制格式的代码送给CPU执行,可能过程还会更加复杂,只是这样子粗略的理解。但是绝大部分的安装在计算机上的文件都是可执行的二进制文件吧,至少在运行效率方面考虑也应该是这样子吧。关于一些python,java语言写的软件,发布安装在计算机中也是编译完成后的二进制文件,还是只是脚本文件?
>>> 在 2012-01-06 16:43:48,"Alex Zhang" <cheungtifan at gmail.com> 写道:
>>>> 不完全是。
>>>> exec()也可以调用一些脚本,比如
>>>>
>>>> #!/usr/bin/env python
>>>> print "Hello World"
>>>>
>>>> 可以执行,但是不是二进制。其实这个有点复杂了,你可以file xxx看一下来判断,一般的“可执行二进制”会说
>>>> /bin/sh: Mach-O universal binary with 2 architectures
>>>> /bin/sh (for architecture x86_64):    Mach-O 64-bit executable x86_64
>>>> /bin/sh (for architecture i386):    Mach-O executable i386
>>>> (Mac上的二进制)
>>>> /sbin/sh:       ELF 32-bit LSB executable 80386 Version 1 [FPU],
>>>> dynamically linked, not stripped, no debugging information available
>>>> (32位二进制)
>>>> /usr/php/5.3/sbin/php-fpm:      ELF 64-bit LSB executable AMD64
>>>> Version 1 [SSE2 SSE CMOV FPU], dynamically linked, stripped
>>>> (64位二进制)
>>>>
>>>> 在UNIX里,可执行!=二进制
>>>>
>>>> 当然,二进制!=可执行,只不过我们一般说可执行二进制为二进制罢了
>>>> --
>>>> Alex Difan Zhang (@tifan)
>>>> http://difan.org.cn/ | http://blog.osqdu.org/
>>>> Graduate School, Towson University
>>>> Towson MD 21204
>>>> Tel: 434-532-1042
>>>>
>>>>
>>>>
>>>> 2012/1/6 项超 <cloudaice at 163.com>:
>>>>> 哦,如果我理解的没有措的话,哪些可执行文件就是一些二进制0,1机器代码。
>>>>>
>>>>> 在 2012-01-06 12:28:39,"Alex Zhang" <cheungtifan at gmail.com> 写道:
>>>>>
>>>>> 对。
>>>>>
>>>>> On Friday, January 6, 2012, 项超 <cloudaice at 163.com> wrote:
>>>>>> 那编译后的可执行文件就是二进制文件吗?
>>>>>> 在 2012-01-05 08:49:40,pansz <pan.shizhu at gmail.com> 写道:
>>>>>>> 安装的原因是因为依赖。
>>>>>>>
>>>>>>> 例如你的软件会使用一些动态库一般会放在某个 /lib 下面,同时可能会读取一些配置文件 可能放在某个 /etc 或者 HOME
>>>>>>> 下面,同时还有数据放到某个 share 下面。
>>>>>>>
>>>>>>> 所谓安装,就是把主程序复制到某个 /bin 下面,库放到某个 /lib 下面,配置文件放到该放的位置,数据放到某个 /share
>>>>>>> 下面。OK, Linux 下的安装就等于复制文件。。。
>>>>>>>
>>>>>>> 为什么要打包呢?有两点,一个当然是你可以指定把不同的文件放到不同的目录下去。二个是你会依赖不同的库,而这个库在不同的 Linux
>>>>>>> 发行版中叫不同的名字,之所以要打 rpm 跟 deb,是因为你依赖的库在 deb 系统跟 rpm
>>>>>>> 系统中往往叫不同的名字,你为了让系统自己知道怎么去找那些库,就得按照对应系统的命名规则来。
>>>>>>>
>>>>>>> 2012/1/2 项超 <cloudaice at 163.com>:
>>>>>>>>
>>>>>>>>
>>>>>>>> 在安装软件的时候,经常会碰到这样的问题,有源码包,二进制包,rpm包等等各种,有时候迷迷糊糊似乎是弄懂了一样,但是碰到另外的,就又迷糊了。怀疑自己理解的正确性了。看看网上的一些说法更是觉得晕了。
>>>>>>>> 首先有一点,我是很清楚的。举一个例子就是,我在linux系统下,写一个“Hello
>>>>>>>>
>>>>>>>> Word”的c程序。然后用GCC编译,就可以生成可执行的文件了。我只要一运行这个可执行的文件。就算我这个软件已经完成了。我本来觉得就是这么简单的,至少对于这个足够小的程序来说。但是现在又发现不对劲了。我们平时所说的“安装”又是怎么一回事呢?安装完之后的可以用的程序,和我编译完成后的可执行的文件有什么区别呢?
>>>>>>>>
>>>>>>>> 另外还有什么二进制包,rpm,等等各种包,越发分不清楚了。之前也看过一些介绍这些的文章,因为也只是粗略的明白了点,但是碰到更多的类似的东西又糊涂了,怀疑自己了。还有那个编译完后的可执行文件不是二进制包吗?我一直以为编译完之后的可执行文件就是二进制文件。哎……好乱啊……
>>>>>>> _______________________________________________
>>>>>>> zeuux-universe mailing list
>>>>>>> zeuux-universe at zeuux.org
>>>>>>> http://www.zeuux.org/mailman/listinfo/zeuux-universe
>>>>>>>
>>>>>>> ZEUUX Project - Free Software, Free Society!
>>>>>>> http://www.zeuux.org
>>>>>> _______________________________________________
>>>>>> zeuux-universe mailing list
>>>>>> zeuux-universe at zeuux.org
>>>>>> http://www.zeuux.org/mailman/listinfo/zeuux-universe
>>>>>>
>>>>>> ZEUUX Project - Free Software, Free Society!
>>>>>> http://www.zeuux.org
>>>>>
>>>>> --
>>>>> Sent from Gmail Mobile
>>>>>
>>>>>
>>>>>
>>>>>
>>>>> _______________________________________________
>>>>> zeuux-universe mailing list
>>>>> zeuux-universe at zeuux.org
>>>>> http://www.zeuux.org/mailman/listinfo/zeuux-universe
>>>>>
>>>>> ZEUUX Project - Free Software, Free Society!
>>>>> http://www.zeuux.org
>>>> _______________________________________________
>>>> zeuux-universe mailing list
>>>> zeuux-universe at zeuux.org
>>>> http://www.zeuux.org/mailman/listinfo/zeuux-universe
>>>>
>>>> ZEUUX Project - Free Software, Free Society!
>>>> http://www.zeuux.org
>>> _______________________________________________
>>> zeuux-universe mailing list
>>> zeuux-universe at zeuux.org
>>> http://www.zeuux.org/mailman/listinfo/zeuux-universe
>>>
>>> ZEUUX Project - Free Software, Free Society!
>>> http://www.zeuux.org
>>_______________________________________________
>>zeuux-universe mailing list
>>zeuux-universe at zeuux.org
>>http://www.zeuux.org/mailman/listinfo/zeuux-universe
>>
>>ZEUUX Project - Free Software, Free Society!
>>http://www.zeuux.org
> _______________________________________________
> zeuux-universe mailing list
> zeuux-universe at zeuux.org
> http://www.zeuux.org/mailman/listinfo/zeuux-universe
>
> ZEUUX Project - Free Software, Free Society!
> http://www.zeuux.org

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-universe]

2012年01月08日 星期日 12:48

项超 cloudaice在163.com
星期日 一月 8 12:48:21 CST 2012

嗯……
At 2012-01-08 12:35:00,"Alex Zhang" <cheungtifan在gmail.com> wrote:
>Please read: http://www.in-ulm.de/~mascheck/various/shebang/ The #!
>magic, details about the shebang/hash-bang mechanism on various Unix
>flavours
>这个也可以参考: http://www.kernel.org/doc/Documentation/binfmt_misc.txt
>--
>Alex Difan Zhang (@tifan)
>http://difan.org.cn/ | http://blog.osqdu.org/
>Graduate School, Towson University
>Towson MD 21204
>Tel: 434-532-1042
>
>
>
>2012/1/8 项超 <cloudaice在163.com>:
>> 这句话听的不是很明白,“是操作系统的功能”。操作洗系统也是可以说清楚的吧。并不是推给操作系统就万事大吉了吧。
>> 在 2012-01-08 08:01:09,julyclyde <julyclyde在gmail.com> 写道:
>>>带#!的脚本可以运行,那是操作系统的功能,不是什么应该不应该的问题,而是既成事实
>>>
>>>发自我的 iPad
>>>
>>>在 2012-1-7,21:39,项超 <cloudaice在163.com> 写道:
>>>
>>>> 其实对于python 的脚本文件来说,不应该是可执行文件,因为是一种解释型语言,它只是在运行的时候通过解释器编程字节码,然后再在虚拟机上面运行,最终也是要变成二进制格式的代码送给CPU执行,可能过程还会更加复杂,只是这样子粗略的理解。但是绝大部分的安装在计算机上的文件都是可执行的二进制文件吧,至少在运行效率方面考虑也应该是这样子吧。关于一些python,java语言写的软件,发布安装在计算机中也是编译完成后的二进制文件,还是只是脚本文件?
>>>> 在 2012-01-06 16:43:48,"Alex Zhang" <cheungtifan在gmail.com> 写道:
>>>>> 不完全是。
>>>>> exec()也可以调用一些脚本,比如
>>>>>
>>>>> #!/usr/bin/env python
>>>>> print "Hello World"
>>>>>
>>>>> 可以执行,但是不是二进制。其实这个有点复杂了,你可以file xxx看一下来判断,一般的“可执行二进制”会说
>>>>> /bin/sh: Mach-O universal binary with 2 architectures
>>>>> /bin/sh (for architecture x86_64):    Mach-O 64-bit executable x86_64
>>>>> /bin/sh (for architecture i386):    Mach-O executable i386
>>>>> (Mac上的二进制)
>>>>> /sbin/sh:       ELF 32-bit LSB executable 80386 Version 1 [FPU],
>>>>> dynamically linked, not stripped, no debugging information available
>>>>> (32位二进制)
>>>>> /usr/php/5.3/sbin/php-fpm:      ELF 64-bit LSB executable AMD64
>>>>> Version 1 [SSE2 SSE CMOV FPU], dynamically linked, stripped
>>>>> (64位二进制)
>>>>>
>>>>> 在UNIX里,可执行!=二进制
>>>>>
>>>>> 当然,二进制!=可执行,只不过我们一般说可执行二进制为二进制罢了
>>>>> --
>>>>> Alex Difan Zhang (@tifan)
>>>>> http://difan.org.cn/ | http://blog.osqdu.org/
>>>>> Graduate School, Towson University
>>>>> Towson MD 21204
>>>>> Tel: 434-532-1042
>>>>>
>>>>>
>>>>>
>>>>> 2012/1/6 项超 <cloudaice在163.com>:
>>>>>> 哦,如果我理解的没有措的话,哪些可执行文件就是一些二进制0,1机器代码。
>>>>>>
>>>>>> 在 2012-01-06 12:28:39,"Alex Zhang" <cheungtifan在gmail.com> 写道:
>>>>>>
>>>>>> 对。
>>>>>>
>>>>>> On Friday, January 6, 2012, 项超 <cloudaice在163.com> wrote:
>>>>>>> 那编译后的可执行文件就是二进制文件吗?
>>>>>>> 在 2012-01-05 08:49:40,pansz <pan.shizhu在gmail.com> 写道:
>>>>>>>> 安装的原因是因为依赖。
>>>>>>>>
>>>>>>>> 例如你的软件会使用一些动态库一般会放在某个 /lib 下面,同时可能会读取一些配置文件 可能放在某个 /etc 或者 HOME
>>>>>>>> 下面,同时还有数据放到某个 share 下面。
>>>>>>>>
>>>>>>>> 所谓安装,就是把主程序复制到某个 /bin 下面,库放到某个 /lib 下面,配置文件放到该放的位置,数据放到某个 /share
>>>>>>>> 下面。OK, Linux 下的安装就等于复制文件。。。
>>>>>>>>
>>>>>>>> 为什么要打包呢?有两点,一个当然是你可以指定把不同的文件放到不同的目录下去。二个是你会依赖不同的库,而这个库在不同的 Linux
>>>>>>>> 发行版中叫不同的名字,之所以要打 rpm 跟 deb,是因为你依赖的库在 deb 系统跟 rpm
>>>>>>>> 系统中往往叫不同的名字,你为了让系统自己知道怎么去找那些库,就得按照对应系统的命名规则来。
>>>>>>>>
>>>>>>>> 2012/1/2 项超 <cloudaice在163.com>:
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> 在安装软件的时候,经常会碰到这样的问题,有源码包,二进制包,rpm包等等各种,有时候迷迷糊糊似乎是弄懂了一样,但是碰到另外的,就又迷糊了。怀疑自己理解的正确性了。看看网上的一些说法更是觉得晕了。
>>>>>>>>> 首先有一点,我是很清楚的。举一个例子就是,我在linux系统下,写一个“Hello
>>>>>>>>>
>>>>>>>>> Word”的c程序。然后用GCC编译,就可以生成可执行的文件了。我只要一运行这个可执行的文件。就算我这个软件已经完成了。我本来觉得就是这么简单的,至少对于这个足够小的程序来说。但是现在又发现不对劲了。我们平时所说的“安装”又是怎么一回事呢?安装完之后的可以用的程序,和我编译完成后的可执行的文件有什么区别呢?
>>>>>>>>>
>>>>>>>>> 另外还有什么二进制包,rpm,等等各种包,越发分不清楚了。之前也看过一些介绍这些的文章,因为也只是粗略的明白了点,但是碰到更多的类似的东西又糊涂了,怀疑自己了。还有那个编译完后的可执行文件不是二进制包吗?我一直以为编译完之后的可执行文件就是二进制文件。哎……好乱啊……
>>>>>>>> _______________________________________________
>>>>>>>> zeuux-universe mailing list
>>>>>>>> zeuux-universe在zeuux.org
>>>>>>>> http://www.zeuux.org/mailman/listinfo/zeuux-universe
>>>>>>>>
>>>>>>>> ZEUUX Project - Free Software, Free Society!
>>>>>>>> http://www.zeuux.org
>>>>>>> _______________________________________________
>>>>>>> zeuux-universe mailing list
>>>>>>> zeuux-universe在zeuux.org
>>>>>>> http://www.zeuux.org/mailman/listinfo/zeuux-universe
>>>>>>>
>>>>>>> ZEUUX Project - Free Software, Free Society!
>>>>>>> http://www.zeuux.org
>>>>>>
>>>>>> --
>>>>>> Sent from Gmail Mobile
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>> _______________________________________________
>>>>>> zeuux-universe mailing list
>>>>>> zeuux-universe在zeuux.org
>>>>>> http://www.zeuux.org/mailman/listinfo/zeuux-universe
>>>>>>
>>>>>> ZEUUX Project - Free Software, Free Society!
>>>>>> http://www.zeuux.org
>>>>> _______________________________________________
>>>>> zeuux-universe mailing list
>>>>> zeuux-universe在zeuux.org
>>>>> http://www.zeuux.org/mailman/listinfo/zeuux-universe
>>>>>
>>>>> ZEUUX Project - Free Software, Free Society!
>>>>> http://www.zeuux.org
>>>> _______________________________________________
>>>> zeuux-universe mailing list
>>>> zeuux-universe在zeuux.org
>>>> http://www.zeuux.org/mailman/listinfo/zeuux-universe
>>>>
>>>> ZEUUX Project - Free Software, Free Society!
>>>> http://www.zeuux.org
>>>_______________________________________________
>>>zeuux-universe mailing list
>>>zeuux-universe在zeuux.org
>>>http://www.zeuux.org/mailman/listinfo/zeuux-universe
>>>
>>>ZEUUX Project - Free Software, Free Society!
>>>http://www.zeuux.org
>> _______________________________________________
>> zeuux-universe mailing list
>> zeuux-universe在zeuux.org
>> http://www.zeuux.org/mailman/listinfo/zeuux-universe
>>
>> ZEUUX Project - Free Software, Free Society!
>> http://www.zeuux.org
>_______________________________________________
>zeuux-universe mailing list
>zeuux-universe在zeuux.org
>http://www.zeuux.org/mailman/listinfo/zeuux-universe
>
>ZEUUX Project - Free Software, Free Society!
>http://www.zeuux.org


[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-universe]

2012年01月09日 星期一 08:22

pansz pan.shizhu在gmail.com
星期一 一月 9 08:22:00 CST 2012

2012/1/7 项超 <cloudaice在163.com>:
> 其实对于python 的脚本文件来说,不应该是可执行文件

正解,终极的目标,当然只有二进制文件才可以执行。

但是一个脚本文件中一般是需要指向到一个可执行文件的。此时,这个脚本本身只是一种“数据”,或者说一个“参数”,实际的程序在里面指定的二进制文件。

当你在 python 脚本开头看到这样的字符:

#!/usr/bin/env python

这样的开头中,实际调用的是 /usr/bin/env 这个二进制文件。所以最终,还是二进制文件才能得以执行。

脚本文件只是“看起来”被执行了,实际上它只是作为某个二进制文件的数据而已。就如同在 windows 下,doc
文件看起来能被双击执行,但他只是调用 word 打开自己而已。

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-universe]

2012年01月09日 星期一 10:35

任晓磊 julyclyde在gmail.com
星期一 一月 9 10:35:31 CST 2012

那windows里的bat和cmd文件呢?

Ren Xiaolei



2012/1/9 pansz <pan.shizhu在gmail.com>:
> 脚本文件只是“看起来”被执行了,实际上它只是作为某个二进制文件的数据而已。就如同在 windows 下,doc
> 文件看起来能被双击执行,但他只是调用 word 打开自己而已。

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-universe]

2012年01月09日 星期一 11:08

Alex Zhang cheungtifan在gmail.com
星期一 一月 9 11:08:30 CST 2012

传给cmd.exe解释

On Monday, January 9, 2012, 任晓磊 <julyclyde at gmail.com> wrote:
> 那windows里的bat和cmd文件呢?
>
> Ren Xiaolei
>
>
>
> 2012/1/9 pansz <pan.shizhu at gmail.com>:
>> 脚本文件只是“看起来”被执行了,实际上它只是作为某个二进制文件的数据而已。就如同在 windows 下,doc
>> 文件看起来能被双击执行,但他只是调用 word 打开自己而已。
> _______________________________________________
> zeuux-universe mailing list
> zeuux-universe at zeuux.org
> http://www.zeuux.org/mailman/listinfo/zeuux-universe
>
> ZEUUX Project - Free Software, Free Society!
> http://www.zeuux.org

-- 
Sent from Gmail Mobile
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.zeuux.org/pipermail/zeuux-universe/attachments/20120109/b9a49ae3/attachment.html>

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-universe]

2012年01月09日 星期一 20:17

任晓磊 julyclyde在gmail.com
星期一 一月 9 20:17:31 CST 2012

区别就在这里了。在windows命令提示符运行批处理,是由cmd解释的;资源管理器里运行,靠的是文件扩展名关联
而linux的#!机制是内核亲自处理的,只要有x权限就足够,无任何外部的文件关联机制
具体到syscall级别,可以直接exec一个脚本,而不需要提前解析其首行

On Monday, January 9, 2012, Alex Zhang <cheungtifan在gmail.com> wrote:
> 传给cmd.exe解释
>
> On Monday, January 9, 2012, 任晓磊 <julyclyde在gmail.com> wrote:
>> 那windows里的bat和cmd文件呢?
>>
>> Ren Xiaolei
>>
>>
>>
>> 2012/1/9 pansz <pan.shizhu在gmail.com>:
>>> 脚本文件只是“看起来”被执行了,实际上它只是作为某个二进制文件的数据而已。就如同在 windows 下,doc
>>> 文件看起来能被双击执行,但他只是调用 word 打开自己而已。
>> _______________________________________________
>> zeuux-universe mailing list
>> zeuux-universe在zeuux.org
>> http://www.zeuux.org/mailman/listinfo/zeuux-universe
>>
>> ZEUUX Project - Free Software, Free Society!
>> http://www.zeuux.org
>
> --
> Sent from Gmail Mobile
>

-- 
Ren Xiaolei
-------------- 下一部分 --------------
一个HTML附件被移除...
URL: <http://www.zeuux.org/pipermail/zeuux-universe/attachments/20120109/e6655db7/attachment.html>

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-universe]

2012年01月09日 星期一 20:46

Alex Zhang cheungtifan在gmail.com
星期一 一月 9 20:46:21 CST 2012

文件关联是内核态的吧?我记得非管理员用户都不许动的。
#!似乎是内核测试出来的,不过没有shebang的话,内核会调用一个默认解释器。

--
Alex Difan Zhang (@tifan)
http://difan.org.cn/ | http://blog.osqdu.org/
Graduate School, Towson University
Towson MD 21204
Tel: 434-532-1042


2012/1/9 任晓磊 <julyclyde at gmail.com>

> 区别就在这里了。在windows命令提示符运行批处理,是由cmd解释的;资源管理器里运行,靠的是文件扩展名关联
> 而linux的#!机制是内核亲自处理的,只要有x权限就足够,无任何外部的文件关联机制
> 具体到syscall级别,可以直接exec一个脚本,而不需要提前解析其首行
>
>
> On Monday, January 9, 2012, Alex Zhang <cheungtifan at gmail.com> wrote:
> > 传给cmd.exe解释
> >
> > On Monday, January 9, 2012, 任晓磊 <julyclyde at gmail.com> wrote:
> >> 那windows里的bat和cmd文件呢?
> >>
> >> Ren Xiaolei
> >>
> >>
> >>
> >> 2012/1/9 pansz <pan.shizhu at gmail.com>:
> >>> 脚本文件只是“看起来”被执行了,实际上它只是作为某个二进制文件的数据而已。就如同在 windows 下,doc
> >>> 文件看起来能被双击执行,但他只是调用 word 打开自己而已。
> >> _______________________________________________
> >> zeuux-universe mailing list
> >> zeuux-universe at zeuux.org
> >> http://www.zeuux.org/mailman/listinfo/zeuux-universe
> >>
> >> ZEUUX Project - Free Software, Free Society!
> >> http://www.zeuux.org
> >
> > --
> > Sent from Gmail Mobile
> >
>
> --
> Ren Xiaolei
>
> _______________________________________________
> zeuux-universe mailing list
> zeuux-universe at zeuux.org
> http://www.zeuux.org/mailman/listinfo/zeuux-universe
>
> ZEUUX Project - Free Software, Free Society!
> http://www.zeuux.org
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.zeuux.org/pipermail/zeuux-universe/attachments/20120109/16c98801/attachment.html>

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-universe]

2012年01月10日 星期二 08:19

pansz pan.shizhu在gmail.com
星期二 一月 10 08:19:30 CST 2012

对最终用户(这里的用户是开发者)来说,由谁解释并无本质区别。无论是用户态解析还是内核态解析,终归是程序做的,终归也是在你的CPU上做的事情。

所以我仍然倾向于认为,任何非二进制的文件都不能独立被运行,最终都还是要被某个二进制的程序去解析。

没有 shebang 还会调用缺省的解释器的。

2012/1/9 任晓磊 <julyclyde在gmail.com>:
> 区别就在这里了。在windows命令提示符运行批处理,是由cmd解释的;资源管理器里运行,靠的是文件扩展名关联
> 而linux的#!机制是内核亲自处理的,只要有x权限就足够,无任何外部的文件关联机制
> 具体到syscall级别,可以直接exec一个脚本,而不需要提前解析其首行

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-universe]

2012年01月10日 星期二 11:28

任晓磊 julyclyde在gmail.com
星期二 一月 10 11:28:09 CST 2012

在shell里调用一个缺shebang的,自然是由“当前SHELL”执行的;不存在所谓“默认解释器”的概念
你可以尝试用strace执行一个缺shebang的脚本,会得到下列结果:

# strace ./1.sh
execve("./1.sh", ["./1.sh"], [/* 24 vars */]) = -1 ENOEXEC (Exec format error)
dup(2)                                  = 3
fcntl(3, F_GETFL)                       = 0x8002 (flags O_RDWR|O_LARGEFILE)
fstat(3, {st_mode=S_IFCHR|0620, st_rdev=makedev(136, 209), ...}) = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1,
0) = 0x2ba36c526000
lseek(3, 0, SEEK_CUR)                   = -1 ESPIPE (Illegal seek)
write(3, "strace: exec: Exec format error\n", 32strace: exec: Exec format error
) = 32
close(3)                                = 0
munmap(0x2ba36c526000, 4096)            = 0
exit_group(1)                           = ?

请注意区分“执行”和“在shell中执行”这两个概念

对shebang的支持,是内核级的,纯粹的


Ren Xiaolei



2012/1/10 pansz <pan.shizhu在gmail.com>:
> 对最终用户(这里的用户是开发者)来说,由谁解释并无本质区别。无论是用户态解析还是内核态解析,终归是程序做的,终归也是在你的CPU上做的事情。
>
> 所以我仍然倾向于认为,任何非二进制的文件都不能独立被运行,最终都还是要被某个二进制的程序去解析。
>
> 没有 shebang 还会调用缺省的解释器的。

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-universe]

2012年01月21日 星期六 14:46

kfihihc在gmail.com kfihihc在gmail.com
星期六 一月 21 14:46:25 CST 2012

任曉磊 <julyclyde在gmail.com> 於 2012年1月10日上午11:28 寫道:

> 在shell裡調用一個缺shebang的,自然是由「當前SHELL」執行的;不存在所謂「默認解釋器」的概念
> 你可以嘗試用strace執行一個缺shebang的腳本,會得到下列結果:
>
> # strace ./1.sh
> execve("./1.sh", ["./1.sh"], [/* 24 vars */]) = -1 ENOEXEC (Exec format
> error)
> dup(2)                                  = 3
> fcntl(3, F_GETFL)                       = 0x8002 (flags O_RDWR|O_LARGEFILE)
> fstat(3, {st_mode=S_IFCHR|0620, st_rdev=makedev(136, 209), ...}) = 0
> mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1,
> 0) = 0x2ba36c526000
> lseek(3, 0, SEEK_CUR)                   = -1 ESPIPE (Illegal seek)
> write(3, "strace: exec: Exec format error\n", 32strace: exec: Exec format
> error
> ) = 32
> close(3)                                = 0
> munmap(0x2ba36c526000, 4096)            = 0
> exit_group(1)                           = ?
>
> 請注意區分「執行」和「在shell中執行」這兩個概念
>
> 對shebang的支持,是內核級的,純粹的
>
> 那所有 sh 腳本都是內核級?
bash 和 python 本質上有區別麼? 是不是都是解析器(對 sh 腳本和 python 腳本)。

>
> Ren Xiaolei
>
>
>
> 2012/1/10 pansz <pan.shizhu在gmail.com>:
> > 對最終用戶(這裡的用戶是開發者)來說,由誰解釋並無本質區別。無論是用戶態解析還是內核態解析,終歸是程序做的,終歸也是在你的CPU上做的事情。
> >
> > 所以我仍然傾向於認為,任何非二進制的文件都不能獨立被運行,最終都還是要被某個二進制的程序去解析。
> >
> > 沒有 shebang 還會調用缺省的解釋器的。
> _______________________________________________
> zeuux-universe mailing list
> zeuux-universe在zeuux.org
> http://www.zeuux.org/mailman/listinfo/zeuux-universe
>
> ZEUUX Project - Free Software, Free Society!
> http://www.zeuux.org
>



-- 
--
小波 上
http://yuzhe.me
http://fanfou.com/kfihihc
htpp://twitter.com/kfihihc <http://twitter.com/kfihihc>
http://about.me/xiaobo/bio
-------------- 下一部分 --------------
一?HTML附件被移除...
URL: <http://www.zeuux.org/pipermail/zeuux-universe/attachments/20120121/c6d671fa/attachment.html>

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-universe]

如下红色区域有误,请重新填写。

    你的回复:

    请 登录 后回复。还没有在Zeuux哲思注册吗?现在 注册 !

    Zeuux © 2024

    京ICP备05028076号