歡迎您光臨本站 註冊首頁

linux06-rpm,yum

←手機掃碼閱讀     火星人 @ 2014-03-08 , reply:0

源碼包 source code 需要用編譯器去編譯的包(如GCC)
優點:可以適應不同平台
可以定製功能 (使用編譯參數去實現)

缺點:安裝麻煩,時間長


gcc - GNU project C and C compiler


--安裝區域網arp掃描工具
[root@li noarch]# tar xvf /share/soft/soft/arp-scan/arp-scan-1.6.tar.gz -C /usr/src/
--解壓到/usr/src下


# cd /usr/src/arp-scan-1.6/


[root@li arp-scan-1.6]# ls --確認有configure文件的才能進行編譯
acinclude.m4 config.guess getopt1.c INSTALL mt19937ar.c
aclocal.m4 config.h.in getopt.c install-sh NEWS
arp-fingerprint config.sub getopt.h link-bpf.c obstack.c
arp-fingerprint.1 configure(--確認有此文件) get-oui link-dlpi.c obstack.h
arp-scan.1 configure.ac get-oui.1 link-packet-socket.c README
arp-scan.c COPYING hash.c mac-vendor.5 strlcat.c
arp-scan.h depcomp hash.h mac-vendor.txt strlcpy.c
AUTHORS error.c ieee-iab.txt Makefile.am TODO
ChangeLog get-iab ieee-oui.txt Makefile.in utils.c
check-run1 get-iab.1 inet_aton.c missing wrappers.c


用rpm -ivh 裝libpcap-devel包 --因為安裝arp-scan這個包的./configure檢測時需要,不安裝會報錯


[root@li arp-scan-1.6]# rpm -ivh /mnt/Server/libpcap-devel-0.9.4-14.el5.i386.rpm
warning: /mnt/Server/libpcap-devel-0.9.4-14.el5.i386.rpm: Header V3 DSA signature: NOKEY, key ID 37017186
Preparing... ########################################### [100%]
1:libpcap-devel ########################################### [100%]


[root@li arp-scan-1.6]# ./configure --相當於是定製軟體功能並檢查編譯的需求,如果需求不滿足,則報錯
[root@li arp-scan-1.6]# make --按照你的定製編譯
[root@li arp-scan-1.6]# make install --把做好的軟體進行安裝

[root@li arp-scan-1.6]# arp-scan -l --使用這個掃描內網所有主機信息


===========================

在linux下默認是不支持ntfs格式的掛載,移動硬碟現在基本都是
ntfs格式,使用移動硬碟來拷資料就需要讓linux支持ntfs格式,
需要兩個第三方包來實現


支持ntfs安裝 (要安裝兩個包 一個fuse包,一個ntfs-3g的包)


[root@li arp-scan-1.6]# tar xvf /share/soft/soft/ntfs/fuse-2.7.4.tar.gz -C /usr/src/
[root@li arp-scan-1.6]# tar xvf /share/soft/soft/ntfs/ntfs-3g-2009.4.4.tgz -C /usr/src/


安裝一個源碼包的過程:
1,解壓到一個目錄
2,cd到這個目錄,並查看readme,install,FAQ等文件了解安裝方法
3,make clean --清除一些編譯信息,使之成為乾淨的源碼
4,./configure --根據你指定的參數,對編譯進行行為控制,產生符合要求的程序,相當是一個檢查程序,檢查通過會產生makefile文件
./configure --help 查找編譯參數
./configure --help > /fusehelp.txt
5.make --根據產生的makefile進行源碼編譯
6.make install --把產生的文件安裝到需要的地方

增加fuse這個模塊
[root@li fuse-2.7.4]# lsmod |grep fuse
[root@li fuse-2.7.4]# modprobe fuse
[root@li fuse-2.7.4]# lsmod |grep fuse
fuse 49237 0

再安裝ntfs-3g的包
[root@li fuse-2.7.4]# cd ../ntfs-3g-2009.4.4/ --cd到ntfs-3g包的目錄里


[root@li ntfs-3g-2009.4.4]# ./configure; make; make install --三條命令一起寫執行編譯過程


[root@li ntfs-3g-2009.4.4]# mount --編譯安裝成功後會看到mount.ntfs-3g命令
mount mount.fuse mount.nfs4 mountpoint
mount.cifs mount.nfs mount.ntfs-3g

[root@li ntfs-3g-2009.4.4]# mount.ntfs-3g /dev/sdb2 /media/ --使用方法掛載ntfs格式分區

=================================================


安裝mplayer --linux版的mplayer播放器


