成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

史上最硬核的Linux依賴(lài)問(wèn)題解決方案

系統(tǒng) Linux
本文介紹了一些另類(lèi)的暴力破解 RPM 和 DEB 軟件包依賴(lài)關(guān)系的方法,對(duì)陷入依賴(lài)陷阱而不可自拔的人來(lái)說(shuō),有時(shí)候這也是一種絕地求生之路。

 [[324843]]

編者按:本文介紹了一些另類(lèi)的暴力破解 RPM 和 DEB 軟件包依賴(lài)關(guān)系的方法,對(duì)陷入依賴(lài)陷阱而不可自拔的人來(lái)說(shuō),有時(shí)候這也是一種絕地求生之路。至于說(shuō)這樣做是否合適,那就是一件見(jiàn)仁見(jiàn)智的事情了,不過(guò)這種硬剛的不罷休態(tài)度值得贊賞。此外,本文中一些觀點(diǎn)僅代表作者的認(rèn)識(shí),未必一定正確,大家爭(zhēng)鳴即可。

本文的轉(zhuǎn)載得到了作者授權(quán)。

最近正好在研究 dpkgrpm,對(duì) Linux 依賴(lài)有了更深的認(rèn)識(shí)。

在網(wǎng)上看了很多,所有 Docker、虛擬機(jī)、編譯安裝、以及各種另辟蹊徑的答案,都是面向日常繁重的業(yè)務(wù)沒(méi)時(shí)間折騰而不得已做出的妥協(xié)和讓步。

而我們面向技術(shù)的,“從來(lái)都喜歡正面硬剛!”

硬剛 Linux 軟件安裝依賴(lài)問(wèn)題的辦法有很多,我給他分為兩大類(lèi)!

“一類(lèi)合法,另一類(lèi)暴力。”

先說(shuō)合法的解決方案

也是所有人都知道的解決方案:

  1. sudo apt-get install xxxxx

一般情況下,它會(huì)連帶軟件的依賴(lài)一起安裝。如果這個(gè)過(guò)程中依賴(lài)安裝失敗,就執(zhí)行:

  1. sudo apt-get -f install

一次不行兩次,只要源里有,只要能保證依賴(lài)關(guān)系是順暢的,再多的依賴(lài)多執(zhí)行幾次都能裝完。

如果有依賴(lài)源里找不到。這個(gè)坑就踩不過(guò)去了,解決辦法是:找到缺失的庫(kù)的安裝包手動(dòng)下載下來(lái)。然后通過(guò) sudo dpkg -i xxxx.deb 安裝。

需要手動(dòng)下載安裝包的尋找主要有兩個(gè)途徑:

  1. 百度找,直接搜包名 + 版本號(hào)并帶上關(guān)鍵字 deb
  2. 通過(guò)源。

百度直接找?guī)炀筒欢嗾f(shuō)了,額外說(shuō)一下通過(guò)源怎么找。

你在網(wǎng)上搜 ubuntu 國(guó)內(nèi)源。會(huì)找到很多類(lèi)似這樣的寫(xiě)法:

  1. deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial main restricted universe multiverse

這其實(shí)即是給apt-get工具配置的源地址,也是個(gè)實(shí)際的網(wǎng)址,你可以直接從瀏覽器里訪(fǎng)問(wèn)到,比如上面這個(gè):

  1. https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial main restricted universe multiverse

它其實(shí)代表的是:https://mirrors.tuna.tsinghua.edu.cn/ubuntu/pool/xenial/ 這個(gè)路徑下的 mainrestricteduniversemultiverse 這幾個(gè)目錄:

apt-get 工具會(huì)在這四個(gè)的目錄下自動(dòng)檢索對(duì)應(yīng)的軟件包下載并安裝。

在一些特殊情況,比如機(jī)器網(wǎng)絡(luò)受限,但瀏覽器開(kāi)了代理可以訪(fǎng)問(wèn)外網(wǎng)的情況下。apt-get 無(wú)法從源里獲取軟件,你可以從這里手動(dòng)找到對(duì)應(yīng)的軟件包下載下來(lái)然后使用 dpkg 安裝。

