在生产环境中很少有连接外网的服务器,这里以ansible内网安装为例来介绍。

1、安装ansible(有外网)

1、ansible的安装包存在于ansible的PPA中,如果要下载PPA(个人软件包存档),就必须要使用apt-add-repository这个命令,而software-properties-common软件中包含这个命令,所以下载顺序如下:

root@ubuntu:~# sudo apt install software-properties-common
root@ubuntu:~# sudo apt-add-repository ppa:ansible/ansible
root@ubuntu:~# sudo apt update
root@ubuntu:~# sudo apt install ansible

2、免密设置:我个人做个多次实验,不免密就报错,所以尽量做免密吧。

root@ubuntu:~/ansible2# ssh-keygen
或者
root@ubuntu:~/ansible2# ssh-keygen  -t  rsa
# 然后一路回车就好
ssh-copy-id root@192.168.91.159

注:ssh-copy-id root@192.168.91.159可能会报错,因为Ubuntu默认root做免密,可以换成普通用户,也可以把ansible主机的~/.ssh/id_rsa.pub的内容添加到另一台的~/.ssh/authorized_keys内容后面做成手动免密。还可以对ssh的配置文件进行如下修改/etc/ssh/sshd_config,之后执行ssh-copy-id root@192.168.91.159

# Authentication:
LoginGraceTime 120
PermitRootLogin without-password
StrictModes yes

改成

# Authentication:
LoginGraceTime 120
#PermitRootLogin without-password
PermitRootLogin yes
StrictModes yes

到此,测试ansible可以使用测试命令如下:ansible netflow -m shell -a’date’

2、用deb包安装ansible(内网环境)

离线模式安装ansible,重点在于攻克root@ubuntu:~# sudo apt-add-repository ppa:ansible/ansible这个命令,了解他是干嘛的就可以成功了。好吧我在文章最后在对他就行解释吧,这个难关我没有攻克,于是我决定用ansible的deb包进行安装。
1、在离线机器上的操作

root@ubuntu:~# sudo apt-get --allow-unauthenticated -y install --print-uris ansible | cut -d\' -f2 | grep http:// > /var/tmp/download-list

2、把/var/tmp/download-list传到有网的机器上,然后执行如下操作把所需要的依赖包下载到当前目录,最好在下载一个sshpass的包

sudo wget -i download-list

3、使用dpkg命令进行离线安装

sudo  dpkg  -i   *.deb

注:如果wget下载后提示404等,那么可能是离线服务器的源的问题。把离线服务器换成阿里云源就可以了。
4、依照上面有网的操作做免密。

到此,离线安装结束。

5、不过我还查到一个下载依赖包的好办法(对ansible安装没有成功)

  1. 查看依赖:
apt-cache depends XXX
  1. 递归的方式下载 deb 依赖包
apt-get download $(apt-cache depends --recurse --no-recommends --no-suggests --no-conflicts --no-breaks --no-replaces --no-enhances --no-pre-depends XXX | grep -v i386 | grep "^\w")
  1. 使用dpkg命令进行离线安装:
dpkg -i *.deb

3、总结一下apt-add-repository命令

最近Ubuntu安装ansible遇到了这四个命令

root@ubuntu:~# sudo apt install software-properties-common
root@ubuntu:~# sudo apt-add-repository ppa:ansible/ansible
root@ubuntu:~# sudo apt update
root@ubuntu:~# sudo apt install ansible

1、什么是 PPA?
当你执行sudo apt-add-repository ppa:ansible/ansible的时候, /etc/apt/sources.list 文件中会多出一些URL。/etc/apt/sources.list这便是存储库,我感觉类似于centos的yum源。

当您执行 sudo apt update 命令时,Ubuntu 系统就会使用 APT 工具检查在线存储库,并将有关软件及其版本的信息存储到缓存中。 当您使用 sudo apt install package_name 安装软件时,系统就会使用该信息从存储实际软件的 URL 获取该软件包。

在存储库中添加地址,然后去下载,如果存储库中没有关于某个软件包的信息,终端中将返回以下错误:(感觉非常像yum源)

E: Unable to locate package

2、为什么要使用 PPA?

Ubuntu 的存储库控制着用户可以在系统上获得的软件版本。但如果 ISV 或开发人员发布了软件新版本,Ubuntu 的官方存储库不可能立即提供。为了确保系统稳定性,官方源会检查新版本是否与系统兼容,所以在软件发布新版本后,短时间内用户是无法通过 Ubuntu 的官方存储库来获得最新软件版本的。