[root@li arp-scan-1.6]# ls /share/soft/mplayer/
essential-20071007.tar.bz2 mplayer-new.tar.gz readme.txt --看readme安裝
font-arial-iso-8859-1.tar.bz2 OSX-Mod-1.1.tar.bz2.tgz


[root@li ~]# firefox /share/soft/mplayer/readme.txt &
--用firefox打開readme文件,並選擇gb2312的字符集查看幫助


--------------------------------------------------------


特殊的包的安裝:

二進位包
RealPlayer11GOLD.bin

[root@li src]# ls /share/soft/soft/RealPlayer11GOLD.bin
/share/soft/soft/RealPlayer11GOLD.bin


安裝方法為: ./RealPlayer11GOLD.bin 直接安裝
裝完后直接用realplay命令啟用圖形安裝 一直點下一步就OK


還有一種特殊的包就是沒有安裝文件
解壓後會看到有一個install.sh 直接運行安裝腳本就可以安裝了


--安裝linux版本qq
# rpm -ivh /share/soft/qq/linuxqq-v1.0.2-beta1.i386.rpm

有興趣的可以課後下載wine,編譯安裝后,可以用它來在linux運行windows下的硬碟版遊戲(需要為硬碟版,就是不要寫註冊表的那種,並且安裝目錄為英文)

=====================================================


遠程掛載相關解決思路:

1.ping 10.1.1.35或 ping 2.2.2.35要通
2.然後arp-scan -l 查看是否有和你相同的IP(默認是掃不到自己的IP)
3.如果有相同IP,則先換一個不衝突的IP
4./etc/init.d/portmap restart --重啟portmap,此服務是遠程調用服務,在遠程掛載時要用到
5.# showmount -e 10.1.1.35 --查看35這台機器上有共享了哪些目錄
Export list for 10.1.1.35:
/share/yum *
/share/soft *


6.# mount 10.1.1.35:/share/soft /mnt --掛載;但要注意,我共享的目錄只有/share/yum和/share/soft,只能掛這兩個目錄(但其實還可以掛他們子目錄,但不能掛父目錄)


# mount 10.1.1.35:/share/soft/iso /mnt --正確,可以掛子目錄(如果你知道有此子目錄的情況下才行)
# mount 10.1.1.35:/share/ /mnt --錯誤,不能掛父目錄
# mount 10.1.1.35:/share/soft/iso/rhel-5.4-server-i386-dvd.iso /mnt -o loop --錯誤


7,掛載不用后,記得umount /mnt

=============================================

yum - Yellowdog Updater Modified


對應的產品最好在官方下載

md5

為了解決依賴性的問題 debian 分發版產生了 apt來解決依賴性


red hat 分發版 yum (yellow dog updater) 由 python語言寫的


第三方的軟體 rhel 4 - rhel 5.1版或5.2版


vim /etc/yum.repos.d/rhel-debuginfo.repo


[Server] --軟體倉庫名 --大小寫不敏感,隨便命名
name=Red Hat Enterprise Linux $releasever - $basearch - Debug --標識名
baseurl=ftp://10.1.1.1/Server --軟體倉庫地址
enabled=1 --是否打開
gpgcheck=0 --gpg驗證

本地yum源的搭建

[root@li soft]# mount /share/soft/iso/rhel-5.4-server-i386-dvd.iso /mnt/ -o loop


[root@li soft]# mkdir /share/yum
[root@li soft]# cp /mnt/* /share/yum/ -rf

# vim /etc/yum.repos.d/rhel-debuginfo.repo --yum的配置文件,不一定是要叫這個名字,這個目錄下所有以.repo結尾的文件都是配置文件 (但建議不要寫多個.repo結尾的文件,有可能會衝突的;不用的暫時改名為非.repo結尾的就可以了)


# mv /etc/yum.repos.d/rhel-debuginfo.repo /etc/yum.repos.d/rhel-debuginfo.repo.bak --把原文件改名.bak結尾

# vim /etc/yum.repos.d/local.repo

[server]
name=server
baseurl=file:///share/yum/Server --本地的為file:/// 三個/
enabled=1
gpgcheck=0
[cluster]
name=cluster
baseurl=file:///share/yum/Cluster
enabled=1
gpgcheck=0
[clusterstorage]
name=clusterstorage
baseurl=file:///share/yum/ClusterStorage
enabled=1
gpgcheck=0
[vt]
name=vt
baseurl=file:///share/yum/VT
enabled=1
gpgcheck=0


#yum clean all --清除緩存和之前yum的一些信息
#yum list --能夠把所有的包都列出來就表示成功


--查看現在已經安裝了哪些rpm包(源碼包不算)
[root@li ~]# rpm -qa |wc -l
1054
[root@li ~]# yum list |grep installed |wc -l
1054

