1. 程式人生 > 其它 >yum快取,和烏班圖搭建java部落格系統

yum快取,和烏班圖搭建java部落格系統

331linux筆記

解決,關於yum快取包的理解(自己搭建yum倉庫)

當你拿到一個初始化的機器,預設安裝的軟體(centos上的rpm格式的軟體)數量可能很少

導致你後期使用各種工具,會報錯,比如python呼叫gzip解壓縮功能

ssh遠端登入呼叫資料加密功能,openssl沒裝
nginx > http > https(http+openssl資料加密功能)
1.準備一個初始化的安裝的機器,因為它缺少很多工具包

yum install gcc patch libffi-devel python-devel zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel net-tools vim -y

辦法1,掛載本地光碟作為yum倉庫(沒有光碟機,沒法用光碟)
辦法2,自己提前準備好所需的rpm包,通過usb 介面,把rpm包考過去,安裝

2.還要關注你用的yum源是誰,我這個機器用的是centos官方的,你可以更換為阿里雲的



3.linux僅下載rpm包,而不安裝
yum install --downloaddir=/opt/base_rpm/ --downloadonly gcc patch libffi-devel python-devel zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel net-tools vim -y

4.檢查下載好的本地rpm包
[root@client-242 opt]# ls base_rpm/ |wc -l
90


5.此時該如何批量安裝這些rpm包呢?
該如何用如下這個命令,安裝上述我下載好的rpm包,在一個離線的環境

yum install gcc patch libffi-devel python-devel zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel net-tools vim -y

辦法是?
自建yum倉庫資料夾

6.你得準備好這些rpm包,存放於一個目錄
ls /opt/base_rpm

7.使用createrepo命令,將這個目錄,改造為yum可識別的一個倉庫目錄,它會生成repodata資料夾

createrepo /opt/base_rpm

8.建立本地yum倉庫檔案,去找這些rpm包了,找本地的yum倉庫資料夾
[root@client-242 yum.repos.d]# cat local_dir.repo 
[local_dir]
name=local dir base rpm
baseurl=file:///opt/base_rpm
enabled=1
gpgcheck=0


9.注意清空yum快取(因為,系統中現有的,是centos7官方的一些rpm包快取資料)
yum clean all

[root@client-242 yum.repos.d]# yum clean all
Loaded plugins: fastestmirror
Cleaning repos: local_dir
Cleaning up everything


Maybe you want: rm -rf /var/cache/yum, to also free up space taken by orphaned data from disabled or removed repos
Cleaning up list of fastest mirrors
[root@client-242 yum.repos.d]# 
[root@client-242 yum.repos.d]# 
[root@client-242 yum.repos.d]# rm -rf /var/cache/yum

這裡的快取分為兩種
一個是記憶體快取,是通過yum clean all
一個是持久化儲存的快取,以及寫入到磁碟了 rm -rf /var/cache/yum


10.才是一個乾淨的機器,可以去裝軟體


11.總結
等於自定義了一堆rpm包,給了一個斷網的機器,且沒有用光碟的機器,安裝了這些工具包

yum安裝本地資料夾的rpm包引數

yum 的引數

    localinstall
              Is used to install a set of local rpm files. If required the enabled repositories will be used to resolve dependencies. Note that the install command will do a local install, if  given
              a filename. This command is maintained for legacy reasons only.


用法
yum localinstall  xx.rpm

如何檢查rpm軟體依賴

上面兩種要求該軟體,在機器上以及安裝了
1.針對以安裝的rpm程式(以及在你機器上裝好來的,rpm軟體)
[root@client-242 yum.repos.d]# rpm -qR vim-enhanced


2.安裝工具 rpmreaper
sudo yum install rpmreaper
rpmreaper會向用戶顯示已安裝包的列表,顯示他們的依賴關係




(不要求安裝,直接去yum源倉庫中,檢索他們的依賴關係)
3.使用repoquery工具來羅列包的依賴關係,軟體名字得正確,先yum list看看
# 安裝如下工具包,即可使用
yum install yum-utils

# 前提是你的yum倉庫中有這個軟體包。且名字不能錯
[root@client-242 yum.repos.d]# repoquery --requires --resolve nginx