比如這里,手動(dòng)找到 mysql 的安裝包路徑,再點(diǎn)擊就可以直接下載:

剛才說(shuō)道 apt-get install 無(wú)法修復(fù)依賴(lài),通過(guò)手動(dòng)下載然后把這些缺失的安裝包裝上之后,就可以通過(guò) apt-get 把剛才裝不上的包裝上。

這是非常合理合法的解決方案。

再補(bǔ)充一種合法技巧,可以嘗試用:

  1. apt-get install 本地軟件包

這是因?yàn)椋?/p>

“依賴(lài)檢測(cè)”“軟件安裝”不是 apt-get 做的,而是 dpkg 做的。依賴(lài)不滿(mǎn)足“自動(dòng)修復(fù)依賴(lài)”才是 apt-get 做的。

所以,如果你下載了一個(gè) deb 安裝包通過(guò) dpkg 安裝,但依賴(lài)不滿(mǎn)足的話(huà),他只會(huì)提示你依賴(lài)缺失,但他不會(huì)自動(dòng)尋找并安裝依賴(lài),雖然你仍然可以去下載安裝缺失的依賴(lài),但他如果缺失十個(gè)八個(gè)的,你再手動(dòng)下載然后 dpkg 安裝也不現(xiàn)實(shí)了。

舉個(gè)例子:我這里下載了一個(gè)搜狗輸入法的安裝包,dpkg -i 無(wú)法安裝,但是可以通過(guò) apt-get install 裝上:

要注意:通過(guò) apt-get 安裝本地軟件一定要寫(xiě)路徑,相對(duì)絕對(duì)都可以,但不能只寫(xiě)包名。不然它會(huì)去源里面找不會(huì)裝本地的。

上面的方案幾乎可以解決 80% 的安裝依賴(lài)問(wèn)題。總結(jié)一下:

  • 安裝軟件就用:sudo apt-get install xxxx
  • 遇到依賴(lài)問(wèn)題:sudo apt-get -f install
  • 如果有缺失無(wú)法安裝,就去網(wǎng)上下,缺什么下什么,下載下來(lái)后 sudo apt-get install ./xxxx 把缺的包安裝上,再裝原來(lái)的包。

接下來(lái)說(shuō)說(shuō)暴力的解決方案

之所以說(shuō)暴力,是因?yàn)閯偛诺姆绞剑呀?jīng)是在我的認(rèn)知里,工具和系統(tǒng)提供的自動(dòng)化程序能做到的極限。

如果還是出現(xiàn)了依賴(lài)無(wú)法滿(mǎn)足的問(wèn)題,比如什么即將安裝 xxxx 但是現(xiàn)在的系統(tǒng)內(nèi)的版本高于 xxxx。

一般這種情況,系統(tǒng)已經(jīng)不建議你再搞了,你如果非要硬來(lái),很可能會(huì)破壞現(xiàn)有的程序依賴(lài)結(jié)構(gòu)。

  • 運(yùn)氣好或者你手高,硬裝上一點(diǎn)問(wèn)題沒(méi)有。
  • 影響小一點(diǎn),你裝了這個(gè)軟件,另一個(gè)軟件不能用或者會(huì)崩。
  • 影響大一點(diǎn),有些系統(tǒng)命令不好使了,界面卡死了,資源管理器崩了等等。
  • 影響更大一點(diǎn),裝完用著啥毛病沒(méi)有,重啟后卡在加載過(guò)程,再也進(jìn)不了系統(tǒng)。

“以上這些情況,我全部都遇到過(guò)!”

所以下面的搞法,你就當(dāng)學(xué)習(xí)知識(shí)或看我裝逼都行,自己實(shí)操,還是要謹(jǐn)慎地折騰。至少,別在客戶(hù)機(jī)器和生產(chǎn)環(huán)境的服務(wù)器上硬來(lái)。

