分页: 2 / 2
发表于 : 2005-07-09 20:42
由 firehare
我明白了,你同时安装了Apache和Apache2,这两个只需安装一个就OK了!
我的Apache包已附上!但由于我只安装了两个东东,所以不一定能使你的恢复正常。因为我感觉你肯定比我安装的组件要多不少,只好祝你好运,不过你最好按照我以前的方法用脚本搜索一下倒底是哪些包没装好,可以重新安装一遍,这样就可以最 大程序上修复你的系统了。
发表于 : 2005-07-09 20:44
由 firehare
另附上我以前的脚本:
viewtopic.php?t=595
希望能对你有帮助
发表于 : 2005-07-09 21:07
由 yongyi
firehare 写了:我明白了,你同时安装了Apache和Apache2,这两个只需安装一个就OK了!
我的Apache包已附上!但由于我只安装了两个东东,所以不一定能使你的恢复正常。因为我感觉你肯定比我安装的组件要多不少,只好祝你好运,不过你最好按照我以前的方法用脚本搜索一下倒底是哪些包没装好,可以重新安装一遍,这样就可以最 大程序上修复你的系统了。
谢谢了。用了你的配置文件,已经好了。你的文件是全部默认的??
第一次安装就用了那篇“打造Linux下超级安全的LAMP服务器 ”安装的。
代码: 全选
apt-get install apache php4 php4-gd2 php4-mysql mysql-server
明明是安装apache,但发现既有apache又有apache2,并且两个都没装完整的!
就出现我说的怪现象,搞不定,就又把所有安装过的包(我有copy那些包的名字)全部remove了。
然后一样样安装,结果还是一样。然后用了叶兄所说的,也是一样。(相信是配置文件的作用)
最后,就是你上面的方法了,但删除那些配置文件再安装的话,竟然发现配置文件没装上去!
等我试试那个脚本。
发表于 : 2005-07-09 21:46
由 yongyi
怎么用的?直接运行吗?
我先把/etc/apache2换回我自己的,
我在终端:
代码: 全选
#!/bin/sh
cat /var/lib/dpkg/info/*.list | while read F
do
[ ! -f "$F" ] && echo $F >> errpkg.lst
done
然后得到文件~/errpkg.lst
接着:
代码: 全选
$grep 没有 errpkg.lst>errpkgfind.lst
得到errpkgfind.lst文件,但它是空的?!
发表于 : 2005-07-09 21:55
由 firehare
这是一个脚本,要放在文件里的,比如说建一个errpkg.sh,在其中放入上述代码!
然后chmod +x errpkg.sh,使之能够运行,运行完成之后,再在提示符下运行:$grep 没有 errpkg.lst>errpkgfind.lst
运行的时间会比较长,几分钟到几十分钟不等!
发表于 : 2005-07-09 21:58
由 firehare
另:
我给的那个是基于Debian的,不是基于Ubuntu的,要用的话,是要做一定的修改的。都是我不好,在Debian下用了之后就直接发到这里了,原想着Debian和Ubuntu相差不大,应该没什么问题,所以就只是想当然的改了点东东,实在是对不住兄弟呀!
我准备再好好的测试一下,再发一个Ubuntu版的给大家,大概也就在这个星期吧!
发表于 : 2005-07-09 22:24
由 yongyi
firehare 写了:这是一个脚本,要放在文件里的,比如说建一个errpkg.sh,在其中放入上述代码!
然后chmod +x errpkg.sh,使之能够运行,运行完成之后,再在提示符下运行:$grep 没有 errpkg.lst>errpkgfind.lst
运行的时间会比较长,几分钟到几十分钟不等!
刚刚又按这个做了一次,发现得到的errpkgfind.lst仍是空的。
我是建了errpkg.sh 后:
代码: 全选
$chmod +x errpkg.sh
$sh errpkg.sh
$grep 没有 errpkg.lst>errpkgfind.lst
没错吧?怎么输入“没有”的?中文也能行?
另:也没什么,只是见识了linux 的一些现象而已。这也是学习探究过程嘛,乐在其中

当然,也期望兄弟你的Apache2安全大作。
发表于 : 2005-07-10 8:50
由 firehare
其实象下面那样调用就可以了:
$./errpkg.sh
因为在脚本头上已经有了#!/bin/sh,但你这样也没错了!
不过我也说过了,这个脚本是没尝试过的
我用的是开始的那个东东,这个脚本不能保证其正确性
find /var/lib/dpkg/info -name '*list' -exec cat {} \; | xargs ls 2> errorpkgs.lst
另:
errpkg.lst里有东东吗?
发表于 : 2005-07-10 9:30
由 yongyi
errpkg.lst里有东东吗?
==有!有16510行。
试了你的方法,你的运行时间长了好多,并且运行过程占CPU也多了。
最后查到errorpkgs.lst 中是:
ls: /etc/cron.daily/find: 没有那个文件或目录
ls: /etc/apache2/sites-available/default: 没有那个文件或目录
ls: /etc/apache2/envvars: 没有那个文件或目录
ls: /etc/apache2/apache2.conf: 没有那个文件或目录
ls: /etc/apache2/magic: 没有那个文件或目录
ls: /etc/apache2/README: 没有那个文件或目录
然后我做:
代码: 全选
yongyi@yongyi:~$ dpkg -S /etc/cron.daily/find
转移(diversion)到了 slocate 从: /etc/cron.daily/find
转移(diversion)到了 slocate 到: /etc/cron.daily/find.notslocate
findutils: /etc/cron.daily/find
yongyi@yongyi:~$ dpkg -S /etc/apache2/README
apache2-common: /etc/apache2/README
yongyi@yongyi:~$ dpkg -S /etc/apache2/magic
apache2-common: /etc/apache2/magic
yongyi@yongyi:~$ dpkg -S /etc/apache2/apache2.conf
apache2-common: /etc/apache2/apache2.conf
yongyi@yongyi:~$ dpkg -S /etc/apache2/envvars
apache2-common: /etc/apache2/envvars
yongyi@yongyi:~$ dpkg -S /etc/apache2/sites-available/default
apache2-common: /etc/apache2/sites-available/default
但发现并没有增加文件。依然如故。是不是我这样 dpkg -S 错了?
发表于 : 2005-07-10 9:44
由 firehare
没有呀!
你看你不是少了很多文件吗?
dpkg -S 只是找出你少的文件是在哪个包中的
看你的回答应该是在apache2-common和slocate这两个包中,也就是说你可以重装这两个包就可以修复你少的文件了!
另:将apache、apache-*和libapache-*等包删除,因为你既然已经用了apache2了就没必要用apache了,以免冲突!
发表于 : 2005-07-10 10:08
由 yongyi
谢谢!学口野了。
apache、apache-*和libapache-*等包一早就没了。
apache2-common和slocate这两个包重装也没用。
看来不是这些包。
可以说,在安装apache2和php4时安装过的包,我都试过重装的了。都没用。
发表于 : 2005-07-10 10:23
由 firehare
你给出的结果有点奇怪,为什么会找不到apache2.conf包呢,我给你的包里就有这个包的呀?
另:你现在是什么问题?我有点糊涂了!你少的那些包在你重装了之后难道还看不到吗?这似乎不太可能呀!
发表于 : 2005-07-10 10:33
由 yongyi
哈,是呀,你给我的已经解决问题的了。但我想知道为什么我自己安装的为什么会缺少文件?要怎么才能把缺少的文件重装安装回来?
上面所做的一直是用着我自己安装时产生的/etc/apache2 的。
怀疑一个:如果我想卸载apache2,那么能否删除/etc/apache2?
我删除后,再重安装apache2,就没了apache2.conf 文件了。
发表于 : 2005-07-10 11:16
由 firehare
不是的!
apache2删除是不会删除/etc/apache2的!因为这东东主要是由apache2-common建的!
apache2只是安装下面两个文件
/usr/share/doc/apache2/copyright
/usr/share/doc/apache2/changelog.Debian.gz
而apache2-common才是主要的,具体可以看新立得属性中列出的文件
而在/etc/apach2中还有很多其他的包生成的文件,如安装PHP就会安装libapache2-mod-php4包,该包会在/etc/apache2目录中生成/etc/apache2/mods-available/php4.load
/etc/apache2/mods-available/php4.conf
如果你还安装了别的模块的话,在/etc/apache2目录中还会有其他的东东,所以如果要删除apache2的话,应该删除这些东东都依赖的那个包,在这里我想应该是apache2-common包吧,不过这也是我的猜想,具体操作时,你要看一下相关的依赖关系,不过如果要删除这个的话,应该会删除得了/etc/apache2目录的吧!