yum
yum工具命令,安装软件过程。
资源
https://www.cnblogs.com/G-Aurora/p/13166168.html
yum-config-manager
yum-config-manager: command not found,这个是因为系统默认没有安装这个命令,这个命令在yum-utils 包里,按一下安装。
yum -y install yum-utils
添加仓库
参见docker-ce安装
安装rpm包
rpm包也能用yum的方式安装,会自动安装相关的依赖。
示例如:
wget https://dl.grafana.com/enterprise/release/grafana-enterprise-8.1.2-1.x86_64.rpm
sudo yum install grafana-enterprise-8.1.2-1.x86_64.rpm
https://www.php.cn/blog/detail/15883.html
wget -i -c http://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm
# 貌似下面的只是添加了仓库的镜像。
yum -y install mysql57-community-release-el7-10.noarch.rpm
yum -y install mysql-community-server
rpm包查询
http://rpmfind.net/linux/rpm2html/search.php
错误
rpmdb open failed
错误日志如下:
error: rpmdb: BDB0113 Thread/process 9631/140207785715776 failed: BDB1507 Thread died in Berkeley DB library
error: db5 error(-30973) from dbenv->failchk: BDB0087 DB_RUNRECOVERY: Fatal error, run database recovery
error: cannot open Packages index using db5 - (-30973)
error: cannot open Packages database in /var/lib/rpm
CRITICAL:yum.main:
Error: rpmdb open failed
解决方式:
cd /var/lib/rpm
# 清除原rpmdb文件
rm -f __db.*
# 重建rpm数据库
rpm --rebuilddb
# 清除所有yum的缓存
yum clean all
# 测试安装
yum install -y pssh
apt
https://mirrors.cloud.tencent.com/help/ubuntu.html
# 设置腾讯云的源
# 16.04
wget -O /etc/apt/sources.list http://mirrors.cloud.tencent.com/repo/ubuntu16_sources.list
# 20.04
wget -O /etc/apt/sources.list http://mirrors.cloud.tencent.com/repo/ubuntu20_sources.list
# 更新缓存
apt-get clean all
apt-get update
通过 PPA 安装指定或最新版本的 nodejs
https://www.cnblogs.com/forheart/p/13203249.html
PPA 的全称为 personal package archive 。
cd ~
# setup 最新 setup_12.x
curl -sL https://deb.nodesource.com/setup_12.x | sudo bash -
sudo apt update
sudo apt install nodejs # 会更新旧的安装包
卸载
执行如下命令:
sudo apt remove nodejs
此命令会卸载 nodejs,但是会保留配置文件,方便你以后再次安装 nodejs。
如果不想保留配置文件,继续执行:
sudo apt purge nodejs
这将会卸载 nodejs 和其相关的配置文件。
最后,你还可以移除和 nodejs 一起安装但是现在没有被使用的包:
sudo apt autoremove
代理
比如,在不能访问外网的机器上,通过在能访问外网的机器上,通过端口转发来代理,以实现yum源的自由。
备注:代理80端口,这个能理解,但是,记得https要通过443端口,80、443端口均要代理。
备注排查过程:repo文件里面都是http协议,然后会经过一次重定向到443端口,重定向后无法访问,导致我误以为https不能被转发,实际上到了tcp层面,https的协议只是签名。这说明,网络基础有点差。另外,使用nginx等等也是可转发的。只是socat用在这种纯tcp的转发,更方便快捷一些。而且也方便安装。
# 可访问外网的机器,做转发使用
socat tcp4-listen:80,reuseaddr,fork, tcp:mirrors.cloud.tencent.com:80
socat tcp4-listen:443,reuseaddr,fork, tcp:mirrors.cloud.tencent.com:443
# 以下均在目标机器上
# 增加域名映射,否则,要修改repo里面的域名。备注。ip为上一步的ip
echo 10.xx.186.xx mirrors.cloud.tencent.com >> /etc/hosts
# 先备份,再下载
mkdir -p /etc/yum.repos.d/bak3
mv /etc/yum.repos.d/*.repo /etc/yum.repos.d/bak3/
curl -o /etc/yum.repos.d/centos7_base.repo http://mirrors.cloud.tencent.com/repo/centos7_base.repo
yum clean all
yum update