暴力的解決方案有:

  1. --ignore-depends,忽略依賴(lài)直接裝。
  2. 解壓安裝包,刪掉依賴(lài)字段重新打包。
  3. 修改系統(tǒng)中記錄的 status 文件。
  4. 無(wú)視安裝失敗,直接運(yùn)行。
  5. 直接拿到根目錄,就地解壓。
  6. 改掉 dpkg 源碼,直接不檢測(cè)依賴(lài)。一個(gè)一個(gè)說(shuō):

1、--ignore-depends

這是所有暴力方案里技術(shù)門(mén)檻最低的一個(gè),你可以通過(guò) dpkg --help  查看 --ignore-depends 選項(xiàng):

選項(xiàng):
    ......其它選項(xiàng)
    --ignore-depends=<軟件包>,...
         忽略關(guān)于 <軟件包> 的所有依賴(lài)關(guān)系。
    --force-...

         忽視遇到的問(wèn)題(參見(jiàn) --force-help)。
    ......其它選項(xiàng)

這個(gè)選項(xiàng)可以指定要忽略的依賴(lài)包。所以安裝的時(shí)候如果依賴(lài)不滿(mǎn)足,你直接加上這個(gè)參數(shù)把依賴(lài)忽略的就完了:

當(dāng)然,安裝不會(huì)有任何問(wèn)題,但是能不能用就看要造化了。

“并不是依賴(lài)不滿(mǎn)足,裝上就一定完全不能用”,有時(shí)候只是功能不全而已。

比如你裝了一個(gè) QQ,它依賴(lài) ffmpeg,你忽略了它后直接安裝使用很可能沒(méi)問(wèn)題,但是一點(diǎn)擊視頻通話(huà),程序立馬就崩掉了。(這是個(gè)假設(shè),QQ 用啥不用啥我也不知道)

這個(gè)方案雖然門(mén)檻低,有個(gè)致命的缺陷就是太麻煩,我這里缺兩個(gè),寫(xiě)兩個(gè) ignore 參數(shù)。安裝過(guò)程中經(jīng)常遇到那種一下子缺十個(gè)八個(gè)的,要寫(xiě)十個(gè)八個(gè)這樣的參數(shù)屬實(shí)費(fèi)勁。

2、解壓安裝包,刪掉依賴(lài)字段重新打包

這個(gè)方案可以直接大刀闊斧地把軟件包的依賴(lài)全干掉,不過(guò)稍微需要點(diǎn)技術(shù)底子:

“首先你得會(huì)解壓安裝包,其次你得會(huì)制作安裝包。”

dpkg -X 只會(huì)解壓出安裝包的文件,無(wú)法解壓出安裝包帶的腳本和控制信息。

“右鍵”->“提取到此處”,解壓出來(lái)的controldata分開(kāi)兩個(gè)壓縮包,也不是打包前完美的狀態(tài)。

這里要用的是

  1. dpkg-deb -R sogoupinyin_xxxx.deb ./sogou

這樣解壓出來(lái)的就是 deb 在被打包前完完整整的樣子,我解壓了一個(gè)搜狗輸入法的安裝包為例:

其他的我們都不用管,直接打開(kāi) control 文件:

看到紅框的部分了吧,直接把這行全部干掉。然后再把拆出來(lái)的文件重新打回一個(gè)安裝包:

  1. fakeroot dpkg-deb --build ./sogou mysogou.deb

這個(gè)自己打的 mysogou 安裝包,和搜狗原生安裝包唯一的區(qū)別就是沒(méi)有依賴(lài)。

這下就可以一路暢通無(wú)阻,直接裝完。

3、修改系統(tǒng)中記錄的 status 文件

和剛才那個(gè)方案思路差不多,只不過(guò)換了一個(gè)突破點(diǎn),比剛才要更方便一點(diǎn)。

剛才我們突破的思路是:安裝包里記錄有對(duì)軟件依賴(lài),全部干掉就沒(méi)有依賴(lài)了。

那么這個(gè)方案的思路則是:如果檢測(cè)依賴(lài)發(fā)現(xiàn)系統(tǒng)不滿(mǎn)足,我們給他偽造一個(gè)滿(mǎn)足的依賴(lài)環(huán)境不就完了!