3、为什么 PPA 不适用于所有 Ubuntu 发行版?

PPA 意味着个人包存档,请注意个人这个词,它暗示了这是开发人员所独有的东西,并没有得到分发的正式认可。

Ubuntu 提供了一个名为 Launchpad 的平台,让软件开发人员能够创建自己的存储库,方便最终用户将 PPA 存储库添加到 sources.list。当用户更新系统时,Ubuntu 系统就能够知道这个新软件的可用性,而且可以使用标准的 sudo apt install package_name 命令来安装它,就比如:

sudo add-apt-repository ppa:dr-akulavich/lighttable

sudo apt-get update

sudo apt-get install lighttable-installer

将上述命令总结一下就是:

1]、sudo add-apt-repository <PPA_info> 命令可以将 PPA 存储库添加到 sources.list 列表中

2]、sudo apt-get update 此命令更新软件包列表

3]、sudo apt-get install <package_in_PPA> 命令用于安装软件包

现在让我们详细拆解一下:

sudo add-apt-repository ppa:dr-akulavich/lighttable

上述命令中并没有列出存储库的 URL,这是因为该工具旨在对有关 URL 的信息进行抽象化。如果你添加 ppa:dr-akulavich/lighttable,将会获取到 Light Table;如果添加的是 ppa:dr-akulavich,将能够获取到上层存储库中的所有存储库或软件包。

基本上,当您使用 add-apt-repository 添加 PP A时,相当于手动执行类似如下命令:

deb http://ppa.launchpad.net/dr-akulavich/lighttable/ubuntu YOUR_UBUNTU_VERSION_HERE main

deb-src http://ppa.launchpad.net/dr-akulavich/lighttable/ubuntu YOUR_UBUNTU_VERSION_HERE main

上述 2 条命令是将存储库添加到 sources.list 的传统方法,而在添加 PPA 时会自动完成对 sources.list 文件的配置,而无需用户知道确切的存储库 URL 和操作系统版本,相当于是自动化的。

而相当重要的一点就是,使用 PPA 时它不会更改 Ubuntu 系统中的原始 sources.list 配置文件,而是根据最佳实践在 /etc/apt/sources.list.d/ 目录中创建列表文件和对应(save 扩展名)的备份文件。

4、如何下载 PPA
需要在互联网上搜索 PPA 名称,如 ppa:dr-akulavich/lighttable,就可以获得 Launchpad 这一官方 PPA 托管平台中的结果。当然,你也可以直接到 Launchpad 网站中进行搜索。


由于 Gdebi 在处理依赖项方面要好得多,建议使用 Gdebi 而非软件中心来安装这些 DEB 文件。

5、如何删除PPA安装的软件
建议在删除 PPA 之前事先删除通过 PPA 安装的软件,如果你只删除 PPA,则已经安装的软件仍然会保留在系统当中,而且还无法获得任何更新。

那么问题来了,如何判断哪些应用程序是通过 PPA 安装的呢?

1、找出通过PPA安装的软件

Ubuntu软件中心是不包括这个功能的,我们可以通过新立得包管理器来找出通过 PPA 安装的软件:

sudo apt install synaptic

在新立得包管理器中选择源自:如下是启动命令

root@ubuntu:~# synaptic


找到包后,您可以直接用新立得包管理器来删除它们,或者执行终端命令来删除:

sudo apt remove package_name

删除用 PPA 安装的软件包后,您可以继续从 sources.list 中删除 PPA。

2、以图形方式删除PPA

转到软件和更新——然后转到其它软件选项卡——查找要删除的 PPA:


你有两个选择:您取消选择 PPA 或直接用删除选项。

其区别在于:当您取消选择 PPA 条目时,系统会将 /etc/apt/sources.list.d 中的 ppa_name.list 文件注释掉;如果选择删除选项,就会直接删除 /etc/apt/sources.list.d 目录中的 ppa_name.list文件。

