apt的一些命令:
apt-get的卸载相关的命令有remove/purge/autoremove/clean/autoclean等。具体来说:
apt-get purge / apt-get --purge remove
删除已安装包(不保留配置文件)。
如软件包a,依赖软件包b,则执行该命令会删除a,而且不保留配置文件
apt-get autoremove
删除为了满足依赖而安装的,但现在不再需要的软件包(包括已安装包),保留配置文件。
apt-get remove
删除已安装的软件包(保留配置文件),不会删除依赖软件包,且保留配置文件。
apt-get autoclean
APT的底层包是dpkg, 而dpkg 安装Package时, 会将 *.deb 放在 /var/cache/apt/archives/中,apt-get autoclean 只会删除 /var/cache/apt/archives/ 已经过期的deb。
apt-get clean
使用 apt-get clean 会将 /var/cache/apt/archives/ 的 所有 deb 删掉,可以理解为 rm /var/cache/apt/archives/*.deb。
# 删除软件及其配置文件
apt-get --purge remove <package>
# 删除没用的依赖包
apt-get autoremove <package>
# 此时dpkg的列表中有“rc”状态的软件包,可以执行如下命令做最后清理:
dpkg -l |grep ^rc|awk '{print $2}' |sudo xargs dpkg -P
当然如果要删除暂存的软件安装包,也可以再使用clean命令。
查找通过apt命令已安装软件
apt list --installed | grep xxx
一:通过apt-get下载所需软件包;
apt-cache search XXX (查找XXX有哪些软件包),找到XXX 软件,然后执行apt-get -d install XXX,执行完后,XXX的依赖包就会下载保存在/var/cache/apt/archives里面;
1.根目录/下新建一个文件夹
mkdir AAA
2.将下载的deb包拷贝到上述新建的文件夹下
cp -r /var/cache/apt/archives /AAA
3.修改文件夹的权限,可读可写可执行
chmod 777 -R /AAA/
4.建立deb包的依赖关系
dpkg-scanpackages/AAA/ /dev/null |gzip >/AAA/Packages.gz -r
如果出现错误:sudo:dpkg-scanpackages: command not found
则需要安装dpkg-dev工具:
apt-getinstall dpkg-dev
5.将生成的Packages.gz包复制到和deb同目录下
cp /AAA/Packages.gz /AAA/archives/Packages.gz
6.打包成压缩包,以备后用
tar cvzf AAA.tar.gz/AAA/
保存AAA.tar.gz文件到U盘或服务器
二:在另外一台没有网络的Ubuntu上离线安装
1.插入U盘或光盘,将AAA.tar.gz复制到根目录下,解压
tar -xvf AAA.tar.gz
2.将安装包所在和源路径添加到系统源source.list
#备份一下
cp /etc/apt/sources.list /etc/apt/sources.list.bak
#清空源文件
echo > /etc/apt/sources.list
#添加本地源路径进去
vi /etc/apt/sources.list
#插入下列语句
deb file:///AAA/ archives/
3.更新系统源
apt-get update
4.离线安装
此时,在没有网络的情况下,我们就可以安装我们之间下载的AAA软件了
apt-get install AAA
PS :
1:在update andinstall过程中可能会报错,就是因为文件夹路径需要做下调整,现在路径是/ AAA/,那就再复制一份/ AAA/所有内容至/ AAA/ AAA/下面即可;
2:其他所有包安装都可以以这样方式制作离线源;
另外一种:trivial archive仓库搭建
这种仓库不采用pool结构,文件组织结构如下:
```
|--Packages
|--****.deb
|---***.deb
```
#生成trivial archive仓库步骤
假设我们所有的deb存在于deb目录下
假设我们的deb目录在/目录下
1. 首先进入deb目录 cd /deb
2. 生成Packages文件
```
dpkg-scanpackages -m . > Packages
```
apt工具会从每个软件源导入Packages文件。apt
将更据Packages文件中的内容了解仓库中包的版本
状态。
3. 创建Release文件
```
apt-ftparchive release ./ > Release
```
高版本中需提供Release文件。包含了Packages等文件的大小和校验和。
使用的时候只需要在/etc/apt/source.list
中添加
deb [trusted=yes] file:/deb ./
apt-get clean #清空/var/cache/apt/archives里的*.deb文件
apt-get update #会下载所有的*.deb文件到/var/cache/apt/archives里,有几百个吧,需要等一等
#需要先卸载再安装snmp , snmp 的相关*.deb文件才会下载到/var/cache/apt/archives里
apt-get --purge remove snmp
apt-get -d install snmp #这个命令貌似不能更新*.deb文件到/var/cache/apt/archives里
cd /
mkdir aptstore
cp -r /var/cache/apt/archives /aptstore
chmod 777 -R /aptstore/
cd /aptstore/archives
2. 生成Packages文件
```
dpkg-scanpackages -m . > Packages
```
apt工具会从每个软件源导入Packages文件。apt
将更据Packages文件中的内容了解仓库中包的版本
状态。
3. 创建Release文件
```
apt-ftparchive release ./ > Release
```
高版本中需提供Release文件。包含了Packages等文件的大小和校验和。
chmod 777 -R /aptstore/
然后把aptstore目录打包成aptstore.tar.gz
使用
把aptstore.tar.gz解压到根目录/下,然后
cp /etc/apt/source.list /etc/apt/source.list.back
使用的时候只需要在/etc/apt/source.list
中添加
gedit /etc/apt/sources.list
修改为
deb [trusted=yes] file:///aptstore/archives/ ./
apt-get clean
apt-get update
apt-get install snmp