遠程ftpyum源的配置


現在10.1.1.35上已經配置好了ftp伺服器:
登錄後路徑就可以看到Server,Cluster,ClusterStorage,VT這四個目錄

baseurl=file:///share/yum/VT
換成
baseurl=ftp://10.1.1.35/VT

[root@li ~]# mv /etc/yum.repos.d/local.repo /etc/yum.repos.d/local.repo.bak

# vim /etc/yum.repos.d/remote_35_ftp.repo

[server]
name=server
baseurl=ftp://10.1.1.35/Server
enabled=1
gpgcheck=0
[cluster]
name=cluster


baseurl=ftp://10.1.1.35/Cluster
enabled=1
gpgcheck=0
[clusterstorage]
name=clusterstorage
baseurl=ftp://10.1.1.35/ClusterStorage
enabled=1
gpgcheck=0
[VT]
name=vt
baseurl=ftp://10.1.1.35/VT
enabled=1
gpgcheck=0


===============================================


yum list |grep installed --查找已經安裝的
yum list |grep -v installed --查找沒有安裝的


[root@li src]# yum install mysql* -y --y參數表示自動確認安裝

Installing:
mysql i386 5.0.77-3.el5 base 4.8 M
mysql-bench i386 5.0.77-3.el5 base 507 k
mysql-connector-odbc i386 3.51.26r1127-1.el5 base 159 k
mysql-devel i386 5.0.77-3.el5 base 2.4 M
mysql-server i386 5.0.77-3.el5 base 9.8 M
mysql-test i386 5.0.77-3.el5 base 3.7 M
Installing for dependencies:
libtool-ltdl i386 1.5.22-6.1 base 37 k
perl-DBD-MySQL i386 3.0007-2.el5 base 147 k
perl-DBI i386 1.52-2.el5 base 605 k
unixODBC i386 2.2.11-7.1 base 832 k


[root@li src]# yum erase mysql*
[root@li src]# yum remove mysql* --這兩個一樣


=======================================================
Removing:
mysql i386 5.0.77-3.el5 installed 7.9 M
mysql-bench i386 5.0.77-3.el5 installed 2.6 M
mysql-connector-odbc
i386 3.51.26r1127-1.el5 installed 419 k
mysql-devel i386 5.0.77-3.el5 installed 5.6 M
mysql-server i386 5.0.77-3.el5 installed 21 M
mysql-test i386 5.0.77-3.el5 installed 27 M
Removing for dependencies:
perl-DBD-MySQL


i386 3.0007-2.el5 installed 326 k


-------------------------------------------

yum grouplist --列出組,或者 配置好yum后,使用system-config-packages來調出圖形安裝


yum groupinstall "Windows File Server"


yum groupremove --慎用,有可能因為依賴性的問題把很多系統重要的包給remove掉了

[root@li yum.repos.d]# yum groupinstall 'News Server,DNS Name Server' --同時安裝多個組,組名可以直接用滑鼠複製下來,如果用手寫要注意大小寫和空格

=====================================================


使用yum的一些例子和常遇到的一些錯誤:


1,例子:如果用的是英文操作系統,但是忘了裝中文支持,或者是裝系統時忘了裝一些包,但想不起是什麼包
# yum list |grep zh --或者這樣查找和中文有關的包


2,system-config-packages 圖形調出安裝系統時自定義包的界面,然後再裝 或者使用 yum grouplist列出組,再yum groupinstall來安裝


3,
報下面的錯誤,表明兩個yum衝突了,要關掉一下(system-config-packages此命令打開的圖形也會佔用yum資源)
Another app is currently holding the yum lock; waiting for it to exit...
The other application is: system-config-p
Memory : 33 M RSS (123 MB VSZ)
Started: Mon Jul 4 15:40:17 2011 - 00:22 ago
State : Sleeping, pid: 8454

4,報下面這種錯誤,就絕對是訪問的問題;要麼是路徑寫錯了,如果是遠程的就會是網路不通或者網路衝突
file:///share/yum/cluster/repodata/repomd.xml: [Errno 5] OSError: [Errno 2] No such file or directory: '/share/yum/cluster/repodata/repomd.xml'


5.關於repodata的討論
[root@li ~]# mount /share/soft/iso/CentOS5.3.iso /mnt/ -o loop --掛載centos5.3的iso鏡像


[root@li ~]# vim /etc/yum.repos.d/centos5.3.repo --把所有的yum配置改名為非.repo結尾,再創建這個配置文件,寫上下面一段
[centos]
name=centos
baseurl=file:///mnt/CentOS/
enabled=1
gpgcheck=0