ubuntu内网安装软件相关推荐

  1. CISCO内网客户端软件anyconnect-win安装下载

    ❤️CISCO内网客户端软件anyconnect-win安装下载 功能作用:用来连接内网

  2. 内网安装视频会议软件有几个步骤?

    视频会议软件的部署环境一种是在公网,一种是私网.而类似zoom,腾讯,钉钉的视频会议软件是在公网使用的云视频会议软件,在内网安装视频会议软件可以选择rhub连通宝. 在内网安装的视频会议软件保密性强, ...

  3. 内网安装管家婆软件如何实现外网访问?内网穿透的几种方案教程

    管家婆软件从网络架构上分两种版本:web(浏览器http端口)访问的版本和客户端(211固定端口+sqlserver数据库)访问的版本.公司库管经常用仓库登录管家婆,一旦需要在公司外部登陆访问管家婆客 ...

  4. Java实现Http代理服务器通过http代理进行内网安装yum软件

    Java实现Http代理服务器&通过http代理进行内网安装yum软件 1.Http代理服务器简介 2.Http代理服务器Java实现 2.1 Java源码 2.2 代码分析说明 3.通过ht ...

  5. ddns与内网穿透软件

    ddns与内网穿透软件 ZeroTier(推荐) 注册服务端 注册客户端 其他一些命令 moon服务器 花生壳 Frp 参考 ZeroTier(推荐) ZeroTier属于一个点对点的虚拟网络(P2P ...

  6. ubuntu 20.04 安装软件踩坑

    ubuntu 20.04 安装软件踩坑 1.搜狗输入法 安装后需要重启一次 重启后讲sogoupinyin添加好,右上角如果没有搜狗就再重启一下 右上角出现了搜狗也是打不出中文的,因为没有安装依赖 安 ...

  7. Ubuntu内网穿透搭建网站:设置跳转本地网页服务 6/17

    系列文章 Ubuntu内网穿透搭建网站:建立本地数据库 1/17 Ubuntu内网穿透搭建网站:安装WordPress 2/17 Ubuntu内网穿透搭建网站:设置WordPress连接数据库 3/1 ...

  8. 内网穿透软件对比——cpolar : 网云穿(上)

    系列文章 内网穿透软件对比--cpolar : 网云穿(上) 内网穿透软件对比--cpolar : 网云穿(中) 内网穿透软件对比--cpolar : 网云穿(下) 文章目录 系列文章 1. 前言 2 ...

  9. 使用VNC远程连接Ubuntu - 内网穿透实现公网远程办公

    写在前面:博主是一只经过实战开发历练后投身培训事业的"小山猪",昵称取自动画片<狮子王>中的"彭彭",总是以乐观.积极的心态对待周边的事物.本人的技 ...

最新文章

  1. iOS 网络状态判断方案(支持iOS11和iPhoneX)
  2. javascript系列-class10.DOM(下)
  3. Java 集合Collection图解
  4. 分布式Matlab计算集群建立方法与Demo
  5. 前端学习(3094):vue+element今日头条管理-反馈
  6. html5登录界面源代码_最新版本尤娜博客已更新源代码(速拿!!!)
  7. SQLyog 安装过程
  8. 图像分割中的深度学习:U-Net 体系结构
  9. Mybatis的resultMap自定义映射
  10. poj 2236 WirelessNetwork 并查集
  11. PHP 基础知识测试题
  12. c语言排队系统,【分享】C语言 银行取票排队系统
  13. Code Review 是一场苦涩但有意思的修行 | 凌云时刻
  14. mac上最好用的免费PDF阅读器是哪个
  15. 条件数、奇异值与海森矩阵
  16. 变点理论CUSUM在择时交易中的应用
  17. r 选取从小到大的数据_r 选取表格的一列数据库
  18. java 定义类私有类_关于java:为什么不能将一个类定义为protected?
  19. MySQL数据库视图:视图定义、创建视图、修改视图
  20. 微信的服务器数量限制,微信时刻视频最多可以发几个 发布数量限制多少

热门文章

  1. 专精特新“小巨人”2022年融资金额百强榜
  2. oracle+12514+C#,Oracle10g ORA-12514
  3. 用ShareSDK for Unity分享屏幕截图(android和ios平台)
  4. 哈希加密---bcrypt
  5. 为什么需要建设海绵城市?
  6. smb v2到底是快还是慢?如何禁用呢
  7. 漫步者蓝牙耳机w800x看油管视频自动关机问题解决办法
  8. 【我的Android进阶之旅】解决Android项目编译报错: Program type already present : com.xxx.xxxx.BuildConfig
  9. html文本如何添加空白页,如何在Word文档中添加空白页?
  10. centos7修改mysql初始密码