Ubuntu通过apt-get安装指定版本和查询指定软件有多少个版本

一、通过apt-get安装指定版本

二、查询指定软件有多少个版本

说明:在Linux用这个查询并不能完全的把所有版本都列举出来,因为每个版本都与系统版本和CPU架构有关,比如一个软件支持Ubuntu系统的16.04的CPU架构为amd64的版本只有1.0和1.2,其余都不支持,所以列举时就只有两款。

列举版本列表:

0、通过网站搜索:

https://packages.ubuntu.com/

1、

将列出所有来源的版本。如下输出所示:

madison 是一个 apt-cache 子命令,可以通过 man apt-cache 查询更多用法。

2、

将列出所有来源的版本。信息会比上面详细一点,如下输出所示:

policy 是一个 apt-cache 子命令,可以通过 man apt-cache查询更多用法。

3、

4、

说明:这个命令只是模拟安装时会安装哪些软件列表,但不会例举出每个软件有多少个版本

5、

参考:https://manpages.debian.org/unstable/aptitude/aptitude.8.en.html

6、

说明:列举出所有版本,且能查看是否已经安装。还可以通过apt-show-versions -u <>来查询是否有升级版本。

参考:http://manpages.ubuntu.com/manpages/trusty/man1/apt-show-versions.1p.html

7、

8、

单个详情:

1、

说明:查询指定包的详情,不管是否已经安装。

2、

说明:效果和上面基本一致,但是结果是列表详情展示,会提示是否已经删除了之后还有依赖包没有删除等。

3、

说明:必须是安装的包才能显示详情。

4、

说明:同上,效果一致。

使用技巧:

1、可以在查询后面带上一些参数来实现筛选

参考链接


Ubuntu通过apt-get安装指定版本和查询指定软件有多少个版本

Ubuntu 16.04.5系统上的/var/log/btmp日志

刚发现 /var/log/btmp 这个文件有好几个 G 的大小,搜了下关于 btmp 文件的信息:

/var/log/btmp这个文件记录错误的登录尝试,执行lastb命令就可以查看到最近不成功的登录尝试.

如果文件太大可删除了再重新生成一个新的空文件。

参考链接


家里ADSL上网无固定外网IP的群晖NAS安全实现与公网MySQL服务器主从同步

家里 ADSL 上网,没有办法分配固定外网 IP ,现在想使用群晖自带的MariaDB 安全实现与公网 MySQL 服务器主从同步。

最大的问题实际上是如果暴漏 MySQL 服务器的端口,但是不限制来源 IP 地址的话,会造成非常大的安全隐患。

但是, ADSL 恰恰不能提供固定的 IP 地址,我们需要解决这个问题。如果通过在公网数据库服务器上搭建 OpenVPN 服务器的方式,我们恰恰可以把内外网的设备影射到同一个子网中,而且 OpenVPN 提供的加密服务支持,刚刚好满足我们的安全需求。

1. 参考 Ubuntu架设OpenVPN实现内网穿透 搭建整个的 OpenVPN 服务器。映射完成后,设备上会新增一个名为 tun0 的网卡设备。同时所有连接到 VPN 服务器的设备都被被影射到 10.8.0.X 的网段。 公网服务器的地址默认是 10.8.0.1,本文中, 群晖NAS的地址被设定为 10.8.0.7

2. 配置防火墙规则,许可来自指定网卡指定地址的设备的访问。注意,此处一定要指定网卡为 OpenVPN 创建的虚拟网卡,否则造成安全隐患。

3. 参照 ubuntu 16.04配置基于SSL的MySQL主从同步 配置服务器

4. 接下来是群晖NAS的配置

首先是群晖服务器上没有 MySQL,需要安装 MariaDB ,如下图:
继续阅读家里ADSL上网无固定外网IP的群晖NAS安全实现与公网MySQL服务器主从同步

ubuntu 18.04启动samba图形管理界面


参考链接


ubuntu 16.04/18.04配置远程桌面访问

远程桌面在 Linux 中一般使用 VNC ,下面我们总结一下 ubuntu 16.04/18.04 下的配置总结:

设置开机启动

里面内容如下:

配置 systemd 启用服务

参考链接


ubuntu 16.04.5升级到ubuntu 18.04启动时出现"No symbol table found."

ubuntu 16.04.5 升级到 ubuntu 18.04.1 启动时出现 "Error: no symbol table"

重启之后,出现错误信息