如何yum獲取rpm包

僅僅是下載rpm包,不安裝

1.使用yumdownloader工具(前提是,配置好yum倉庫源)
yum install yum-utils

2.僅僅下載linux的軟體rpm包
# --destdir 也是指定一個rpm包存放的路徑
[root@client-242 yum.repos.d]# yumdownloader --destdir=/opt/mysql mysql



3.以及學過了的是?
# --downloadonly   預設是把rpm包,放到/var/cache/yum/
yum install --downloadonly   --downloaddir=/opt/my_rpm/  nginx


配置阿⾥雲yum源,以及epel源,僅僅且保留nginx的rpm包快取

到/opt/nginx_rpm/

[root@client-242 ~]# yumdownloader --destdir=/opt/nginx_rpm nginx
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
 * base: mirrors.aliyun.com
 * extras: mirrors.aliyun.com
 * updates: mirrors.aliyun.com
[root@client-242 ~]# 
[root@client-242 ~]# ls /opt/nginx_rpm/
nginx-1.20.1-9.el7.x86_64.rpm



軟體包安裝(doker搭建遊戲)

  • 畫素小鳥
  • 躲避貓遊戲
[root@node1 yum.repos.d]# yum install docker -y

[root@node1 yum.repos.d]# systemctl start docker

[root@node1 yum.repos.d]# docker -v
Docker version 1.13.1, build 7d71120/1.13.1

[root@node1 opt]# docker run -P -d game:v2
92d456d612f4e41fb7416756618a470d4e68b4993268694f3a156354f7e6ed16


[root@node1 opt]# docker ps
CONTAINER ID        IMAGE               COMMAND                  CREATED              STATUS              PORTS                                                                     NAMES
92d456d612f4        game:v2             "/docker-entrypoin..."   About a minute ago   Up About a minute   0.0.0.0:32770->80/tcp, 0.0.0.0:32769->8080/tcp, 0.0.0.0:32768->8090/tcp   hungry_easley
[root@node1 opt]# 

linux的軟體安裝技術

cenyos平臺下的
管理rpm包(redhat,cenyos,軟體包格式是rpm)
手動管理這些rpm包的命令,也叫作rpm
rpm -ivh nginx-1.18.rpm

yum自動管理rpm包,處理依賴關係(redhat,centos,提供自動化管理,rpm是yum工具)
原始碼編譯安裝
二進位制程式解壓即用安裝
國產的麒麟系統
烏班圖
系統本身支援一個通用的軟體包格式,比如烏班圖的*.deb
nginx-1-20.deb
烏班圖下,安裝deb包的命令是dpkg命令
還提供了一個自動化下載,安裝deb包的命令,叫做apt(等於centos的yum命令)

ubuntu學習,ubuntu是什麼

Linux有非常多的發行版本,從性質上劃分,大體分為由商業公司維護的商業版本與由開源社群維護的免費發行版本。*(centos)



商業版本以Redhat為代表,開源社群版本則以debian為代表。

這些版本各有不同的特點,在`不同的應用領域`發揮著不同的作用,不能一概而論。

下面就這些不同的Linux發行版進行簡單的分析。

## Ubuntu

Ubuntu近些年的粉絲越來越多,Ubuntu有著漂亮的使用者介面(蘋果系統),完善的包管理系統,強大的軟體源支援(mysql,nginx,java,python,.golang),豐富的技術社群,Ubuntu還對大多數硬體有著良好的相容性,包括最新的圖形顯示卡(做區塊鏈的,需要用最新的顯示卡技術做計算,那麼centos可能還沒有對應的驅動支援,烏班圖一般就有了)等等。

這一切讓Ubuntu越來越向大眾化方向發展。

但別忘了:你所需要的只是一個簡約、穩定、易用的伺服器系統而已!

Ubuntu的圖形介面固然漂亮,但這也決定了它最佳的應用領域是桌面作業系統而非伺服器作業系統。如何你希望在學習Linux的過程中有個沉浸式的環境,那麼Ubuntu的確不錯:僅僅安裝在自己的電腦中而非伺服器中。

烏班圖適用於物聯網企業,是最多的,比如智慧機器人,智慧輸入法,智慧窗簾



