ubuntu无网络安装gcc/make/telnet

需要一台可联网 ubuntu 服务器(尽量与无网络服务器版本一致)

有网服务器

更新源/安装依赖
# 更新源
sudo apt-get update

# apt-rdepends 可以查看依赖及依赖的依赖
# 这个工具可以创建完整的依赖树
sudo apt-get install -y apt-rdepends

# 建立deb包的依赖关系的时候可能会报错 需要安装这个
sudo apt-get install -y dpkg-dev

# 在无网服务器中 make 的时候可能会报错需要安装 libc6-dev 和它的依赖包
sudo apt-get download $(apt-rdepends libc6-dev|grep -v "^ ")
安装gcc和make
# 同时下载gcc的所有依赖包
sudo apt-get download $(apt-rdepends gcc|grep -v "^ ")

sudo apt-get install -y make

# 下载的依赖包会保存在 /var/cache/apt/archives 里面
安装telnet
# 输出空,则没有安装telnet
netstat -a | grep telnet

# 安装telnet
sudo apt-get install -y openbsd-inetd

sudo apt-get install -y telnetd

sudo apt-get install -y xinetd

# 需要检查openbsh-inted配置文件 
cat /etc/inetd.conf
# 注意安装顺序是否和下面是否一致
# telnet  stream  tcp  nowait  telnetd /usr/sbin/tcpd  /usr/sbin/in.telnetd

# 查看状态
service xinetd status

# (注意如果/etc/inetd.conf 有那条记录可以不重启)启动服务
/etc/init.d/openbsd-inetd restart 

# 查看telnet 运行端口
netstat -anpt|grep 23

# 测试是否可以登录(在别的机器上登录)
telnet ip
生成依赖关系
# [根目录]新建文件夹
sudo mkdir offlinePackage

# 将下载的 deb 包拷贝到新建文件夹中
sudo cp -r /var/cache/apt/archives /offlinePackage

# 修改文件夹的权限
sudo chmod -R 777 /offlinePackage/

# 建立 deb 包的依赖关系
sudo dpkg-scanpackages /offlinePackage/ /dev/null |gzip >/offlinePackage/Packages.gz -r
# 如果出现错误:sudo: dpkg-scanpackages: command not found
# 则需要先安装 dpkg-dev 工具
# sudo apt-get install dpkg-dev

# 将生成的 Packages.gz 包复制到和 deb 同目录下
sudo cp /offlinePackage/Packages.gz /offlinePackage/archives/Packages.gz

# 打成压缩包 备用 (打包前 请先看下面)
sudo tar -cvzf offlinePackage.tar.gz offlinePackage/

#####################################################################
# 有个问题 在无网络服务器中安装时 会报文件位置错误
# 所以需要把 offlinPackage 自身整个文件 copy 一份进 offlinPackage 里
# 然后再打包
# 目录如下:

├── /                          ## 根目录 
│   ├── offlinPackage          ## offlinPackage
│       ├── archives           ## deb包目录
|           ├── xxx.deb        ## deb包
|           ├── Packages.gz    ## 依赖关系
│       ├── offlinPackage      ## offlinPackage copy
│           ├── archives       ## deb包目录
|           ├── Packages.gz    ## 依赖关系
│       └── Packages.gz        ## 依赖关系

#####################################################################

无网服务器

将在有网服务器中生成的offlinePackage.tar.gz上传至无网服务器

更新系统源
# 将 offlinePackage.tar.gz 复制到[根目录]并解压
sudo tar -xzvf offlinePackage.tar.gz

# 备份原来的源
sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak

# 编辑系统源
sudo vi /etc/apt/sources.list
# 在最后加入
# deb file:///offlinePackage archives/
# 注意:把其他 deb 全部注释掉

# 更新系统源
sudo apt-get update
# 可能会出现问题,以下是解决办法
sudo apt-get update --allow-insecure-repositories
sudo apt-get install -f
sudo apt-get update --allow-unauthenticated
# 注意:
#   本地的源是没有签名的,
#   直接更新ubuntu1604下的apt会提示找不到release文件,是一种不安全的源,默认是被禁用的。
#   如果还要安装的话需要加上这个 --allow-unauthenticated选项。
离线安装
# make 的时候可能会报错 需要安装这个
sudo apt-get install libc6-dev

# 此时就可以离线安装gcc和make了(不需要编译)
# 这里下载不能加 -y 因为是从咱的文件中安装 属于未验证安装包 加 -y 会报错
sudo apt-get install gcc
sudo apt-get install make
# 注意:这里就会报在(有网服务器->生成依赖关系)中说的文件位置错误。
# 查看是否安装成功
gcc -v
make -v

# 还有可能出现另一种错误
# You will have to enable the component called 'main'
# 解决方法:sudo add-apt-repository main


# 安装telnet
sudo apt-get install openbsd-inetd

sudo apt-get install telnetd

sudo apt-get install xinetd
  • 2
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值