不做任何操作,过几秒之后,能跳过。

解决方法如下:

参考链接


ubuntu 16.04.5升级到ubuntu 18.04出现systemd-shim升级失败

ubuntu 16.04.5 升级到 ubuntu 18.04.1 出现 systemd-shim 升级失败,重启系统之后,继续执行软件升级,出现如下错误信息:

如果语言是英文的,可能会出现如下信息:

解决方案如下:

参考链接


在Ubuntu 16.04 LTS上安装OpenGrok-1.2.8浏览Android源码

OpenGrok 是一个快速,便于使用的源码搜索引擎与对照引擎,它能够帮助我们快速的搜索、定位、对照代码树。接下来就具体讲解 Ubuntu 16.04 LTS 环境下 OpenGrok 的安装及使用,目前最新的 OpenGrok 1.2.8 依赖 Java 1.8 , Tomcat 8

1.依旧参照 UBUNTU 13.10 APACHE 2.2 通过 AJP 整合 TOMCAT 7 中讲述的方法,进行 Tomcat 8Apache 2.4的配置安装,只不过路径中的 Tomcat7 目录替换成 Tomcat8

2.安装 Tomcat 8

3.安装 universal-ctags 用于对 C\C++ 代码的支持

给代码建立索引时,要使用到universal-ctags工具,但是一般通过apt-get安装的都是exuberant-ctags,所以要先删除原有的ctags版本,然后安装universal-ctags.

4.下载并安装OpenGrok

可以到"https://oracle.github.io/opengrok/"手工下载文件,然后上传到服务器,也可以直接用wget命令来下载,一般选择安装在"/opt"目录下面。

解压缩文件到当前目录"/opt"

创建一个软链接,方便后续的修改

链接"/opt/opengrok/lib/source.war"到 Tomcat8 的工程目录"/var/lib/tomcat8/webapps/",比如我们有多个源代码工程,建议进行链接操作。如下:

访问"http://localhost:8080/source/"确认OpenGrok是否已经安装成功,如果安装成功,出现下面的界面:OpenGrok

5.出于安全原因,禁止外网访问Tomcat的8080端口

只允许Tomcat在本地的8080端口监听即可,修改

添加 address="127.0.0.1"

重启Tomcat8

6.配置Apache2对Tomcat通过AJP进行反向代理

Apache2 的配置文件“ /etc/apache2/sites-available/000-default.conf” (如果开启了HTTPS,则需要同步修改 /etc/apache2/sites-available/000-default-le-ssl.conf 或者 /etc/apache2/sites-available/default-ssl.conf) 中,增加如下配置:

Tomcat8 的配置文件/var/lib/tomcat8/conf/server.xml中增加如下配置,解决跳转404问题。ProxyPass后面必须携带“/”,否则就会出现404问题。

7.配置OpenGrok对源代码进行解析

设置要建立索引的源代码目录的位置,以存储在"/data/OpenGrok/Android_4.2.2"上的Android代码为例子:

注意:

由于我们使用了Apache2的反向代理才需要设置 OPENGROK_WEBAPP_CONTEXT,如果没有设置反向代理,请不要设置 OPENGROK_WEBAPP_CONTEXT 内容就是在 Apache2 中设置的 ProxyPassReverse 指定的参数。

在使用反向代理的时候如果不设置OPENGROK_WEBAPP_CONTEXT会导致在点击具体的变量定义的时候,出现404.

不使用反向代理的时候请只设置OPENGROK_INSTANCE_BASE

创建源代码索引

执行时间在40分钟左右,执行完成 。(如果通过SSH远程登录,可能会出现中途连接断开的情况,原因为某项操作比较耗时,导致长时间没有数据通信,网络超时断开。 参考 Linux SSH保持连接(解决Broken pipe))生成的索引文件在源代码的"data"目录下面,重建索引的时候需要执行如下操作,才能再次建立索引

注意,请务必删除源代码中的"prebuilts"目录,这个目录下面存储的是一系列的编译工具,在浏览代码的时候,完全用不上,但是占据的磁盘空间确是巨大的。

注意,如果服务器上面的内存比较有限,请使用如下命令进行内存限制,否则建立索引的时候,会触发内存不足的情况:

修改OpenGrok配置文件

修改其中的

为具体的工程目录"/data/OpenGrok/Android_4.2.2",修改后的配置如下:

刷新浏览器,可以看到Android_4.2.2的源码可以搜索出来了。

参考链接