烏班圖適合的場景

https://cn.ubuntu.com/internet-of-things

烏班圖是更好看,有更多的豐富的應用程式,更適合喜歡用linux的程式設計師,作為個人筆記本的系統。



## CentOS

你會發現非常多的商業公司部署在生產環境上的伺服器都是使用的CentOS系統,CentOS是從RHEL原始碼編譯的社群重新發布版。

CentOS簡約,命令列下的人性化做得比較好,穩定,有著強大的英文文件與開發社群的支援。與Redhat有著相同的淵源。

雖然不單獨提供商業支援,但往往可以從Redhat中找到一絲線索。

相對debian來說,CentOS略顯體積大一點。是一個非常成熟的Linux發行版。

很多網站站長一般都選擇centOS系統,CentOS是從redhat原始碼編譯重新發布版。

CentOS去除很多與伺服器功能無關的應用,系統簡單但非常穩定,命令列操作可以方便管理系統和應用,並且有幫助文件和社群的支援。


安裝烏班圖的機器
vmware-tools工具
1.你得掛載linux的系統光碟映象
2.根據如下提示,找到vmware的安裝指令碼
3.執行指令碼,全部yes同意,安裝路徑也預設即可

開啟ssh服務,提供你可以遠端連線烏班圖機器

烏班圖下,都是普通使用者操作,必須加上sudo命令
1.預設拿到一個新機器,可能沒開啟ssh服務,無法遠端連線

2.或許需要升級下軟體倉庫
sudo apt update


3.需要安裝ssh服務
sudo apt  install openssh-server

4.啟動ssh服務,即可遠端連線
sudo service sshd start 

5.檢視該埠
sudo ss -tunlp|grep 22

ubuntu軟體包管理

和centos管理方式一樣,只不過軟體包的格式,不是rpm包,而是deb包

但是其他管理方式,如原始碼編譯三部曲,二進位制包安裝都一樣。

軟體包種類 特點 缺點
deb包 編譯好了,安裝簡單,安裝引數固定 軟體版本較低,無法定製化安裝
原始碼包 手動編譯安裝,繁瑣,容易出錯 軟體版本自由,安裝自由擴充套件
二進位制包 解壓即用 無法原始碼,無法定製化
centos ---*.rpm  ============ubuntu -------*.deb
centos ---rpm -ivh xxx===========ubuntu   dpkg  *.deb

centos-----yum   ============== ubuntu  -------apt 

dpkg命令管理deb包

dpkg -i package.deb                  #安裝包
dpkg -r package                      #刪除包,保留配置檔案
dpkg -P package                       #刪除包(包括配置檔案)
dpkg -L package                      #列出與該包關聯的檔案
dpkg -l package                      #顯示該包的版本
dpkg --unpack package.deb        #解開 deb 包的內容
dpkg -S keyword                      #搜尋所屬的包內容
dpkg -s package                 # 查詢軟體包詳細資訊
dpkg -l                              #列出當前已安裝的包
dpkg -c package.deb                 #列出 deb 包的內容
dpkg --configure package         #配置包

通過dpkg命令安裝nginx_1.18.0-2~focal_amd64.deb、且確保可以訪問到nginx頁面。



修改烏班圖的apt源,改為阿里雲源,且更新源。

dG 清空裡面原本的apt源
去aliyun找到apt源,複製到裡面即可


deb http://mirrors.aliyun.com/ubuntu/ focal main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal main restricted universe multiverse

deb http://mirrors.aliyun.com/ubuntu/ focal-security main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal-security main restricted universe multiverse

deb http://mirrors.aliyun.com/ubuntu/ focal-updates main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal-updates main restricted universe multiverse

deb http://mirrors.aliyun.com/ubuntu/ focal-proposed main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal-proposed main restricted universe multiverse

deb http://mirrors.aliyun.com/ubuntu/ focal-backports main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal-backports main restricted universe multiverse

:wq! 儲存退出
輸入  sudo apt update 更新apt源

搭建部落格,部落格官網https://halo.run/#quickstart,要求部署在烏班圖上,且發表一篇部落格。

準備java環境
檢查java
下載部落格原始碼
啟動這個java程式
讓網站在後臺執行