代码改变世界

古老Ubuntu 安装 EDB 的奇葩旅程

2012-11-25 00:38  Rudrj2  阅读(2113)  评论(0编辑  收藏  举报
ubuntu下安装edb

在如下地址下载:
http://www.codef00.com/projects#Debugger

$ sudo apt-get install libqt4-dev
$ sudo apt-get install libboost1.40-all-dev

或者:

$sudo apt-get install libboost
$ tar zxvf debugger-0.9.18.tgz
$ mv debugger /usr/local/src/
$ cd /usr/local/src/debugger
$ qmake -makefile DEFAULT_PLUGIN_PATH="/usr/lib/edb/"
$ make
$ sudo make INSTALL_ROOT=/usr install

 

官方安装说明:

mkdir -p /usr/local/portage/edb/dev-util/edb/
cp edb-0.9.18.ebuild /usr/local/portage/edb/dev-util/edb/
echo PORTDIR_OVERLAY=\"\${PORTDIR_OVERLAY} /usr/local/portage/edb\" >> /etc/make.conf
cd /usr/local/portage/edb/dev-util/edb/
ebuild edb-0.9.18.ebuild digest
ACCEPT_KEYWORDS=~x86 emerge -a dev-util/edb

 

由于老师给的ubuntu的版本很老(9.04),而且源也有无效的(在外面的研究院,没有使用学校的源)

需要注意的是不同版本的ubuntu有不同的源,千万不要选错了源。一开始我以为是10.4结果后来发现不对,又去寻找新的源。

由于安装10.04源的时候出现了一点问题记录一下:

E:Could not get lock /var/lib/apt/lists/lock - open (11: Resource temporarily unavailable)

出现这个问题的原因可能是有另外一个程序正在运行,导致资源被锁不可用。而导致资源被锁的原因,可能是上次安装时没正常完成,而导致出现此状况。

解决方法:输入以下命令

sudo rm /var/cache/apt/archives/lock

sudo rm /var/lib/dpkg/lock

之后再安装想装的包,即可解决

在弄更新源9.04的时候,突然出现以下错误:

[1]+ Stopped                 sudo apt-get update
haiquan@haiquan-desktop:~$ sudo apt-get update
E: Could not get lock /var/lib/apt/lists/lock - open (11: Resource temporarily unavailable)
E: Unable to lock the list directory

开始以为是权限不够,就是用 sudo apt-get update,发现还是报错,问题没有解决。于是上网搜索了一下,答案如下:

问题应该是之前那个更新被强制取消的问题,进程仍然还在。用这个命令查看一下:

ps -e | grep apt

显示结果如下:

6934 ? 00:00:00 apt-get

然后就执行

sudo killall apt-get

如果有其他也可以选择:

sudo killall apt

sudo killall synaptic

再次在终端里查看ps -e | grep apt 没有任何结果了

继续执行sudo apt-get update

OK!

原因:内部缺少很多软件源,这时,系统会自动启动软件源更新进程“apt-get”,并且它会一直存活。由于它在运行时,会占用软件源更新时的系统锁(以下称“系统更新锁”,此锁文件在“/var/lib/apt/lists/”目录下),而当有新的apt-get进程生成时,就会因为得不到系统更新锁而出现"E: 无法获得锁 /var/lib/apt/lists/lock - open (11: Resource temporarily unavailable)"错误提示!因此,我们只要将原先的apt-get进程杀死,从新激活新的apt-get进程,就可以让新立德软件管理器正常工作了!

这时,按以下步骤来解决:
1、输入以下命令:“ps -aux  > temp.txt”.敲回车确定。这时会有“warning”出现,但不予理会。
2、输入以下命令:“grep -n apt-get temp.txt”键入回车确定。而后从命令输出中找到 apt-get 进程的PID。
3、输入以下命令:“sudo kill <PID>”。
4、完成。

or

如果提示错误:E: Could not get lock /var/lib/dpkg/lock - open (11 Resource temporarily unavailable)
输入

sudo rm /var/lib/apt/lists/lock

即可

 后来发现只能用官方源,9.04已经被淘汰了,其他源都不支持了。哎。这太坑爹了,搞个8.04也好。。这么奇葩的一个版本。

不知道自己ubuntu版本的同学可以输入:

cat   /etc/issue

 

重新返回之前的源是不行的,因为ubuntu 9.04 又出现了错误。老版本的源一定要注意。。(坑爹的信安,坑爹的保健哥)

sudo apt-get update 更新软件列表错误:
 
E: Some index files failed to download, they have been ignored, or old ones
参考地址:http://pim.famnit.upr.si/blog/index.php?/archives/225-Update-an-old-Ubuntu-404-Not-Found;-Err-httpus.archive.ubuntu.com;-Failed-to-fetch.html
解决方案: To upgrade a really old Ubuntu release, we first need to edit our sources.list and change all(xx.)archive.ubuntu.com to old
-releases.ubuntu.com. $ sudo emacs /etc/apt/sources.list So your lines should instead of deb http://archive.ubuntu.com/ubuntu jaunty main restricted universe look like deb http://old-releases.ubuntu.com/ubuntu jaunty main restricted universe In this example I use jaunty release. But it works the same on other releases. Now update the repos $ sudo apt-get update

 

如果你的版本有很好的支持10.04之后,我发现一种比较好的软连接方式,可以减少更新源的操作:

打开终端执行以下命令:
cd /etc/apt
可有可无,我系统里面本身就有备份
sudo mv sources.list sources.list.save
输入你的密码
这个时候要记住自己的版本号:Jaunty(我的,你自己的可以随便设)
sudo wget http://mirrors.163.com/.help/sources.list.jaunty
这就是软连接
sudo ln -sf sources.list.jaunty sources.list
sudo apt-get update
换好软件源了,接下来安装更新
sudo apt-get dist-upgrade

 比较老的版本的,新的版本源比较常见,就不介绍了
    Dapper(6.06)
    Hardy(8.04)
    Intrepid(8.10)
    Jaunty(9.04)
    Karmic(9.10)
    Lucid(10.04)
    maverick(10.10)

 

虽然没变,但最终还是把源给搞通了。。现在搞edb吧。。根据之前给的代码,将QT和BOOST都装好;版本要求QT>=4.5   BOOST>=1.35  你也可以自己打开新立得搜素关键词安装对应版本,,安装过程可能需要G++,所以安装前务必要安装G++。。新立得无脑流操作就OK了。。

转到下载tgz的目录,进行下列操作就ok了。。。

$ tar zxvf debugger-0.9.18.tgz
$ mv debugger /usr/local/src/
$ cd /usr/local/src/debugger
$ qmake -makefile DEFAULT_PLUGIN_PATH="/usr/lib/edb/"
$ make
$ sudo make INSTALL_ROOT=/usr install

 

 总结了一点修改下makefile就可以了。。老版本的系统无法编译version这个文件。