标签 APT 下的文章

apt-get卸载Apache MySQL PHP

1、卸载Apache2都几个命令

sudo apt-get --purge remove apache2
sudo apt-get --purge remove apache2.2-common

其中remove --purge is equivalent to the purge command. (见man apt-get)

或直接使用一条命令

sudo apt-get autoremove apache2

2、卸载Mysql

sudo apt-get purge mysql-server mysql-server-5.0

3、卸载Php5

sudo apt-get autoremove php5

4、批量删除组件及相关

sudo apt-get remove --purge apache2 apache2-mpm-prefork apache2-utils apache2.2-common libapache2-mod-php5
sudo apt-get remove --purge libapr1 libaprutil1 libdbd-mysql-perl libdbi-perl libmysqlclient15off
sudo apt-get remove --purge libnet-daemon-perl libplrpc-perl libpq5 mysql-client-5.0 mysql-common
sudo apt-get remove --purge mysql-server mysql-server-5.0 php5-common php5-mysql

命令就是这些,具体含义可上网查询。

apt-get限速

先安装wondershaper:

# apt-get install wondershaper

限制上、下行带宽(单位Kb):

# wondershaper eth0 8192 8192

取消限制:

# wondershaper clear eth0

注意这里控制流量的单位是Kb(Kilobit),而不是KB(Kilobyte)。如上面这个例子中的8192就表示限制速度为1024KB也就是1MB。

如果有兴趣,可以vi /usr/sbin/wondershaper 看看这个shell用的程序是tc。

[apt同步问题]apt-mirror: can’t chdir to skel at /usr/bin/apt-mirror line 313.

突然想搞一个ubuntu的套件库(repository)。最近常使用ubuntu,系统安装完后的那些安全升级和一般包的升级需要700MB左右,我们学校上网费用按照流量计算,所以打算做一个本地的apt server,需要一个apt-mirror的工具来同步同步apt server上的文件。做好了拿出来共享给大家那就牛逼啦。

大三上学期的课程1个星期6节,就两科。机房上网是不需要流量的,上机课的时候跑到机房最后一排在移动硬盘上下载安装cygwin(啥是 cygwin?Cygwin is a Linux-like environment for Windows. It consists of two parts:

  • A DLL (cygwin1.dll) which acts as a Linux API emulation layer providing substantial Linux API functionality.
  • A collection of tools which provide Linux look and feel.

)。

本校有个老师做了一个cygwin的套件库镜像:http://cygwin.mirrors.cqit.edu.cn/ 安装的时候选择All->Install 全部安装,下载800MB,安装后解压出来3.75 GB。

具体方法:

1.到官方下载cygwin , http://www.cygwin.com/ 文件大小不超过1MB

2.下载后运行,选择“install from internet”

3.下一步 ,Root Direcotry是安装后的cygwin的根目录,我指定到位置J:\cygwin

4.下一步 ,选择包下载到本地硬盘的位置,我制定到位置J:\cygwin_pkgs

5.下一步,根据需要选择网络连接方式

6.下一步,会在cygwin.com下载mirrors.lst是cygwin软件包服务器列表

7.下一步,输入http://cygwin.mirrors.cqit.edu.cn/ 点“Add”

8.下一步,会下载setup.bz2,这个文件是这个软件包服务器上所提供的软件包列表

9.下一步,选择需要安装的软件包,避免手动安装麻烦,我全部安装上了,点All->Install

10.然后是漫长的下载,安装,运行配置的过程。

11.打开cygwin , 运行apt-mirror直接弹出错误:apt-mirror: can't chdir to skel at /usr/bin/apt-mirror line 313. 我猜想可能是配置文件没有配置好。

12.修改配置文件/etc/apt/mirror.list :

# apt-mirror configuration file

*##

The default configuration options (uncomment and change to override)

取消以下内容前面的

set base_path       /var/spool/apt-mirror
set mirror_path  $base_path/mirror
set skel_path       $base_path/skel
set var_path     $base_path/var*

set defaultarch  amd64
set nthreads     20

*##

Example sources

我改成了ubuntu karmic 的源

deb http://tw.archive.ubuntu.com/ubuntu karmic main universe restricted multiverse
deb http://tw.archive.ubuntu.com/ubuntu karmic-updates universe main multiverse restricted
deb http://tw.archive.ubuntu.com/ubuntu karmic-proposed universe main multiverse restricted
deb http://tw.archive.ubuntu.com/ubuntu karmic-security universe main multiverse restricted
deb http://tw.archive.ubuntu.com/ubuntu karmic-backports main multiverse restricted universe*

