debian源碼編譯
第一,看大家安裝軟體的時候有沒有使用--prefix這個命令,如果有那就把你指定的文件給刪除了就行了,
第二,如果沒有用這個信念指定就麻煩一點了,那就進入到軟體解壓後的目錄,執行sudo make uninstall看能否成功,
第三,如果不行,那就進入用 editor 查看 makefile 文件 看看裡面卸載的命令是什麼如果該源碼包沒有提供
此類方法刪除 就只能手動刪除
第四,手動刪除最無奈的辦法能不能搞干凈也只能看運氣了,使用whereis xxx 找到軟體安裝目錄,rm -rf 把
這些目錄都刪除,應該能刪除干凈,如whereis python,例子如下:
whereis python
python: /usr/bin/python2.6-config /usr/bin/python2.6 /usr/bin/python /usr/lib/python2.6 /usr/lib64/python2.6 /usr/local/bin/python3.3m-config /usr/local/bin/python3.3m /usr/local/bin/python3.3 /usr/local/bin/python3.3-config /usr/local/lib/python3.3 /usr/include/python2.6 /usr/share/man/man1/python.1.gz
rm -rf /usr/bin/python2.6-config
rm -rf /usr/bin/python2.6
rm -rf /usr/bin/python
rm -rf /usr/lib/python2.6
rm -rf /usr/lib64/python2.6
...................等等,,,
好了,文法就這些吧,如果大家有更好的方法可以評論補充,禁止吐糟,加水。
⑵ DEBIAN安裝軟體apt-get與源代碼編譯的區別和優劣
在 Linux 系統中,使用 apt-get 獲取軟體並安裝自動化更高一些。但是有些驅動程序是沒有現成的,是必須需要自行從網上下載後,再和系統的內核一起進行編譯。如果是從網上下載源代碼來進行編譯的話,用戶操作起來就得麻煩一些。
⑶ 如何使用源代碼構建一個可用的 Ubuntu 軟體包
用dpkg-source -x
foo.dsc從foo.orig.gz和foo.diff.gz創建工作目錄foo:一份發行版中立的源碼目錄,加上一個debian目錄以及目錄下的meta文件,就構成了一份可以生成二進制deb包的源碼工作目錄。其實從apt-get
source抓下來的目錄,已經是通過dpkg-source -x解壓過的了。dpkg-source
-x所做的主要事情就是1.解壓;2.把foo.diff.gz里的patch打到原始文件上。生成的foo目錄下的源文件,都已經是打過deb源碼包里的patch了的。
在foo目錄下,執行dpkg-buildpackage -us
-uc構建包。-us和-uc參數是不做簽名,適合於本地構建本地使用的情況。這個命令的輸出有兩個,一個是二進制deb包,另一個是源碼包,為什麼這里還要生成源碼包?因為你可能改動某些文件,那麼會生成新的diff.gz來記錄所有你針對原始源碼的改動,不管發布還是保存更改都更方便,下一次你只需要在生成的新的.dsc文件上執行dpkg-source -x就可以產生一個一模一樣的源碼了。如果你什麼都沒改動,那麼新產生的源碼包同你構建所來源的源碼包是一樣的。你也可以用參數-b和-S來控制這次構建只產生二進制包或者只產生源碼包。
兩個最重要的meta文件,debian/control和debian/rules。control文件決定了哪些二進制包將從這份源碼目錄中構建,一個源碼目錄往往是好幾個二進制包的輸入源。你不想生成哪個屏蔽它就行。二進制包的運行時依賴關系也在包的聲明中可見,並且control文件也聲明了構建過程中的依賴,不過可以給dpkg-buildpackage傳-d參數來忽略構建依賴。
debian/rules文件其實就是個Makefile,你可以執行make -f debian/rules target來單獨執行某個目標。rules文件里基本上都是對debhelper腳本函數的調用,像是dh_*這樣的函數,它們負責大部分的構建過程。常用的clean, install目標在rules文件中也有,有些基於源碼包的Makefile上所做的事情如make clean需要通過make -f debian/rules clean來代替。
和傳統意義的Make過程有點不一樣的就是,默認狀態下,每次dpkg-buildpackage,其實都是把從configure.ac生成configure腳本,到生成Makefile,到構建source,到安裝binary都做一遍,哪怕你並沒有改過configure.ac,或者改過源代碼.c文件,假如構建失敗了,就需要嘗試改動源代碼重新構建,有時候需要反復嘗試這個過程直到構建成功,如果包很大的話那需要花費的時間就很長,這時傳入-nc參數可以讓dpkg-buildpackage保留當前的構建結果,就像傳統的make一樣只會從出錯的地方重新開始。當然,當對源代碼的改動終止後,最後還是需要再執行一遍不帶-nc參數的命令」dpkg-buildpackage -us -uc」來重新完全構建一遍,否則在生成源碼包時可能會出錯。
dpkg-buildpackage不用擔心它會自動改變你的源文件(即通過dpkg-source
-x產生的文件),當然前提是你確實改動的是」源」文件,比如是configura.ac而不是configure,是dkms.conf.in而不是dkms.conf。
構建軟體時做得最多的事就是根據自己系統的需求調整./configure參數了吧,比如–enable–xxx或者–disable-xxx,在rules文件中,通過帶override前綴的target可以起到為默認的target定製參數的目的,如override_dh_auto_xconfigure:
對源碼包有修改最好通過dch -i來生成一個新的changelog文件,每個change item的title部分都是表示這次change的最新版本號,dpkg-buildpackage的輸出二進制包的版本號其實就是從changelog里提取的(不是寫在control文件里的)。
⑷ 您好,我有一個xorg的源碼包,怎麼讓這個源碼包在我的debian上跑起來
在編譯的時候可以添加一些編譯設置:
可以通過./configure –help來查看我們可以有哪些編譯參數可以設置,
我一般只會選擇
#./autogen.sh -prefix=/usr/local -enable-config-hal CFLAGS='-O0 -g3'
編譯的時候需要下載的包:
xutils, libxkbfile-dev, libxfont-dev, libfontenc-dev, libssl-dev,xvfb
x11proto-fixes-dev, x11proto-damage-dev, x11proto-xcmisc-dev, x11proto-scrnsaver-dev, x11proto-bigreqs-dev, x11proto-resource-dev, x11proto-composite-dev, x11proto-evie-dev, x11proto-xf86dga-dev
libhal-dev
執行make,通過後執行make intall。因為前面設置了–prefix=/usr/local,所以當執行make install的時候將所有編譯的庫和可執行文件都放在/usr/local目錄下,所以不會影響ubuntu8.10自帶的xorg。但是執行startx的時候,系統還是會調用/usr/bin目錄下的xorg,所以我們這個時候只要將/usr/local/bin/xorg拷貝到/usr/bin/目錄下就可以了,這個xorg會自動鏈接/usr/local/目錄下我們編譯的庫,但要注意保存/usr/bin/目錄下本來的xorg,如果想用回原來的xorg,只要將它重新拷貝過去即可。
⑸ debian gcc怎麼改成c++ 11編譯
debian怎麼安裝gcc-c++
一、先安裝gcc3.4.6,為了避免麻煩,或者和原來的gcc4.4造成沖突,請用源代碼安裝方式安裝gcc3.4.6,就是 make make install的方式,而不要用deb包的方式安裝。飢桐
二、一種方法是手動用ln -s創建符號鏈接來管理,但這樣費鍵備時費力,而且容易導致爛亮坦toolchain混亂。
幸好有update-alternatives實用軟體!它可以方便管理好同一軟體的各個不同版本。
1.一般情況下,編譯程序路徑都是使用
/usr/bin/gcc
其實這個/usr/bin/gcc只是個符號鏈接,它指向了/etc /alternatives/gcc,而/etc/alternatives/gcc是指向了/usr/bin/gcc-4.3,可以用ls命令查看
z@GODSON:~$ ls -l /usr/bin/gcc
lrwxrwxrwx 1 root root 21 2009-04-28 13:35 /usr/bin/gcc -> /etc/alternatives/gcc
z@GODSON:~$ ls -l /etc/alternatives/gcc
lrwxrwxrwx 1 root root 16 2009-04-28 13:40 /etc/alternatives/gcc -> /usr/bin/gcc-4.3
⑹ 源代碼怎麼編譯成deb
deb是軟體的打包格式,不用翻譯的,用Debian提供的專門工具程序做。
⑺ 如何編譯安裝源碼包軟體
怎樣安裝以源碼包打包的軟體;
1、源碼包的打包格式;
源代碼一般以file.tar.gz file.tar.bz2或file.src.rpm 打包;file.tar.gz和file.tar.bz2格式的解包命令如下;
[root@localhost beinan]# tar jxvf file.tar.bz2
[root@localhost beinan]# tar zxvf file.tar.gz
至於file.src.rpm 的用法,請參見:《file.src.rpm 使用方法的簡介》
2、如何編譯安裝源碼包;(大多數)
1)解開軟體包查看幫助文檔;
我們解開一個包後,進入解壓包,一般都能發現README(或reame)和INSTALL( 或install);或doc(或DOC)目錄;看名字就知道個差不多;
比如我們下載一個比較新的fcitx 的軟體包,比如是 fcitx-3.2-050827.tar.bz2
我們在解開這個軟體包會會發現如下的文件;
[root@localhost fcitx]# tar jxvf fcitx-3.2-050827.tar.bz2
[root@localhost fcitx]#cd fcitx
[root@localhost fcitx]# ls
aclocal.m4 config.guess configure debian INSTALL Makefile.in src xpm
AUTHORS config.h.in configure.in depcomp install-sh missing THANKS
autogen.sh config.rpath COPYING doc lib mkinstalldirs TODO
ChangeLog config.sub data fcitx.spec.in Makefile.am README tools
所以我們就可以看fcitx的INSTALL 和doc目錄的安裝文檔了;裡面都告訴我們如何安裝;
有時安裝文檔也會在開發者的主頁上有詳細的說明,及常見問題的處理等;比如 LumaQQ
2)編譯安裝軟體的條件;
首 先我們在Linux系統中至少得把開發工具安裝上,比如 gcc ;perl;python;glibc;gtk;make ;automake 等開發工具或基礎包;還要安裝一些相應的開發包,一般是文件名包括dev的,比如kernel-devel;還有一些開發庫,比如以lib開頭的;如果您 在編譯軟體時,有時提示缺少什麼東西之類的,大多少的是這些開發工具和開發庫等;從光碟中找出安裝就是了;有時光碟沒有提供,請用google搜索相應的 軟體包,有時可能也會用到源碼包編譯安裝所依賴的包;
有時本來系統中已經安裝了所依賴的包,但系統提示找不到應該怎麼辦?這時需要我們設置一下PKG_CONFIG_PATH的環境變數就行了;
#export PKG_CONFIG_PATH=/usr/lib/pkgconfig
或
#export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig
然後我們再來運行編譯的./configure ;make ;make install ,嘗試著來吧;
以java開發的工具開發的程序,要用到 jre或者jdk ;jdk已經包括jre了,所以如果我們只是要求有一個java程序運行的環境,只需要安裝jre就行了;安裝好jre,配置一下java的環境變數就可以用了。如果是圖形界面的程序,點點滑鼠就OK了;
用perl 開發的程序,是需要perl環境的,所以必須得把perl的包安裝上,python 也同理;
3)編譯安裝軟體的方法;
大多以tar.gz 和tar.bz2打包軟體,大多是通過 ./configure ;make ;make install 來安裝的;有的軟體是直接make;make install ;
我們可以通過./configure --help 來查看配置軟體的功能;大多軟體是提供./configure 配置軟體的功能的;少數的也沒有,如果沒有的就不用./configure ;直接make;make install 就行了;
./configure 比較重要的一個參數是 --prefix ,用--prefix 參數,我們可以指定軟體安裝目錄;當我們不需要這個軟體時,直接刪除軟體的目錄就行了;
比如我們可以指定fcitx 安裝到 /opt/fcitx 目錄中;
[root@localhost fcitx]#./configure --prefix=/opt/fcitx
如果我們不需要fcitx 時,可以直接刪除 /opt/fcitx 目錄;
所以我們舉這個例子中,fcitx如果定製安裝到 /opt/fcitx目錄中,完整的安裝方法應該是:
[root@localhost fcitx]# tar jxvf fcitx-3.2-050827.tar.bz2
[root@localhost fcitx]#cd fcitx
[root@localhost fcitx]# ./configure --prefix=/opt/fcitx
[root@localhost fcitx]# make
[root@localhost fcitx]# make install
調用fcitx ,應該是
[beinan@localhost ~]#/opt/fcitx/bin/fcitx
如果您想要讓fcitx 只要執行fcitx ,就能調用,請配置環境變數,或者在/usr/bin 中做一個fcitx 的鏈接;
[root@localhost beinan]# ln -s /opt/fcitx/bin/fcitx /usr/bin/fcitx
一般的情況下都有說,但大多軟體沒有提供源碼包的卸載方法;我們可以找到軟體的安裝點刪除。主要看你把它安裝在哪了。
設置環境變數PATH,請參見:《在Fedora Core 中,有些常用命令怎麼沒有?解決辦法設置PATH》
所以您的PATH可以設置成這樣的;
export PATH=".:/bin:/usr/bin:/usr/local/bin:/usr/sbin:/usr/X11R6/bin:/sbin:/opt/fcitx/bin"
當然這只是舉個例子,fcitx 可以進入桌面自動運行的,請參看 http://www.fcitx.org 官方站上的安裝說明;舉個例子只是讓大家好理解一點;
再舉一個例子,比如我想安裝mlterm ;並指定安裝目錄為/opt/mlterm中; http://mlterm.sourceforge.net
#./configure --prefix=/opt/mlterm
#make
#make install
把源碼包安裝的軟體,都指定安裝在 /opt目錄中,這樣不就知道了軟體安裝在哪裡了;也方便卸載;