剛才我們說(shuō)的 control 文件,所有的 deb 文件都有,安裝過(guò)程中(不是安裝后也不是前),它就被記錄在了系統(tǒng)里的:/var/lib/dpkg/status 文件里。

這個(gè)文件里的內(nèi)容,也是 dpkg -l  命令顯示內(nèi)容的信息來(lái)源。

也是我們上面說(shuō)的,依賴(lài)檢測(cè)時(shí)檢索系統(tǒng)內(nèi)是否滿(mǎn)足依賴(lài)的信息來(lái)源。

如果軟件通過(guò) dpkg -r 卸載,這個(gè) status 文件里的信息不會(huì)刪除,只會(huì)把 Status 字段改為: deinstall ok config-files。通過(guò) dpkg -P 或者 dpkg --purge 才會(huì)把信息完全抹除。

所以,依賴(lài)不滿(mǎn)足的時(shí)候,你可以直接打開(kāi)這個(gè)文件,仿照其他軟件的寫(xiě)法,照抄一段加上,把文件名改為缺失的依賴(lài)包的名字就可以!dpkg 就會(huì)認(rèn)為,系統(tǒng)里有安裝這個(gè)包,從而解決依賴(lài)導(dǎo)致的無(wú)法安裝的問(wèn)題。

同樣,如果出現(xiàn)依賴(lài)的包需要的版本不滿(mǎn)足的情況,你也可以直接找到文件里對(duì)應(yīng)的包的信息,改掉 Version 字段到一個(gè)滿(mǎn)足需求的版本就可以。

當(dāng)然,實(shí)際上系統(tǒng)里是沒(méi)有安裝這些庫(kù)的,我們只是騙過(guò)了 dpkg

系統(tǒng)里的軟件信息一般都寫(xiě)得特別多,這里簡(jiǎn)單提供個(gè)樣例,實(shí)在不會(huì)抄系統(tǒng)的就抄這個(gè):

  1. Package: mtest
  2. Priority: optional
  3. Section: editors
  4. Maintainer: Threedog Team <qiugeyafang@gmail.com>
  5. Architecture: all
  6. Version: 1.0.0
  7. Homepage: http://www.threedog.top
  8. Description: test

只要把 Package 換成缺失的依賴(lài)包的名字,加到 status 文件里就可以了。記得和其他軟件信息之間要有空行。

4、無(wú)視安裝失敗,直接運(yùn)行。

這個(gè)方案之所以可行,是 dpkg 對(duì)軟件安裝過(guò)程的執(zhí)行機(jī)制決定的。dpkg 對(duì)依賴(lài)的處理時(shí)機(jī)是:“先釋放文件,再檢測(cè)依賴(lài),然后再完成最終配置。”

其實(shí) control 文件里還可以寫(xiě)一個(gè)字段叫做預(yù)依賴(lài):Pre-Depends 。這個(gè)字段的檢測(cè)級(jí)別和時(shí)機(jī)與 Architecture 字段相當(dāng)。寫(xiě)在這個(gè)字段里面的依賴(lài),如果檢測(cè)不滿(mǎn)足,安裝會(huì)直接中斷,不會(huì)釋放文件, status 中不會(huì)記錄,系統(tǒng)中也不會(huì)留下任何痕跡。

所以,當(dāng) dpkg 爆出依賴(lài)不滿(mǎn)足的問(wèn)題的時(shí)候,其實(shí)包里的文件已經(jīng)釋放到系統(tǒng)里了,只不過(guò)沒(méi)有做后續(xù)的配置。比如:桌面圖標(biāo)配置、字體配置、文件關(guān)聯(lián)設(shè)置、啟動(dòng)觸發(fā)設(shè)置等等。

但這并不妨礙你直接找到他的可執(zhí)行程序文件直接執(zhí)行。

如果你不知道他往系統(tǒng)里釋放了哪些文件:第一,可以解壓看下目錄結(jié)構(gòu);第二,可以通過(guò) dpkg --contents xxxx.deb 查看包里包含哪些文件。

