找回密码
 注册
查看: 1003|回复: 4

[原创]使用apt-build进行系统优化

[复制链接]
发表于 2004-3-28 15:10:13 | 显示全部楼层 |阅读模式
[原创]使用apt-build进行系统优化

http://mushuang.forumer.com/index.php?showtopic=178

Attach New Poll | Track this topic | Email this topic | Print this topic
mushuang Posted: Mar 10 2004, 07:57 PM   


Administrator


Group: Admin
Posts: 262
Member No.: 1
Joined: 10-January 04



原创:无双 无双小站[mushuang.forumer.com]
转载请保留出处

多数linux现在还是使用386的二进制码包
而现在 早已经是p4或是athon的天下了

用起这些软件包来心里总感觉有点不舒服
那有没有办法呢 特别是在debian这个可订制的系统上 难道要自己手动去编译一个一个的源码吗

那 太累了 学习linux都不知道为什么要学了 到时变成./configure专家而其它的都不懂

不过 要是使用386编译包还是觉得心理不舒服

还好 无所不能充满创造性的debian给我们带来了一个新的选择 apt-build


apt-build是从源码包安装升级的工具
现在在stable上使用可能还有些问题 所以最好还是升级到sid版

安装
使用apt-get install apt-build安装

安装时会告诉你要在哪个目录下编译软件包 并保存已编译好的包
默认是/var/cache/apt-build
安装过程中会把/var/cache/apt-build/...添加到/etc/apt/source.list文件中
同时会问优化级别 根据自己的系统来优化好了(后面我使用的是自己的优化脚本)

使用
像apt-get一样的使用 命令参数也一样 除了没有dis-upgrade命令外
安装就是使用apt-build install 包名
安装过程中 apt-get会使用自己的设置把优化级别添加到gcc的编译选项中 从而达到优化效果

使用过程中发现有的软件包安装过程中带有-g 觉得不舒服后面就自己写了个脚本
代替apt-buid的脚本

另外还发现 使用apt-build upgrade时 是等到所有软件包都重编译完再安装的
于是自己写了脚本操作这些要升级的包 保证它们可以编译完一个就安装 免得互次都重make

再就是 有时一个源码包可以生成几个二进制包(xfree86源码包是典型 这个在我电脑上每次编译都需要2个小时
而且多个X的二进制包都是需要它的源码包 慢死
后面发现一次编译完成后可以生成多个包 就直接安装了 使用一次编译好后产生的包 )  
IP: [ ---------- ]   
mushuang Posted: Mar 10 2004, 08:03 PM   


Administrator


Group: Admin
Posts: 262
Member No.: 1
Joined: 10-January 04



去掉-g的perl文件
既然是优化 那-g都没有去掉 也就不叫优化了
使用办法 把/usr/bin/gcc重命名 然后把下面的文件保存成/usr/bin/gcc
chmod +x /usr/bin/gcc
然后可以使用

我安装的是gcc3.3 它的优化效果更好

另外注意的是 编译内核时 需要真正的gcc 到时如果发现内核编译不通过那就换回来好了

CODE  

#!/usr/bin/perl

my @args;
if($ENV{"APT_BUILD_WRAPPER"}){
   my $av;
   foreach $av (@ARGV){
       next  if($av eq '-g');
       if($av =~m"-O\d?"){
           push(@args,"-O3");
           push(@args,"-mcpu=pentium4");
           push(@args,"-march=pentium4");
       }
       else{
           push(@args,$av);
       }
   }
}
else{
   @args=@ARGV;
}
system("/usr/bin/gcc-3.3",@args);


IP: [ ---------- ]   
mushuang Posted: Mar 10 2004, 08:07 PM   


Administrator


Group: Admin
Posts: 262
Member No.: 1
Joined: 10-January 04



编写升级脚本 升级脚本如下
也是使用perl写成
使用时使用
build.pl 包名文件 就可以了
使用时另存为build.pl,chmod +x build.pl


CODE  

#!/usr/bin/perl
#build.perl
open(FI,"$ARGV[0]") or die "open $ARGB[0] failed\n";

my $line;
my @arr;
while($line=<FI>){
   $line=~s/\s\+$//g;
   $line=~s/^\s\+//g;
   my @words=split('\s+',$line);
   push(@arr,@words);
}

foreach $line (@arr){
   next if($line !~m/\w+/);
   print "$line\n";
   system("apt-build install $line ");
}
close(FI);




包名文件如下

CODE  

klogd libgpmg1 libpam-modules man-db netbase po-debconf shellutils slang1
syslinux tcpd telnet tetex-bin textutils




可以使用
apt-build upgrade >packlist生成
然后编辑packlist 把不是包的字去掉
使用时
./build.pl packlist
这样会一个包一个包的安装升级  
IP: [ ---------- ]   
mushuang Posted: Mar 10 2004, 08:10 PM   


Administrator


Group: Admin
Posts: 262
Member No.: 1
Joined: 10-January 04



X的解决
很多x包都是从xfree86源码包中生成的
换句话说 就是xfree86生成多数x相关的二进制包

而x的源码编译需要的时间很长 (2个小时 这样一天也只能编译12个包最多了)

所以为了省时间 可以先apt-build install xfree86-common
成功后
修改/etc/apt-source.list
把除了apt-build的那行去注掉
然后运行apt-get update
apt-get upgrade就能升级  
IP: [ ---------- ]   
mushuang Posted: Mar 10 2004, 08:28 PM   


Administrator


Group: Admin
Posts: 262
Member No.: 1
Joined: 10-January 04



另外操作时 有可能会报
source not found (没有找到对应的源码包)

或是
not need to rebuild (不需要编译)

这些包就使用apt-get install安装
 楼主| 发表于 2004-3-29 12:56:11 | 显示全部楼层
速度可以提升30%

如果觉得速度快的就不用试了 觉得速度不快的可以试试 特别是xfree86
回复

使用道具 举报

发表于 2004-3-29 15:27:47 | 显示全部楼层
太离谱了。。
回复

使用道具 举报

 楼主| 发表于 2004-3-29 15:38:43 | 显示全部楼层
pentium4优化速度会更快 这在启动时就可以体现出来

另外使用gbk也是费资源的东西 改成gb2312后又可以提升速度
最后就是type1字体去掉

在我的站点上有这些介绍
回复

使用道具 举报

发表于 2004-4-27 00:19:12 | 显示全部楼层
rh呢?
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

GMT+8, 2025-2-15 20:51 , Processed in 0.043244 second(s), 15 queries .

© 2001-2025 Discuz! Team. Powered by Discuz! X3.5.

快速回复 返回顶部 返回列表