linux 离线源制作(基本适用所有离线包安装)

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

 

 

  • 1
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值