也可以用 dpkg -S 軟件名 查看已經(jīng)安裝的軟件在系統(tǒng)里裝了哪些東西。

然后找到二進(jìn)制可執(zhí)行文件,一般都會(huì)往 /usr/bin/ 下面放一個(gè),運(yùn)氣好的話(huà)直接執(zhí)行有可能能跑起來(lái)。

5、暴力解壓

這個(gè)方案屬實(shí)有點(diǎn)過(guò)于暴力并且不合理。直接把安裝包移動(dòng)到根目錄下,然后直接 dpkg -X 解壓到當(dāng)前。然后像剛才一樣找二進(jìn)制可執(zhí)行程序調(diào)用。

前提是你知道這軟件包里有什么并且明確它不會(huì)影響什么的話(huà)。

不然如果解壓出的文件破壞了系統(tǒng)的重要文件,那直接就是不可逆的毀降維打擊。

而且這么搞完,如何卸載也是一個(gè)問(wèn)題......

6、改 dpkg 源碼

這是技術(shù)上最硬核的解決方案。

主要操作方法如下:

從這個(gè)地址: https://git.dpkg.org/git/dpkg/dpkg.git 克隆下來(lái) dpkg 源碼,在源碼里的 packages.c 里面找到這個(gè) dependencies_ok 函數(shù)。甭管它里面寫(xiě)了多少東西,直接在最開(kāi)頭給它 return DEP_CHECK_OK;  或者 return 2; 反正就是個(gè)枚舉。

然后把項(xiàng)目編譯一下生成自己的 dpkg 用就可以。

我這里自己編譯的 dpkg 多加了一行輸出,效果明顯一點(diǎn):

這個(gè)函數(shù)改的是對(duì) Depends 字段的依賴(lài)檢測(cè)。

如果是預(yù)依賴(lài) Pre-Depends 字段,要改的是另一個(gè)名為 depisok 的函數(shù)。

關(guān)于 dpkg 項(xiàng)目源碼的編譯,用的是 Linux C 項(xiàng)目 automake 那一套。C/C++ 老炮閉著眼就編過(guò)去了,沒(méi)入門(mén)的萌新連怎么下手都不知道。像我這種剛?cè)腴T(mén)的菜雞,就得每走一步拿小本本記一下一點(diǎn),也想這樣玩一下的小伙伴可以參考: https://blog.csdn.net/Three_dog/article/details/103418141 

有了這個(gè)自己編譯的 dpkg,所有軟件都可以無(wú)阻礙安裝。

不過(guò)至于裝完能不能用,會(huì)不會(huì)有啥問(wèn)題,恐怕就得看造化了。

dpkg 的解決方案全部講完,說(shuō)說(shuō) rpm

之所以對(duì) rpm 只字未提有兩個(gè)原因:

“一是我對(duì)它的熟悉程度,遠(yuǎn)沒(méi)有 dpkg 這么深入。”

“二是它真的,相比 dpkg,難用的令人抓狂。”

在合法的解決方案上,rpmdpkg 沒(méi)有太大區(qū)別。你只需要把上面的對(duì)照方案,dpkg + apt-get 換成 rpm + yum 就可以。我們不多贅述了。

主要說(shuō)說(shuō)非法方案:

rpm 的機(jī)制,幾乎導(dǎo)致我所有的非法方案完全不可用!

方案一

可用的只有這一個(gè):忽略依賴(lài),這是在 rpm 上唯一可以對(duì)標(biāo)的非法解決方案,只需要把 --ignore-depends 換成 --nodeps 就可以。

其他的,幾乎都不行:

方案二

rpm 打包的時(shí)候,配置信息寫(xiě)在一個(gè) .spec 文件里,對(duì)標(biāo)上面的 control 文件,這個(gè)文件的寫(xiě)法規(guī)范惡心程度就不說(shuō)了,重要的是它無(wú)法從打好的 rpm 安裝包里逆向解壓出來(lái)。

