1. 解压缩包
可以通过下载或其他方式获得了一个软件包,通常它是一个压缩文件,大部分可能是存档的和压缩的,这些文件一般以 .tar .gz为扩展名。
首先拷贝它到一个目录,然后 untar 和 gunzip 解压它。 通常这个命令是
tar xzvf filename [filename 是软件文件名称]
解压后的文件一般会在当前目录下的创建子目录,并以这个包名来命名。 你也可以用用这个命令预先查看结果 tar tzvf filename,显示包里有那些解压文件。
源文件如果是新的 bzip2 (.bz2) 格式,可用
bzip2 -cd filename | tar xvf -,或更简单的 tar xyvf filename ,这很不错的tar命令被不断的完善。
说明:
A:有时候一些文件必须安装在用户的 home 目录下,或更多的是在一个固定的目录,比如 /, /usr/src, 或 /opt 。所以必须仔细阅读安装包的配置信息。当一个软件包里如果有config 和 Makefiles 文件则最好去编辑它,这里包括了安装指令和说明。提示:你改变 makefile 会导致不同的结果侍罩春。大部分软件包允许用 make install 自动处理安置二进制文件在适当的系统位置。
B:你可能碰到过一些共享文件、shell 存档文件闷睁、尤其是 Internet 上的源码新闻组。它们保留的原因是具有人性化的可读性,并且允许新闻组缓冲并通过它们筛选和剔除出不合格的。它们可能用 unshar filename.shar 命令来解压。
C: 一些源码存档文件是用非标准的 DOS,Mac 或其他压缩的比如:
zip, arc, lha, arj, zoo, rar, and shk.
D: 有时候,你可能需要使用一个 patch 或显示改变了的 diff 文件来升级或修复存档的源码文件。这 doc 文件或者 README 文件将告诉你怎么去使用。一个很好的命令用标准语法来调用的命令是 patch < patchfile.
2: 关于 rpm 安装包
一些 Linux 用户惧怕通过使用源码来手动安装软件包,不过现在有方便的 rpm 和 deb 或 新格式的 slp 包。例如:rpm 安装运行平稳又快,作为一个软件安装在某几个有名的 *** 作系统。
作为方便的RPM包也存在很多不好的缺点,例如:
A: 要了解软件中更多更详细的内容你必须去在二进制中去了解,而不是rpm包。
B: 还有安装一个 rpm 包如果需要依赖关系那么安装就可能会导致失败。
C: 当 rpm 请求你系统中不同版本的库,那么安装将不能继续,除非你为错误的库位置创建连接符号到正确的位置。
说明:必须使用root 安装 rpm 和 deb 。因为它需要必须的写入权限。
最简单的,用命令 rpm -i packagename.rpm 和 dpkg --install packagename.deb 会自动解包和安装。
3:关于安装 Linux 包出现的一些问题及解决方案
假设 make 失败有个链接错误: -lX11: No such file or directory,正好在 xmkmf 之后已被调用,这可能意味着 Imake 不能被完全建立。检查第一部分 Makefile 文件的的行是这样:
· LIB=-L/usr/X11/lib
· INCLUDE=-I/usr/X11/include/X11
· LIBS= -lX11 -lc -lm
这个 -L 和 -I 开关告诉编译器和链接分别在哪里找到 library 和 include 文件。在这个例子里, X11 库应该在 /usr/X11/lib 目录,且 X11 包老耐含文件应该在 /usr/X11/include/X11 目录里。假如对于你的机器上的这个错误,请处理修改 Makefile 并重新再 make。
没有声明涉及的数学库函数,像下列各项:
/tmp/cca011551.o(.text 0x11): undefined reference to `cos'
要修复它,需要明确链接到匹配的库,在 Makefile (看先前的例子) 里增加一个 -lm 到 LIB 或 LIBS 标记 。
用其他方法尝试
仍然失败 如果失败,参考下列脚本:
make -DUseInstalled -I/usr/X386/lib/X11/config
这个直接方式的类别相当于。
在少数例子里,用 root 运行 ldconfig 可能会解决:
# ldconfig 更新共享库链接符号。
一些 Makefiles 使用你系统里未被承认的库别名。一个例子,构建可能需要 libX11.so.6 ,但是在 /usr/X11R6/lib 不存在文件或链接。然而,在那里是 libX11.so.6.1。解决方法是用 root 运行ln -s /usr/X11R6/lib/libX11.so.6.1 /usr/X11R6/lib/libX11.so.6 ,接着需要运行 ldconfig 。
有一些包需要你安装一个或更多库的升级版本。需要拷贝一个或更多的库到适当的目录里,删除旧的库,重新设置动态链接库。
4:一些其他的问题处理
安装一个shell 脚本如果出现:No such file or directory 的错误消息。这是可以检查文件权限确定文件事可执行的,并检查文件头确定是否 shell 或程序是脚本在指定的位置被调用。一个例子,这个脚本可能是这样开始的:
#!/usr/local/bin/EDEN
如EDEN的实际安装位置是在你的 /usr/bin 目录,用一个 /usr/local/bin 替代
这个脚本不能运行有两个方法来纠正!!
A: 文件头改成 #!/usr/bin/EDEN
B: 或增加一个链接符, ln -s /usr/bin/EDEN
5:一个典型的例子 Xloadimage
首先说明下面的例子来源于国外网站的一个技术实例,这里我做了翻译和整理。
这个例子展现一个简单的问题。xloadimage 程序对我的图形工具的调整设置是有用的附加。从源码目录拷贝文件,用 tar xzvf 解压文件,可是在运行 make 的时候出现令人讨厌的错误并停止了。
gcc -c -O -fstrength-reduce -finline-functions -fforce-mem
-fforce-addr -DSYSV -I/usr/X11R6/include
-DSYSPATHFILE=\"/usr/lib/X11/Xloadimage\" mcidas.c
In file included from /usr/include/stdlib.h:32,
from image.h:23,
from xloadimage.h:15,
from mcidas.c:7:
/usr/lib/gcc-lib/i486-linux/2.6.3/include/stddef.h:215:
conflicting types for `wchar_t'
/usr/X11R6/include/X11/Xlib.h:74: previous declaration of
`wchar_t'
make[1]: *** [mcidas.o] Error 1
make[1]: Leaving directory
`/home/thegrendel/tst/xloadimage.4.1'
make: *** [default] Error 2
这个错误消息包含了实质的线索:
查看 image.h 文件的 23 行:
#include <stdlib.h>
在源码的某处对于 xloadimage, wchar_t 已经在指定标准 include 文件重新定义。 告诉我们首先在 image.h 的 23 行尝试注释它,或许 stdlib.h include 是不存在的,毕竟不是所有都是必需的。
在这点,构建中的收益来源于所有任何一个致命错误。xloadimage 现在功能正常。
6: 安装 Linux 包的一些总结
坚持自己动手处理所有的安装出现的问题,不断总结努力学习,从错误里去仔细研究,努力动手排错,从每个不足甚至失败的地方得到扩充和提升,可以增强安装构建软件的技巧。
怎样安装以源码包打包的软件;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 perlpythonglibcgtkmake 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 来安装的;有的软件是直接makemake install ;
我们可以通过./configure --help 来查看配置软件的功能;大多软件是提供./configure 配置软件的功能的;少数的也没有,如果没有的就不用./configure 直接makemake 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目录中,这样不就知道了软件安装在哪里了;也方便卸载;
一般软件都有加密混淆的,所以给你源码你也看不懂银码。如果非要看的话,如下 *** 作:
1:拍神把APK包袭搏亏改为.zip格式,解压出来
2:下载dex2jar将解压文件夹里的class.dex文件转为.jar文件
3:下载软件jd-gui,然后用此软件打开.jar的文件,里面就是源码~
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)