ubuntu内网安装软件
在生产环境中很少有连接外网的服务器,这里以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安装没有成功)
- 查看依赖:
apt-cache depends XXX
- 递归的方式下载 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")
- 使用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内网安装软件相关推荐
- CISCO内网客户端软件anyconnect-win安装下载
❤️CISCO内网客户端软件anyconnect-win安装下载 功能作用:用来连接内网
- 内网安装视频会议软件有几个步骤?
视频会议软件的部署环境一种是在公网,一种是私网.而类似zoom,腾讯,钉钉的视频会议软件是在公网使用的云视频会议软件,在内网安装视频会议软件可以选择rhub连通宝. 在内网安装的视频会议软件保密性强, ...
- 内网安装管家婆软件如何实现外网访问?内网穿透的几种方案教程
管家婆软件从网络架构上分两种版本:web(浏览器http端口)访问的版本和客户端(211固定端口+sqlserver数据库)访问的版本.公司库管经常用仓库登录管家婆,一旦需要在公司外部登陆访问管家婆客 ...
- Java实现Http代理服务器通过http代理进行内网安装yum软件
Java实现Http代理服务器&通过http代理进行内网安装yum软件 1.Http代理服务器简介 2.Http代理服务器Java实现 2.1 Java源码 2.2 代码分析说明 3.通过ht ...
- ddns与内网穿透软件
ddns与内网穿透软件 ZeroTier(推荐) 注册服务端 注册客户端 其他一些命令 moon服务器 花生壳 Frp 参考 ZeroTier(推荐) ZeroTier属于一个点对点的虚拟网络(P2P ...
- ubuntu 20.04 安装软件踩坑
ubuntu 20.04 安装软件踩坑 1.搜狗输入法 安装后需要重启一次 重启后讲sogoupinyin添加好,右上角如果没有搜狗就再重启一下 右上角出现了搜狗也是打不出中文的,因为没有安装依赖 安 ...
- Ubuntu内网穿透搭建网站:设置跳转本地网页服务 6/17
系列文章 Ubuntu内网穿透搭建网站:建立本地数据库 1/17 Ubuntu内网穿透搭建网站:安装WordPress 2/17 Ubuntu内网穿透搭建网站:设置WordPress连接数据库 3/1 ...
- 内网穿透软件对比——cpolar : 网云穿(上)
系列文章 内网穿透软件对比--cpolar : 网云穿(上) 内网穿透软件对比--cpolar : 网云穿(中) 内网穿透软件对比--cpolar : 网云穿(下) 文章目录 系列文章 1. 前言 2 ...
- 使用VNC远程连接Ubuntu - 内网穿透实现公网远程办公
写在前面:博主是一只经过实战开发历练后投身培训事业的"小山猪",昵称取自动画片<狮子王>中的"彭彭",总是以乐观.积极的心态对待周边的事物.本人的技 ...
最新文章
- iOS 网络状态判断方案(支持iOS11和iPhoneX)
- javascript系列-class10.DOM(下)
- Java 集合Collection图解
- 分布式Matlab计算集群建立方法与Demo
- 前端学习(3094):vue+element今日头条管理-反馈
- html5登录界面源代码_最新版本尤娜博客已更新源代码(速拿!!!)
- SQLyog 安装过程
- 图像分割中的深度学习:U-Net 体系结构
- Mybatis的resultMap自定义映射
- poj 2236 WirelessNetwork 并查集
- PHP 基础知识测试题
- c语言排队系统,【分享】C语言 银行取票排队系统
- Code Review 是一场苦涩但有意思的修行 | 凌云时刻
- mac上最好用的免费PDF阅读器是哪个
- 条件数、奇异值与海森矩阵
- 变点理论CUSUM在择时交易中的应用
- r 选取从小到大的数据_r 选取表格的一列数据库
- java 定义类私有类_关于java:为什么不能将一个类定义为protected?
- MySQL数据库视图:视图定义、创建视图、修改视图
- 微信的服务器数量限制,微信时刻视频最多可以发几个 发布数量限制多少
热门文章
- 专精特新“小巨人”2022年融资金额百强榜
- oracle+12514+C#,Oracle10g ORA-12514
- 用ShareSDK for Unity分享屏幕截图(android和ios平台)
- 哈希加密---bcrypt
- 为什么需要建设海绵城市?
- smb v2到底是快还是慢?如何禁用呢
- 漫步者蓝牙耳机w800x看油管视频自动关机问题解决办法
- 【我的Android进阶之旅】解决Android项目编译报错: Program type already present : com.xxx.xxxx.BuildConfig
- html文本如何添加空白页,如何在Word文档中添加空白页?
- centos7修改mysql初始密码