你只能用 rpm --scripts -qa xxxx.rpm 來(lái)查看,而且看到的和它原來(lái)真正的寫(xiě)法有很大不同,你甚至可以理解成用 objdump 看可執(zhí)行程序的感覺(jué)。

這個(gè)機(jī)制,導(dǎo)致了上面的方案二(解壓安裝包,刪掉依賴(lài)字段重新打包)被斃掉。

方案三

rpm  安裝到系統(tǒng)中的軟件,也有一個(gè)文件統(tǒng)一管理,但是!它丫的天殺的居然用的是一個(gè)數(shù)據(jù)庫(kù)管理的:

這是編譯 rpm 時(shí)候 configure 參數(shù),這三種數(shù)據(jù)庫(kù)編譯時(shí)可選,安裝版一般是Berkeley DB

用數(shù)據(jù)庫(kù)管理,就存成二進(jìn)制數(shù)據(jù)文件了!就不像我們剛才的 status 直接修改文本了,而惡心就惡心在(我水平太次也是一方面),這三種數(shù)據(jù)庫(kù)我折騰了半天也沒(méi)找下工具能對(duì)它們?cè)鰟h改查!

換句話(huà)說(shuō)這個(gè)數(shù)據(jù)庫(kù)內(nèi)容的操作,只有 rpm 可以,不面向用戶(hù)。

因此,上面的方案三(修改系統(tǒng)中記錄的 status 軟件)也被斃掉了

方案四

rpm 的安裝只有一種依賴(lài)檢查的時(shí)機(jī),就是在釋放文件前。

所以如果出現(xiàn)依賴(lài)問(wèn)題,包里面的文件一滴也不會(huì)漏到系統(tǒng)上來(lái),上面的方案四(無(wú)視安裝失敗,直接運(yùn)行)也被斃掉了。

方案五

直接暴力解壓是可以的。不過(guò)上面也說(shuō)了,這實(shí)在是下下下下下下策。

方案六

最后一個(gè),改 rpm 的源碼。

以我的水平,說(shuō)實(shí)話(huà)還沒(méi)有權(quán)利對(duì)一個(gè)成熟的開(kāi)源項(xiàng)目源碼評(píng)頭論足,但一個(gè)不爭(zhēng)的事實(shí)是:我想像上面那種改 dpkg 的改法改 rpm 的源碼。折騰了一圈子確實(shí)沒(méi)找到咋改。

所以方案六(修改項(xiàng)目源碼)也基本宣告流產(chǎn)。

我想這也是很多人認(rèn)為 dpkgrpm 好用太多的原因之一。

rpm 把數(shù)據(jù)全部用數(shù)據(jù)庫(kù)管理起來(lái),看似增強(qiáng)了安全性,但是對(duì)于酷愛(ài)折騰的 Linuxer 來(lái)說(shuō),這種可操控性上帶來(lái)的降維打擊簡(jiǎn)直無(wú)法忍受。

除此之外,它還有非常難用的命令組合;令人沮喪的軟件源配置方法;以及地獄難度的打包規(guī)規(guī)范;打包還不留原文件等等讓人覺(jué)得它難用的特性在里面!(打包規(guī)范真的是折磨人!一不小心打錯(cuò)了,連原文件都沒(méi)得咯!一個(gè)都沒(méi)得咯!!)

以上,就是以我現(xiàn)有的水平,可以提供的所有針對(duì) Linux 鬼畜逆天級(jí)的軟件依賴(lài)關(guān)系的解決方案。可以看得出來(lái),有些方案是吃一點(diǎn)兒技術(shù)底子的。

很多技術(shù)問(wèn)題都是這樣,當(dāng)你對(duì)準(zhǔn)某一方向鉆研到一定深度的時(shí)候,很多在常人看來(lái)不可能實(shí)現(xiàn)的操作,在你手里就可以為所欲為!(我妻善逸:集中一點(diǎn),登峰造極)

而且我相信,肯定還有我沒(méi)想到的好辦法可以解決這些問(wèn)題,有可以提供方案或者思路的大佬請(qǐng)一定賜教!

