yum源碼包安裝
① linux新手,請教用yum安裝和用編譯安裝lamp平台哪個好有沒有什麼大的區別
根做運維的朋友聊天,談到了,yum安裝和源碼安裝哪個好的問題。真沒想到,關於這個問題,分歧還挺大的。有的人認為,不用源碼安裝就不是好的運維,不是好的系統管理員。這帽子扣的有點大了。在此我想說一說我的看法,經常看我博客的,也許知道,前期我寫關於伺服器的文章,基本上都是源碼安裝的,後來基本上是用yum安裝的,除非yum源裡面沒有,我才會源碼安裝。在我看來,yum安裝和源碼安裝,基本上沒區別,最終還是生成系統所需求的文件,有什麼區別呢?一,yum安裝和源碼安裝,方式的不同1,yum安裝是將yum源中的rpm包下載到本地,安裝這個rpm包。這個rpm包是別人編譯安裝好的二進制包。這種方式與其說是安裝不如說是,更新來的更確切一點。2,源碼安裝,下載是源碼包,要進行編譯和安裝,編譯過程,可以進行參數設定。二,yum安裝和源碼安裝,優缺點分析1,yum安裝的優缺點yum安裝的優點,做運維的都很清楚,安裝東西,方便快捷,特別是不用考慮包依賴。yum安裝的缺點,安裝過程,人為無法干預,不能按需,安裝。源裡面有什麼就安裝什麼,安裝的版本也比較低。2,源碼安裝的優缺點源碼安裝的優點,編譯安裝過程,可以設定參數,按照需求,進行安裝,並且安裝的版本,可以自己選擇,靈活性比較大。源碼安裝的缺點,由於安裝包過新或者是其他問題,導致依賴的包沒有,或者版本過低。這個時候就要解決包的依賴問題,linux系統中有的包,一個依賴一個,可能裝一個小東西,就要解決一堆包的依賴問題,花很多時間解決包的依賴問題,得不嘗失。源碼安裝的多了,不敢升級系統,升級系統,可能會導致以前手動裝的東西,不能用。很多做運維的,都認為,源碼安裝比yum安裝的性能要好,根據參數選擇安裝,肯定比yum裝了一大堆要好。這樣認為的運維,我只能說,他不懂配置。根本不了解自已裝的東西。在我看來,同一版yum安裝和源碼安裝完全是一樣的。以apache以例吧,這個東西,非常常見的,用做web最廣泛的工具之一,源碼安裝,./configure時候,可以添加很多參數,來實現訂制。yum安裝也可以,yum安裝裝了很多,apache的模塊,有的模塊根本用不到,無故浪費系統資源和影響性能。但是我們可以配置httpd.conf啊,不需求的模塊,我們可以不LoadMole啊,通過修改配置文件,完全可以實現根源碼安裝一樣的效果。不排除少數軟體,安裝後,不能配置情況,也就是說安裝的時候是多少東西,就是多少東西,沒有配置文件可以配置。我覺得,對於剛接觸linux的人來說,源碼安裝很有必要,這樣你可以知道自己在做什麼,安裝過程中,肯定會遇到很多很多的問題,遇到問題,解決問題。這樣才會成長。不要一直都用yum裝,如果yum安裝出了一點問題,就傻眼了,不知道怎麼解決,這樣很杯具。 希望對你有所幫助!
② yum安裝 源碼安裝 哪個好
個人感覺還是yum安裝好,首先源碼安裝不會提供依賴包的下載安裝。
軟體要依賴的東西都要一個一個自己安裝,不如yum安裝方便。
另外就是一些需要配置環境變數的軟體,用源碼安裝你要自己配置,新手很容易出錯。
最後就是卸載比較麻煩,你要自己找到安裝時候安裝的所有文件位置,然後一個一個刪除-
-
麻煩死了,所以宗上,yum更好一些。
不過yum提供的軟體不一定是最新的,或者你要是有特定需要的版本的話,可以用源代碼安裝。
③ centos軟體是有四種安裝方式嗎yum,rpm,二進制和源代碼
- rpm包就是二進制包,如果是手動安裝,需要手動解決依賴關系
- yum方式也是使用的rpn包,比rpm包好處是也可以自動解決依賴關系
- 源碼編譯方式,定製程度高,適合需要指定安裝某個版本,自定義需要使用的模塊,相對其他兩種復雜一些
- 基本上在cenos紅帽系列的系統就這三種方式
- 希望可以幫助你,請採納
④ CentOS7下FreeSwitch1.8源碼安裝過程完整記錄
1、yum 安裝相關的依賴包
yum install -y git gcc-c++ wget alsa-lib-devel autoconf automake bison broadvoice-devel bzip2 curl-devel db-devel e2fsprogs-devel flite-devel g722_1-devel gdbm-devel gnutls-devel ilbc2-devel ldns-devel libcodec2-devel libcurl-devel libedit-devel libidn-devel libjpeg-devel libmemcached-devel libogg-devel libsilk-devel libsndfile-devel libtiff-devel libtheora-devel libtool libvorbis-devel libxml2-devel lua-devel lzo-devel mongo-c-driver-devel ncurses-devel net-snmp-devel openssl-devel opus-devel pcre-devel perl perl-ExtUtils-Embed pkgconfig portaudio-devel postgresql-devel python26-devel python-devel soundtouch-devel speex-devel sqlite-devel unbound-devel unixODBC-devel libuuid-devel which yasm zlib-devel
2、安裝 mod_shout 模塊以支持 mp3 格式
yum install -y libshout-devel lame-devel libmpg123-devel
wget http://downloads.sourceforge.net/project/lame/lame/3.99/lame-3.99.5.tar.gz
tar -zxvf lame-3.99.5.tar.gz
cd lame-3.99.5
./configure --enable-static --enable-shared
make
make install
vi /etc/ld.so.conf
#換行加入:/usr/local/lib
#保存退出 :wq
ldconfig
3、安裝 cmake
yum remove cmake
wget https://cmake.org/files/v3.14/cmake-3.14.0.tar.gz
tar vzxf cmake-3.14.0.tar.gz
cd cmake-3.14.0
./configure
make
make install
4、 安裝 libks
yum install libatomic
git clone https://github.com/signalwire/libks.git
cd libks
cmake .
make
make install
5、安裝 signalwire-c
git clone https://github.com/signalwire/signalwire-c.git
cd signalwire-c/
cmake .
make
make install
ln -sf
/usr/local/lib64/pkgconfig/signalwire_client.pc
/usr/lib64/pkgconfig/signalwire_client.pc
6、下載並安裝 freeswitch1.8
如下 git 為國內址,速度較快,也可以從官方下載源碼
git clone -b v1.8 https://git.oschina.net/nwaycn/freeswitch.git
./bootstrap.sh -j
./configure --enable-portable-binary
--prefix=/usr/local/freeswitch
--with-gnu-ld --with-python --with-openssl
--enable-core-odbc-support --enable-zrtp
--enable-libmp3lame
make
make -j install
如下安裝語音文件,用時會較長
make -j cd-sounds-install
make -j cd-moh-install
7、安裝後的一些操作
設置全局命令軟連接
ln -sf /usr/local/freeswitch/bin/freeswitch /usr/bin/
ln -sf /usr/local/freeswitch/bin/fs_cli /usr/bin/
禁用 freeswitch 上 ipv6
mv external-ipv6.xml external-ipv6.xml.inactive
mv internal-ipv6.xml internal-ipv6.xml.inactive
8、啟動 freeswitch
freeswitch -nc #後台啟動
freeswitch 常用命令
#列出 internal SIP Profile 的狀態
sofia status profile internal
#列出某個 Profile 上所有已注冊用戶
sofia status profile internal reg
#過濾某些符合條件
sofia status profile internal reg 1000
sofia status profile internal user 1000
#列出網關狀態
sofia status gateway gw1
#以上命令都可以將 status 用 xmlstatus 來代替,以列出 XML 格式的狀態,這樣比較容易用
於其他程序解析
#啟動、停止、重啟某個 Profile 的命令
sofia profile internal start #啟動
sofia profile internal stop #停止
sofia profile internal restart #重啟
#有時候修改了某個 Profile 的某個參數,不需要重啟(重啟是影響通話的),可以使用下列
命令讓 FreeSWITCH 重讀 sofia 的配置
#注意並不是所有的參數都能生效
sofia profile internal rescan
#添加了一個新的 gateway 以後,也可以使用 rescan 指令讀取
sofia profile external rescan
#如果是修改了一個網關,則可以先刪除該網關,再 rescan
sofia profile external killgw gw1
sofia profile external rescan
#下列命令可以指定某個網關立即向外注冊或注銷
sofia profile external register gw1
sofia profile external unregister
#開啟該 Profile 的 SIP 跟蹤功能抓 SIP 包
sofia profile internal siptrace on
#有時候,希望將已經注冊的用戶清理掉,可以使用如下命令,注意此命令只是臨時清理,
客戶端重新注冊的話還是可以注冊成功的
sofia profile internal flush_inbound_reg [email protected]
#也可以根據 call-id 來清理
sofia profile internal reg 1000 #通過此命令查找到 call-id 的值
sofia profile flush_inbound_reg zsfsdfhdfgdfsdfsdfsdfsdf #清除 call-id=zsfsdfhdfgdfsdfsdfsdfsdf 的用戶
⑤ 如何解決源碼包安裝時的依賴性問題
動態可執行文件使用最初編譯和鏈接程序時使用的庫文件的共享對象名稱來查找共享對象。它們在少數的幾個標准位置查找,比如在/lib和/usr/lib目錄及在LD_LIBRARY_PATH環境變數(主要用於指定查找共享庫,比如我們在安裝Oracle時指定路徑,exportLD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib:/usr/local/lib)指定的目錄中。順便提一下,在這些庫目錄中找到的共享對象可能不是真正的文件;它們可能是指向位於其他位置的真實庫文件的符號鏈接(但通常仍舊在標准庫目錄的一個目錄中)。至少從系統管理員的觀點是在用於創建共享庫文件的共享庫軟體包的名稱和共享庫文件的名稱之間通常沒有什麼關系。例如,GLIBC2.3軟體包用於創建libc.so.6共享庫文件。也從本示例中注意到,添加到共享庫文件名結束的版本號(.6)跟用於創建它的版本號(2.3)沒有關系。這是由共享庫軟體包開發人員有意完成的,以便GLIBC的新版本可以重用相同的共享庫文件名libc.so.6。這允許您在系統上載入新版本的GLIBC,而不用中斷動態鏈接到lib.so.6共享庫文件的所有程序,當然假定新版本的GLIBC向後與動態可執行文件最初所鏈接的老版本GLIBC兼容。因此,即使庫文件或共享對象文件有與它們相關的版本號,這些版本號也不能幫助你確定他們來自哪個版本的共享軟體包。
注意:當將whatprovides選項用於rpm查詢命令時,可以獲得有關使用rpm軟體包載入到系統的現有共享對象的信息。這種混亂是由下面的事實造成的:單個共享庫文件可能支持某個范圍的共享庫軟體包版本。例如,要檢查soname庫文件/lib/libc.so.6支持的GLIBC共享庫軟體包,運行下面的命令:
#objmp--all-headers/lib/libc.so.6|less
向下滾動此報告,直到到達Versiondefinitions:部分,以便查看libc.so.6共享庫文件支持哪些GLIBC版本:
Versiondefinitions:
10x010x0865f4e6libc.so.6
20x000x0d696910GLIBC_2.0
30x000x0d696911GLIBC_2.1
GLIBC_2.0
40x000x09691f71GLIBC_2.1.1
GLIBC_2.1
50x000x09691f72GLIBC_2.1.2
GLIBC_2.1.1
60x000x09691f73GLIBC_2.1.3
GLIBC_2.1.2
70x000x0d696912GLIBC_2.2
GLIBC_2.1.3
80x000x09691a71GLIBC_2.2.1
GLIBC_2.2
90x000x09691a72GLIBC_2.2.2
GLIBC_2.2.1
100x000x09691a73GLIBC_2.2.3
GLIBC_2.2.2
110x000x09691a74GLIBC_2.2.4
GLIBC_2.2.3
120x000x09691a76GLIBC_2.2.6
GLIBC_2.2.4
130x000x0d696913GLIBC_2.3
GLIBC_2.2.6
140x000x09691972GLIBC_2.3.2
GLIBC_2.3
150x000x09691973GLIBC_2.3.3
GLIBC_2.3.2
160x000x09691974GLIBC_2.3.4
GLIBC_2.3.3
170x000x0d696914GLIBC_2.4
GLIBC_2.3.4
180x000x0d696915GLIBC_2.5
GLIBC_2.4
190x000x0963cf85GLIBC_PRIVATE
GLIBC_2.5
200x000x0b792650GCC_3.0
在本示例中,1ibc.so.6共享庫文件支持原先為GLIBC版本2.0到2.5而開發的所有動態執行文件。注意:也可以使用objmp命令來從共享庫文件中提取soname,命令如下所示:
#objmp--all-headers/lib/libcrypto.so.0.9.8b|grepSONAME
SONAMElibcrypto.so.6
objmp:/lib/libcrypto.so.0.9.8b:
接下來,將討論rpm軟體包是如何生成的,以便在新系統上安裝rpm軟體包時,這些共庫依賴性是己知的。
三、Rpm軟體包和共享庫依賴性
當程序員生成rpm軟體包時,ldd命令用於報告動態可執行文件軟體包中所有動態可執行文件使用的所有共享庫。另一個混亂是由下面的事實帶來的:相同軟體包中的不同動態可執行文件可能與相同的共享庫軟體包的不同版本進行鏈接。例如,Heartbeat軟體包中的不同程序可能已經進行了開發,並動態鏈接到libc.so.6sonmae共享庫文件的不同GLIBC版本。對rpm命令使用-q和--requires參數,可以看到rpm軟體包需要的共享庫的完整清單。例如,要看到Heartbeatrpm軟體包所有的所需依賴性,請使用命令:
#rpm-q--requires-pheartbeat-1.x.x.i386.rpm
這產生了下面的報告:
sysklogd
/bin/sh
/bin/sh
/usr/bin/python
ld-linux.so.2
libapphb.so.0
libc.so.6
libc.so.6(GLIBC_2.0)
libc.so.6(GLIBC_2.1)
libc.so.6(GLIBC_2.1.3)
libc.so.6(GLIBC_2.2)
libc.so.6(GLIBC_2.3)
libccmclient.so.0
libdl.so.2
libglib-1.2.so.0
libhbclient.so.0
libpils.so.0
libplumb.so.0
libpthread.so.0
librt.so.1
libstonith.so.0
注意,在此報告中,libc.so.6soname是所需要的,此共享庫必須支持使用GLIBC共享軟體包版本號2.0、2.1、2.1.3、2.2和2.3進行鏈接的動態可執行文件。這是由下面的事實決定的:Heartbeat軟體包中的不同動態可執行文件是針對不同版本的libc.so.6庫的每個版本進行鏈接的。在了解了動態可執行文件、共享對象、soname和共享庫軟體包彼此是如何相關的後,下面准備來看這樣的一個例子:當嘗試安裝rpm軟體包,並且它由於依賴性錯誤而失敗時,會發生什麼。yum能夠從指定的伺服器自動下載RPM包並且安裝,可以自動處理依賴性關系,並且一次安裝所有依賴的軟體包,無須繁瑣地一次次下載、安裝。
四、手工解決依賴性問題
通常,當嘗試安裝發行版中沒有包括的軟體包(及不能由像up2date、apt-get或Yum一樣的更新工具自動解決其依賴性的軟體包)時,將碰到rpm依賴性錯誤。例如,如果嘗試在老的Linux發行版上使用rpm–ivh*rpm命令,例如所有的Heartbeatrpm包,那麼在安裝過程中就可能碰到下面的錯誤:
error:faileddependencies:
libc.so.6(GLIBC_2.3)isneededbyheartbeat-1.x.x
libc.so.6(GLIBC_2.3)isneededbyheartbeat-pils-1.x.x
libcrypto.so.0.9.6isneededbyheartbeat-stonith-1.x.x
libsnmp-0.4.2.6.soisneededbyheartbeat-stonith-1.x.x
注意,rpm命令沒有干擾報告所需的每個GLIBC共享庫軟體包版本號——它只報告所需的最高編號的版本號(GLIBC_2.3)。(假定原來的軟體包開發人員不會將相同軟體包中的可執行文件鏈接到不兼容版本的共享庫軟體包)所有的這些故障都報告所需的共享庫名稱或soname(而不是文件名稱,soname始終以「lib」開始)。但可以刪除添加到rpm報告的soname結束的版本號,並快速檢查以查看是否在系統中使用locate命令安裝這些共享庫(假設您的locate資料庫是最新的,有關更多信息,請參閱locate或slocate的手冊頁)。例如,
⑥ Linux軟體包管理
Linux系統如果需要安裝軟體怎麼辦?如何安裝,大概有以下幾種方式
1.二級制軟體包管理(RPM 、YUM)
2.源代碼包安裝
3.腳本安裝(Shell或Java腳本)
4.Debian系
RPM名稱軟體包: sudo-1.7.2pl-5.el5.i386.rpm
解釋:
實例:
查詢nginx包信息
md5校驗軟體,正常無任何提示,如果做過更改就會有提示。
Yum是由Duke University團隊修改Yellow Dog Linux的Yellow Dog Updater開發而成,是一個基於RPM包管理的字元前端軟體包管理器。能夠從指定的伺服器自動下載RPM包並且安裝,可以處理依賴性關系,並且一次安裝所有依賴的軟體包,無須繁瑣地一次次下載、安裝。被Yellow Dog Linux本身,以及Fedora、Red Hat Enterprise Linux採用。
yum應用的好處
1.自動解決軟體包依賴關系
2.方便軟體包升級
源代碼包的好處
1.適應於大多數unix操作系統。
2.源代碼包安裝靈活,可定製。
3.卸載方便:先關閉進程,刪除文件夾。
大致分為四步
1.下載所需要的軟體版本。2.解壓。 3.配置指定安裝目錄。 4.編譯。 5.安裝。
Debian系(烏班圖系統 ubuntu )
APT:是Debian及其派生的Linux軟體包管理器。APT可以自動下載,配置,安裝二進制或者源代碼格式的軟體包,因此簡化了Unix系統上管理軟體的過程。APT最早被設計成dpkg的前端,用來處理deb格式的軟體包。現在經過APT-RPM組織修改,APT已經可以安裝在支持RPM的系統管理RPM包。
dpkg:最初由Debian使用,現在由Ubuntu使用。使用.deb格式,是第一個擁有廣為人知的依賴性解決工具APT。
⑦ yum安裝 源碼安裝 哪個好
根做運維的朋友聊天,談到了,yum安裝和源碼安裝哪個好的問題。真沒想到,關於這個問題,分歧還挺大的。有的人認為,不用源碼安裝就不是好的運維,不是好的系統管理員。這帽子扣的有點大了。在此我想說一說我的看法,經常看我博客的,也許知道,前期我寫關於伺服器的文章,基本上都是源碼安裝的,後來基本上是用yum安裝的,除非yum源裡面沒有,我才會源碼安裝。在我看來,yum安裝和源碼安裝,基本上沒區別,最終還是生成系統所需求的文件,有什麼區別呢?一,yum安裝和源碼安裝,方式的不同1,yum安裝是將yum源中的rpm包下載到本地,安裝這個rpm包。這個rpm包是別人編譯安裝好的二進制包。這種方式與其說是安裝不如說是,更新來的更確切一點。2,源碼安裝,下載是源碼包,要進行編譯和安裝,編譯過程,可以進行參數設定。二,yum安裝和源碼安裝,優缺點分析1,yum安裝的優缺點yum安裝的優點,做運維的都很清楚,安裝東西,方便快捷,特別是不用考慮包依賴。yum安裝的缺點,安裝過程,人為無法干預,不能按需,安裝。源裡面有什麼就安裝什麼,安裝的版本也比較低。2,源碼安裝的優缺點源碼安裝的優點,編譯安裝過程,可以設定參數,按照需求,進行安裝,並且安裝的版本,可以自己選擇,靈活性比較大。源碼安裝的缺點,由於安裝包過新或者是其他問題,導致依賴的包沒有,或者版本過低。這個時候就要解決包的依賴問題,linux系統中有的包,一個依賴一個,可能裝一個小東西,就要解決一堆包的依賴問題,花很多時間解決包的依賴問題,得不嘗失。源碼安裝的多了,不敢升級系統,升級系統,可能會導致以前手動裝的東西,不能用。很多做運維的,都認為,源碼安裝比yum安裝的性能要好,根據參數選擇安裝,肯定比yum裝了一大堆要好。這樣認為的運維,我只能說,他不懂配置。根本不了解自已裝的東西。在我看來,同一版yum安裝和源碼安裝完全是一樣的。以apache以例吧,這個東西,非常常見的,用做web最廣泛的工具之一,源碼安裝,./configure時候,可以添加很多參數,來實現訂制。yum安裝也可以,yum安裝裝了很多,apache的模塊,有的模塊根本用不到,無故浪費系統資源和影響性能。但是我們可以配置httpd.conf啊,不需求的模塊,我們可以不LoadMole啊,通過修改配置文件,完全可以實現根源碼安裝一樣的效果。不排除少數軟體,安裝後,不能配置情況,也就是說安裝的時候是多少東西,就是多少東西,沒有配置文件可以配置。我覺得,對於剛接觸linux的人來說,源碼安裝很有必要,這樣你可以知道自己在做什麼,安裝過程中,肯定會遇到很多很多的問題,遇到問題,解決問題。這樣才會成長。不要一直都用yum裝,如果yum安裝出了一點問題,就傻眼了,不知道怎麼解決,這樣很杯具。轉載請註明
作者:海底蒼鷹
⑧ linux下面yum安裝和源碼編譯安裝的區別
YUM安裝可以看成是在線安裝的一種方式,你只需要yum install 軟體名,系統就自動根據yum源配置文件中的鏡像位置去下載安裝包了,並可以自動分析所需的軟體依賴關系,自動安裝所需的依賴軟體包。此方式適合初學者,簡單方便,不用考慮依賴關系。但有些軟體並不能通過yum來安裝。。
而源碼安裝方式是需要自己到網上下載源碼包,然後解壓安裝。此方式可以指定配置參數,更加靈活方便,兼容性更強。比較適合對Linux系統有較多了解的進階用戶使用。。
實際工作中,兩種方式結合起來使用,效果更佳。