--但使用yum list時,報下面的錯誤,找不到repodata目錄
file:///mnt/CentOS/repodata/repomd.xml: [Errno 5] OSError: [Errno 2] No such file or directory: '/mnt/CentOS/repodata/repomd.xml'

--總結:說明軟體倉庫並不是把一堆包放在一個目錄,然後在yum的配置文件里寫上路徑就可以了,它需要一個repodata目錄來存放軟體信息

--正確的寫法為
[centos]
name=centos
baseurl=file:///mnt --就寫這個路徑,因為repodata目錄在centos里與CentOS目錄同級,並不是它的子目錄
enabled=1
gpgcheck=0


6,
導入gpg key 使用系統支持非本系統的包,網上軟體倉庫的網址一般都會有gpg key文件
rpm --import RPM-GPG-KEY-redhat-release

把上面的centos的配置文件的gpgcheck=0刪除,或者改為1
[centos]
name=centos
baseurl=file:///mnt
enabled=1

然後在安裝包時,會報下面的錯誤
signture 簽名錯誤,

warning: rpmts_HdrFromFdno: Header V3 DSA signature: NOKEY, key ID e8562897


Public key for hesinfo-3.1.0-1.1.i386.rpm is not installed

--使用yum有上面的簽名錯誤(如在rhel5.4上安裝centos5.3的包),解決方法為在yum配置文件里加上gpgcheck=0

或者把centos5.3鏡像里的key文件導入到系統,導入后就可以成功安裝了
# rpm --import RPM-GPG-KEY-CentOS-5


--補充,現在一些大網站都有這種開源軟體的軟體倉庫(如網易,搜狐),只要能上網,把yum配置文件寫對路徑就可以了(為http協議)


7.yum 很特殊的一個小問題
--例如我現在的目錄下有如下perl開頭的包
[root@li amavisd_clamav_spam]# ls perl-*
perl-Archive-Zip-1.23-1.el5.rf.noarch.rpm
perl-BerkeleyDB-0.32-1.el5.rf.i386.rpm
perl-Convert-BinHex-1.119-2.2.el5.rf.noarch.rpm
perl-Convert-TNEF-0.17-3.2.el5.rf.noarch.rpm
perl-Convert-UUlib-1.051-1.2.el5.rf.i386.rpm
perl-File-Temp-0.19-1.el5.rf.noarch.rpm
perl-IO-stringy-2.110-1.2.el5.rf.noarch.rpm
perl-MailTools-2.02-1.el5.rf.noarch.rpm
perl-MIME-tools-5.425-1.el5.test.noarch.rpm
perl-Net-Server-0.97-1.el5.rf.noarch.rpm
perl-Unix-Syslog-1.0-1.el5.rf.i386.rpm


[root@li amavisd_clamav_spam]# yum install perl*
--在這個目錄下去yum install perl* 會變成不讀取軟體倉庫里的perl開頭的包,而是讀取當前目錄下的perl開頭的包


--解決方法:cd到別的任意目錄,再執行yum install perl* 就可以了

============================================================


讓yum支持只下載軟體包,不去安裝軟體包
# yum install yum-downloadonly -y

只下載不安裝: 《--僅僅對網路倉庫才生效
# yum install --downloadonly --downloaddir=/tmp/test unixODBC-devel -y

列出某個包所依賴的軟體包
# yum deplist slrn-pull

# wget -m -np -k http://10.1.1.35/ --下載我的所有筆記,並轉化為本地鏈接.會有一個index.html主頁文件,firefox index.html &打開就可以了

# wget -m -np -k http://10.1.1.35/ule --這就是只下載ule目錄


===============================================

升級軟體倉庫或者自已做一個軟體倉庫

1、新建文件夾,把新的軟體倉庫里涉及的軟體放到該目錄,裡面的軟體包,一般要求你手工的解決依賴關係

mkdir /share/extra
cp ??.rpm /share/extra

2、生成軟體倉庫的軟體列表文件

yum install createrepo -y

createrepo /share/extra <---掃描並生成,生成的是repodata目錄

3、更新yum客戶端的配置文件,使用這個新的軟體倉庫分類
# vim /etc/yum.repos.d/rhel-debuginfo.repo
[Extra]
name=Extra
baseurl=file:///share/extra
enabled=1
gpgcheck=0

# yum clean all
# yum list

本文出自 「linuxart」 博客,請務必保留此出處http://linuxart.blog.51cto.com/686203/843913


[火星人 ] linux06-rpm,yum已經有810次圍觀

http://coctec.com/docs/linux/show-post-45745.html