*##

Cleaner configuration example

set cleanscript $var_path/clean.sh

需要清理的url*

# Cleaning section

clean http://tw.archive.ubuntu.com/ubuntu

13.运行apt-mirror出现错误:apt-mirror: can't chdir to skel at /usr/bin/apt-mirror line 313.

打开apt-mirror文件,定位到313行:

chdir get_variable("skel_path") or die("apt-mirror: can't chdir to skel");

这是一个perl脚本,出现错误的原因是chdir get_variable("skel_path")这个命令没有执行成功,skel_path这个变量是在mirror.list文件中定义了的,发现目录是:/var/spool/apt-mirror/ 还有其他几个目录,所以执行以下命令:

mkdir -p /var/spool/apt-mirror/mirror
mkdir -p /var/spool/apt-mirror/var
mkdir -p /var/spool/apt-mirror/skel

继续运行apt-mirror成功,接下来就是漫长的下载过程,需要寂寞的等待。因为mirror.list有这么一句:set defaultarch  amd64,所以只会下载amd64构架的包,可以节约不少空间和时间。

虚拟机下架构Lamp开发环境|用debian 40r3 DVDx3制作apt源

因为处在一个网络不可长期在线且上网按流量计费的环境,所以apt-get install xx好像对我来说好像事有点奢侈了,所以下载了三个debian-40r3-i386-DVD的iso镜像

debian-40r3-i386-DVD的iso镜像

恩,这是此文的背景。

接着说搭建lamp开发环境,apt-get install mysql-server的时候发现源里面没有这个包,因为我用的是debian-40r3-i386-DVD-1.iso,其他两个iso还没有用过,不知道里面是否有mysql-server,在windows环境下我用daemon tools挂载了三个iso,然后查找“mysql-server”,结果在第三个iso发现了,因为debian是根据社区的投票来决定软件包的的优先性,我就纳闷了,如此常用的mysql-server怎么到第三个包去了,呵呵。我不可能dpkg -i mysql-server_xxxx.deb来安装吧,那依赖性,我真的是怕了,所以决定把这三个iso做个源。

google了一下,大概的方法就是把三个iso在/etc/fstab写入开机挂载,然后在/etc/apt/sources.list 写入:deb /mnt/iso main contrib 之类的东西,但是问题出来了,三个iso在windows系统下了j盘,vmware下的Linux客户机用的是vmware的hgfs共享方式来加载,也就是说/mnt/hgfs/j/xxx.iso挂载前不知道hgfs是否挂载,我估计没有不然三个iso也没有挂载成功呢。

解决

想到了一个方法,但是很笨,用windows下的daemon tools完成挂载到l m n三个盘,然后用vmware共享到/mnt/hgfs/l ./mnt/hgfs/m . /mnt/hgfs/n目录下,

然后在/etc/apt/sources.list写入:

deb /mnt/hgfs/l/ main contrib
deb /mnt/hgfs/m/ main contrib
deb /mnt/hgfs/n/ main contrib

然后apt-get update,发现dvd-2 和dvd-3 没有contrib类的源,虽然没有影响,但是为了“完美” 却掉了后:最后这样写:

(update:08.6.20)

deb file:///mnt/hgfs/l/ main contrib
deb file:///mnt/hgfs/m/ main
deb file:///mnt/hgfs/n/ main

apt-get install mysql-server

ok 完成。

因为我用windows下的dreamweaver写代码(我不是那些牛淫,直接putty连接用vi,emacs写),所以存在一个文件同步的问题,开始用vsftp,简单的配置了一下vsftpd.conf,虽然怎么搞也上传不了文件,且用了dreamweaver的“站点管理”功能,也不行。不过我想到了一个更好的方法。把apach2的DocumentRoot由默认的/var/www指向windows目录,比如我的f:phptest目录 ,改成/mnt/hgfs/f/phptest/ 嘿嘿,这样就好了,做到了“实时同步”,每次写完ctrl+s保存一下就行了。

LAMP

PS:有人要问:你学php+mysql非要用linux下的吗?windows都有port的啊?

答:我觉得毕竟它们首先在linux开发出来,感觉比较“纯”,比较"正宗",当然以后要是做了linux方面的工作,感觉更容易上手些,当然也不排除装13的嫌疑:)