RHEL7下製作OpenSSH8 4rpm包

2021-10-09 21:17:13 字數 2188 閱讀 6467

問題排除

公升級方法

根據客戶需求需要將生產環境下所有的openssh版本公升級至最新,客戶環境比較整齊

都是紅帽的作業系統,並且7版本居多,因系統較多原始碼公升級會比較費時間,所以打算

通過製作rpm包的方式來公升級。

作業系統版本:

red hat enterprise linux 7.6

公升級需求

當前openssh版本:7.5

目標openssh版本:8.4

1. 前言

1. 再7版本環境下編譯出來的包,只適合在rhell7版本環境下使用,如想在其他版本使用此方式,請使用該版本重新編譯。

2. 此方法同樣適用於rhel6版本,rhel8及rhel4,5版本請自行測試

3. 公升級openssh前建議將openssl公升級至官方最新

2. 配置yum源
可參考
3. 安裝依賴
yum install rpm-build gcc make

wget openssl-devel krb5-devel pam-devel libx11-devel xmkmf libxt-devel rpmdevtools gtk2-devel -y

4. 建立編譯環境
rpmdev-setuptree

wget 

wget

6. 將檔案拷貝至/rpmbuild/sources目錄
cp openssh-8.4p1.tar.gz  x11-ssh-askpass-1.2.4.1.tar.gz  rpmbuild/sources/
7. 解壓openssh-8.4p1.tar.gz 並將其中的openssh.spec拷貝至rpmbuild/specs/
tar -zxvf openssh-8.4p1.tar.gz

cp openssh-8.4p1/contrib/redhat/openssh.spec rpmbuild/specs/

8. 修改openssh.spce檔案內容,並將其使用者與組修改為sshd
# 此處是為了取消不必要的包

sed -i -e "s/%global no_gnome_askpass 0/%global no_gnome_askpass 1/g" rpmbuild/specs/openssh.spec

sed -i -e "s/%global no_x11_askpass 0/%global no_x11_askpass 1/g" rpmbuild/specs/openssh.spec

chown sshd:sshd rpmbuild/specs/openssh.spec

9. 編譯製作rpm包
cd rpmbuild/specs/

rpmbuild -ba openssh.spec

10.取出rpm包
預設在/rpmbuild/rpms/x86_64/下使用工具取出即可
問題1 openssl-devel 被openssh8.4需要

注釋掉 buildrequires: openssl-devel < 1.1

問題2 rpmbulid error

上述報錯忘了截圖了在日誌裡面找到,6版本應該會報這個錯誤,的解決方法如下:

vi /usr/lib/rpm/macros

注釋 %__check_files %/check-files %

RHEL7 配置方法

命令 hostname 檢視現在主機的名稱 hostnamectl set hostname test 將主機名修改為 test reboot 重啟 配置資訊需要重啟生效 命令 ifconfig a 顯示所有網路介面資訊 含down狀態的介面 ifconfig命令被用於配置和顯示linux核心中網路...

rhel 7特殊許可權

一 suid 用於二進位制的檔案中,對目錄無效 讓一般使用者在執行某些二進位制檔案的時候,能夠暫時擁有該程式 二進位制檔案 所有者的許可權 使用該命令的所屬使用者的許可權來執行,而不是命令執行者的許可權 比如 在root使用者的家目錄下 在某一目錄下執行ls命令時候,要看其目錄對應的許可權 ls l...

RHEL7服務管理

對於學習過紅帽rhel6的系統或已經習慣使用service chkconfig等命令來管理系統服務的使用者可能要鬱悶了,因為在紅帽rhel7系統中管理服務的命令變成了 systemctl 但使用方法大致相同,做一下對比。例1 root localhost systemctl status sshd....