ubuntu新人,从源代码编译安装软件从未成功过

系统安装、升级讨论
版面规则
我们都知道新人的确很菜,也喜欢抱怨,并且带有浓厚的Windows习惯,但既然在这里询问,我们就应该有责任帮助他们解决问题,而不是直接泼冷水、简单的否定或发表对解决问题没有任何帮助的帖子。乐于分享,以人为本,这正是Ubuntu的精神所在。
头像
imlazy
帖子: 136
注册时间: 2006-10-29 10:49
来自: Shanghai, China

ubuntu新人,从源代码编译安装软件从未成功过

#1

帖子 imlazy » 2006-10-31 22:42

我是刚从Fedora转到ubuntu的。以前习惯的安装软件方法是从源代码安装,通常都是configure + make + make install三步曲。可是进入Ubuntu以后,却无法用这招了。我已经用下面的方法安装了gcc:

代码: 全选

sudo apt-get install gcc g++ libgcc1 libg++ make gdb
然后,以fcitx3.2.1的源代码为例,configure可以过,可是到make的时候就出现下面的状况:

代码: 全选

cd . \
          && CONFIG_FILES= CONFIG_HEADERS=config.h \
             /bin/bash ./config.status
config.status: creating config.h
config.status: config.h is unchanged
config.status: executing depfiles commands
make  all-recursive
make[1]: Entering directory `/root/fcitx-3.2.1'
Making all in doc
make[2]: Entering directory `/root/fcitx-3.2.1/doc'
make[2]: Nothing to be done for `all'.
make[2]: Leaving directory `/root/fcitx-3.2.1/doc'
Making all in tools
make[2]: Entering directory `/root/fcitx-3.2.1/tools'
gcc -DHAVE_CONFIG_H -I. -I. -I.. -I../src -I../lib    -g -O2 -INONE -Wall -c mb2txt.c
gcc  -g -O2 -INONE -Wall  -o mb2txt  mb2txt.o  -LNONE -lX11 
/usr/bin/ld:找不到 -lX11
collect2: ld returned 1 exit status
make[2]: *** [mb2txt] 错误 1
make[2]: Leaving directory `/root/fcitx-3.2.1/tools'
make[1]: *** [all-recursive] 错误 1
make[1]: Leaving directory `/root/fcitx-3.2.1'
make: *** [all-recursive-am] 错误 2
不知如何是好。
不是说针对fcitx这个软件一定要装上它,我只是想要通过这个编译。这个源代码我源来在FC5下肯定是可以编译的。
而且,我试过,我的g++是能够正常编译一些我自已编的c++小代码的。可是make软件的源代码就不行。
头像
zhuqin_83
帖子: 10606
注册时间: 2006-05-13 4:02
联系:

#2

帖子 zhuqin_83 » 2006-11-01 1:10

sudo apt-get install build-essential
HP Pavilion DV6-2064CA: AMD Turion II Ultra Dual-Core Mobile M640, HD4650, 2GBx2 DDR2-800, Seagate 500GB 7200RPM SATA, BD-ROM
DELL UltraSharp 2209WA
Arch64, Testing repo
头像
imlazy
帖子: 136
注册时间: 2006-10-29 10:49
来自: Shanghai, China

#3

帖子 imlazy » 2006-11-01 8:36

已试过,运行结果如下:

代码: 全选

正在读取软件包列表... 完成
正在分析软件包的依赖关系树       
Reading state information... 完成      
build-essential 已经是最新的版本了。
共升级了 0 个软件包,新安装了 0 个软件包,要卸载 0 个软件包,有 0 个软件未被升级。
还是老样子。
头像
karron
帖子: 6226
注册时间: 2005-06-11 14:03
来自: 不明真相的群众
联系:

#4

帖子 karron » 2006-11-01 8:49

apt-get build-dep fcitx ,安装相应的库.

不过,我想,在ubuntu里面最好是放弃你这样编译安装的念头,虽然ubuntu里面编译软件非常容易.但是,与其自己花时间编译,还不如直接apt-get安装.

人家都说用ubuntu /debian 就像是自己家里开超市,想要什么就拿什么.
我的blog,关于技术,软件,linux,vim <---- 所有博客均被河蟹.
头像
imlazy
帖子: 136
注册时间: 2006-10-29 10:49
来自: Shanghai, China

#5

帖子 imlazy » 2006-11-01 10:48

可是配置源就很麻烦。我看了wiki里的文章,先后试过好多源,都出现不同的状况。比如,在学校的机房里,我用Wiki里给的一个亚洲官方的源,然后用"apt-get install build essential",得到的结果是:

代码: 全选

正在读取软件包列表... 完成
正在分析软件包的依赖关系树       
Reading state information... 完成      
有一些软件包无法被安装。如果您用的是不稳定(unstable)发行版,这也许是
因为系统无法达到您要求的状态造成的。该版本中可能会有一些您需要的软件
包尚未被创建或是它们还在新到(incoming)目录中。

您仅要求对单一软件包进行操作,这极有可能是因为该软件包安装不上,同时,
您最好提交一个针对这个软件包的故障报告。
下列的信息可能会对解决问题有所帮助:

下列的软件包有不能满足的依赖关系:
  g++: 依赖: g++-4.0 (>= 4.0.3) 但是它将不会被安装
E: 无法安装的软件包
root@zhukai:/home/zhukai# apt-get install build-essential
正在读取软件包列表... 完成
正在分析软件包的依赖关系树       
Reading state information... 完成      
有一些软件包无法被安装。如果您用的是不稳定(unstable)发行版,这也许是
因为系统无法达到您要求的状态造成的。该版本中可能会有一些您需要的软件
包尚未被创建或是它们还在新到(incoming)目录中。

您仅要求对单一软件包进行操作,这极有可能是因为该软件包安装不上,同时,
您最好提交一个针对这个软件包的故障报告。
下列的信息可能会对解决问题有所帮助:

下列的软件包有不能满足的依赖关系:
  build-essential: 依赖: libc6-dev 但是它将不会被安装 或
                           libc-dev
                   依赖: g++ (>= 4:4.0) 但是它将不会被安装
E: 无法安装的软件包
试过很多源,都就各种各样的错误。
头像
imlazy
帖子: 136
注册时间: 2006-10-29 10:49
来自: Shanghai, China

#6

帖子 imlazy » 2006-11-01 12:04

哦,我现在知道了,wiki里那个亚洲官方源是6.06的,把里面的dapper都改成edgy就可以啦。
还有,编译安装还需要很多包,我在论坛里找到一篇文章,是讲怎么编译vim的,我按它说的打了apt-get build-dep vim-gtk。结果一下它列出了一大推安装包,装好了以后。我再试着编译了一个软件,成功了!
上次由 imlazy 在 2006-11-03 23:26,总共编辑 1 次。
jnwysh
帖子: 381
注册时间: 2006-04-25 17:07

#7

帖子 jnwysh » 2006-11-01 21:03

请问 哪里还有源代码编译的例子呀?
头像
imlazy
帖子: 136
注册时间: 2006-10-29 10:49
来自: Shanghai, China

#8

帖子 imlazy » 2006-11-02 10:52

本院寺老纳
帖子: 106
注册时间: 2005-08-08 3:25
联系:

#9

帖子 本院寺老纳 » 2006-11-02 12:06

karron 写了:apt-get build-dep fcitx ,安装相应的库.

不过,我想,在ubuntu里面最好是放弃你这样编译安装的念头,虽然ubuntu里面编译软件非常容易.但是,与其自己花时间编译,还不如直接apt-get安装.

人家都说用ubuntu /debian 就像是自己家里开超市,想要什么就拿什么.
有些东西源里面没有啊……比如GAIM 2.0.0……
图片
头像
alpha.gu
帖子: 1456
注册时间: 2006-09-10 16:06
联系:

#10

帖子 alpha.gu » 2006-11-03 11:39

karron 写了:apt-get build-dep fcitx ,安裝相應的庫.

不過,我想,在ubuntu裡面最好是放棄你這樣編譯安裝的念頭,雖然ubuntu裡面編譯軟件非常容易.但是,與其自己花時間編譯,還不如直接apt-get安裝.

人家都說用ubuntu /debian 就像是自己家裡開超市,想要什麼就拿什麼.
不太同意這個說法,Linux的發行版如此之多,只有源碼編譯是通用的方法,不管日常方便的用法是什么,我覺得編譯安裝的方法是一定要學的,來然,萬一哪一天換一個發行版,又變成几分新手的樣子了。
头像
karron
帖子: 6226
注册时间: 2005-06-11 14:03
来自: 不明真相的群众
联系:

#11

帖子 karron » 2006-11-03 13:37

我不知道发行版整天换来换去有什么意思. 把你宝贵的时间用在正途,而不是尝试无穷无尽的发行版上.
我的blog,关于技术,软件,linux,vim <---- 所有博客均被河蟹.
头像
imlazy
帖子: 136
注册时间: 2006-10-29 10:49
来自: Shanghai, China

#12

帖子 imlazy » 2006-11-03 23:30

我比较同意alpha.gu的话,从源代码编译安装才是王道。
我用ubuntu6.10自代的vim,在学校的破机器上巨卡。可是自已编译安装了一个就很流畅了。自己机器上编译出来的程序有针对本机器的编译优化,运行速度更快,这是毋庸置疑的。
头像
leec0621
帖子: 150
注册时间: 2006-11-12 10:17
来自: 火星

#13

帖子 leec0621 » 2006-12-03 21:19

感觉还是apt-get省事~~编译的话要好多包的~~麻烦~~
头像
BigSnake.NET
帖子: 12522
注册时间: 2006-07-02 11:16
来自: 廣州
联系:

#14

帖子 BigSnake.NET » 2006-12-03 21:27

imlazy 写了:我比较同意alpha.gu的话,从源代码编译安装才是王道。
我用ubuntu6.10自代的vim,在学校的破机器上巨卡。可是自已编译安装了一个就很流畅了。自己机器上编译出来的程序有针对本机器的编译优化,运行速度更快,这是毋庸置疑的。
一般不会快很多的,10%已经很好rp了
^_^ ~~~
要理解递归,首先要理解递归。

地球人都知道,理论上,理论跟实际是没有差别的,但实际上,理论跟实际的差别是相当大滴。
头像
imlazy
帖子: 136
注册时间: 2006-10-29 10:49
来自: Shanghai, China

#15

帖子 imlazy » 2006-12-06 11:35

BigSnake.NET 写了:一般不会快很多的,10%已经很好rp了
那要看你机器够不够破了。我觉得机器破到家的话,自已编译出来是会快的,而且亲身经历过。
回复