最后,再糾正一個(gè)很多人的認(rèn)知誤區(qū)

直到現(xiàn)在,有幾乎 80% 的科普性文章在介紹 rpm 和 deb 文件的時(shí)候,把它們與 RedHat 和 Debian 死死的綁定在一起。以至于很多人潛意識(shí)里認(rèn)為:Debian 系只能用 dpkg,RedHat 系只能用 rpm。

其實(shí)完全不是。他們的關(guān)系,是系統(tǒng)和軟件的關(guān)系,僅僅是Debian 自帶 dpkgapt,RedHat 自帶 rpmyum 而已。

Ubuntu 完全可以通過(guò) sudo apt-get install rpm 安裝一個(gè) rpm 系統(tǒng),然后通過(guò) rpm 安裝各種 rpm 格式的安裝包。

而 CentOS,也完全可以通過(guò)編譯安裝(因?yàn)?yum 源里沒(méi)有 dpkg,噗~) 一個(gè) dpkg,然后安裝各種 deb 格式的安裝包。

只要安裝的軟件所釋放出文件沒(méi)有沖突,兩者在系統(tǒng)上的相處模式,甚至可以用舉案齊眉、相敬如賓來(lái)形容。

根本不像大多數(shù)人認(rèn)為的那樣老死不相往來(lái):

 

責(zé)任編輯:龐桂玉 來(lái)源: Linux中國(guó)
相關(guān)推薦

2010-03-30 16:04:34

Linux Nginx

2012-05-09 10:08:41

跨機(jī)房

2011-08-25 18:35:07

Linux cron執(zhí)

2010-09-27 13:14:42

JVM內(nèi)存限制

2011-08-10 13:46:36

Navicat MySMySQL

2009-10-28 11:27:49

linux服務(wù)器安全

2010-05-04 11:30:29

Oracle漢字長(zhǎng)度

2009-09-03 16:09:48

.net回車(chē)符

2010-02-06 14:54:11

C++指針漂移

2010-10-08 13:09:38

JavaScript數(shù)

2010-05-31 12:53:56

Nagios apac

2011-03-23 16:38:28

LAMP

2010-04-28 19:24:17

Hp unix

2010-08-04 10:20:30

Flex組件開(kāi)發(fā)

2010-10-09 12:58:59

JS腳本兼容

2010-04-06 09:33:37

CentOS系統(tǒng)

2010-09-07 09:08:03

DIV彈出層

2021-01-13 10:18:29

SocketNetty粘包

2010-02-23 17:49:56

WCF傳輸大數(shù)據(jù)

2010-02-24 10:55:01

WCF跨域訪(fǎng)問(wèn)
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

主站蜘蛛池模板: 国产精品成人国产乱一区 | 国产精品区一区二区三区 | 久久久久国产一区二区三区 | 成人一级视频在线观看 | 久久国产成人 | 亚洲欧美视频 | 北条麻妃视频在线观看 | 欧美在线激情 | 91观看 | 亚洲国产欧美国产综合一区 | 国产日韩欧美在线观看 | 亚洲成人精选 | 中文字幕视频在线 | 亚洲精品视频免费看 | 99国产精品视频免费观看一公开 | 久久婷婷香蕉热狠狠综合 | 日本在线免费观看 | 国产高清视频一区二区 | 国产精品久久久久久久 | 国产激情视频网址 | 在线欧美激情 | 国产精品视频一区二区三区 | 91最新入口 | 欧美大片在线观看 | 久久久久久久久久久久久9999 | 日本黄色免费大片 | 二区av | 国产欧美精品一区二区色综合朱莉 | 国产人成精品一区二区三 | 色视频网站免费 | 久久av网| 欧美综合视频在线 | 久久躁日日躁aaaaxxxx | 欧美影院 | 国产成人精品久久 | 成人av网站在线观看 | 天堂在线www | 日韩一二区 | 亚洲 成人 在线 | 国产主播第一页 | 户外露出一区二区三区 |