当前位置:首页 » 操作系统 » deb包源码

deb包源码

发布时间: 2022-09-06 02:28:49

① 如何使用源代码构建一个可用的 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文件里的)。

linux系统安装deb文件怎么安装

.deb文件安装方法如下:

cd 到安装包的目录

dpkg -i 安装包名字

如果你使用的是red hat linux,然后运行以下命令安装

cd 到安装包的目录

rpm -ivh 安装包名字

命令:

要安装 .deb 套件包时

dpkg -i package_file.deb

要反安装 .deb 套件包时

dpkg -r package_name

dpkg的详细使用方法,网上有很多,下面简单列了几个:
dpkg -i package.deb 安装包
dpkg -r package 删除包
dpkg -P package 删除包(包括配置文件)
dpkg -L package 列出与该包关联的文件
dpkg -l package 显示该包的版本
dpkg –unpack package.deb 解开 deb 包的内容
dpkg -S keyword 搜索所属的包内容
dpkg -l 列出当前已安装的包
dpkg -c package.deb 列出 deb 包的内容
dpkg –configure package 配置包

注意:使用此命令需要你自己注意依赖软件,所以这并不是安装软件的最佳方法.

③ linux下如何编译源码包或者说是安装

1、安装编码源码的编译工具,一般是需要安装gcc
yum install gcc
2、把源码解压
tar zxvf uname.tar.gz
3、进入解压的目录执行
./configure
make
make install
完成编译安装

④ 在openSUSE下如何安装deb包以及各种软件包的转换

需要安装Checkinstall创建一个RPM和DEB软件包。 在linux上安装Checkinstall,在Debian及其衍生发行版上安装Checkinstall: # aptitude install checkinstall 在红帽子的发行版上安装Checkinstall,需要下载一个已经打包好的Checkinstall rpm包。 # wget ftp://ftp/mirror/ftp5.gwdg.de/pub/opensuse/repositories /home:/ikoinoba/CentOS_CentOS-6/x86_64/checkinstall-1.6.2-3.el6.1.x86_64.rpm# yum install checkinstall-1.6.2-3.el6.1.x86_64.rpm 一旦checkinstall安装好,就可以用下列格式创建一个特定的软件包 # checkinstall 《install-command》 如果没有参数,默认安装命令“make install”将被使用Checkinstall创建一个RPM或DEB包。在这个例子里,将创建一个htop包,这是一个linux交互式文本模式进程查看器(类似 top)。 首先,让从项目的官方网站下载源代码,作为一个好的习惯,存储源码包到/usr/local/src下,并解压。 # cd /usr/local/src# wget hisham.hm/htop/releases/1.0.3/htop-1.0.3.tar.gz# tar xzf htop-1.0.3.tar.gz# cd htop-1.0.3看看htop的安装命令是什么,以便能用Checkinstall命令调用,如下面所示,htop用“make install”命令安装。 # ./configure# make install因此,要创建一个htop安装包,可以不带任何参数的调用checkinstall,这将使用“make install”命令创建一个包。在这个过程中, checkinstall命令会问你几个问题。 简而言之,如下命令会创建一个htop包: # ./configure# checkinstall “Should I create a default set of package docs?”,回答“Y”: 可以输入一个包的简短描述,然后按两次回车: 输入一个数字以修改下面的任何值或ENTER继续: 然后checkinstall将自动地创建一个.rpm或者.deb包,根据你的linux系统是什么: 在CentOS7: 在Debian 7: Linux系统下使用checkinstall从源码创建RPM或DEB包的方法介绍了,该方法只适用于红帽子和Debian为基础的发行版,其他版本可以做个参考。

⑤ linux中源代码包安装的基本步骤是什么

详解linux源码包安装过程

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-rece -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 包的一些总结

坚持自己动手处理所有的安装出现的问题,不断总结努力学习,从错误里去仔细研究,努力动手排错,从每个不足甚至失败的地方得到扩充和提升,可以增强安装构建软件的技巧。

⑥ 源代码怎么编译成deb

deb是软件的打包格式,不用翻译的,用Debian提供的专门工具程序做。

⑦ ubuntu下如何获取源码包和源码

1、在获取源码包之前,确保在软件源配置文件/etc/apt/sources.list中添加了deb-src项 2、使用如下命令获取xxx源码包的详细信息: sudo apt-cache showsrc xxx这用来查询当前镜像站点中是否有该源码包。 3、源码包中通常包含3个文件,分别以dsc,orig.tar.gz和diff.gz为后缀名。 sudo apt-get source xxx 命令来获取源码包,它会将源码包下载到用户当前目录 并在命令执行过程中,调用dpkg-source命令,根据dsc文件中的信息,将源码包解压到同名目录中,应用程序的源代码就在这里面。 sudo apt-get source xxx 要强调的是,在下载源码包前,必须确保安装了dpkg-dev(执行”apt-get install dpkg-dev”来安装), 否则,只会下载源码包的3个文件,但不会解压缩源码包。当然你也可以自己用dpkg-source命令去解压缩源码包。 4、在编译源码包前,需要安装具有依赖关系的相关软件包。使用”apt-get build-dep”命令可以主动获取并安装所有相关的软件包。 sudo apt-get build-dep xxx 5、现在可以来编译源码包了,首先进入源码所在目录,使用dpkg-buildpackage命令来编译源码包,它会将生成的Deb软件包放置在上层目录中。cd xxx sudo dpkg-buildpackage 这样就会编译生成xxx_i386.deb 6、安装软件包。使用”dpkg –i”命令来安装生成的Deb软件包。

⑧ Linux的rpm包、deb包、tar源码、apt、yum这些软件安装方式哪个更好

看你用什么系统了
Redhat、CentOS、Fedora这些红帽系的,单个包用RPM,如果有资源库的话用YUM,可以自动处理依赖性关系,并且一次安装所有依赖的软件包
Debian、Ubuntu用deb包,apt与红帽中的yum工具类似
如果是源码编译的话,用tar包
再看看别人怎么说的。

⑨ 如何从Linux源码创建RPM或DEB包

在Linux系统操作中,因为某些原因而想要直接从源码创建安装的软件包,下面就如何在Linux系统下从源码创建RPM或DEB包,以便将来可以更容易的卸载程序。

如果已经从它的源码运行“make install”安装了linux程序。想完整移除它将变得真的很麻烦,除非程序的开发者在Makefile里提供了uninstall的目标设置。否则必须在安装前后比较系统里文件的完整列表,然后手工移除所有在安装过程中加入的文件。

这时候Checkinstall就可以派上使用。Checkinstall会跟踪install命令行所创建或修改的所有文件的路径(例如:“make install”、“make install_moles”等)并建立一个标准的二进制包,让能用发行版的标准包管理系统安装或卸载它,(例如Red Hat的yum或者Debian的apt-get命令)。已知它在 Slackware、SuSe、Mandrake 和 Gentoo 上也工作很好,请参考其官方文档。

在这只集中在红帽子和Debian为基础的发行版,并展示怎样从源码使用Checkinstall创建一个RPM和DEB软件包

在linux上安装Checkinstall

在Debian及其衍生发行版上安装Checkinstall:

# aptitude install checkinstall

在红帽子的发行版上安装Checkinstall,你需要下载一个已经打包好的Checkinstall rpm包(例如:从 http://rpm.pbone.net/找到),不过它已经从Repoforge库里删除了。这个包是针对Cent OS6的,不过也可在Cent OS7里工作。

# wget

ftp://ftp.pbone.net/mirror/ftp5.gwdg.de/pub/opensuse/repositories/home:/ikoinoba/CentOS_CentOS-6/x86_64/checkinstall-1.6.2-3.el6.1.x86_64.rpm# yum install checkinstall-1.6.2-3.el6.1.x86_64.rpm

一旦checkinstall安装好,你就可以用下列格式创建一个特定的软件包

# checkinstall 《install-command》

如果没有参数,默认安装命令“make install”将被使用

用Checkinstall创建一个RPM或DEB包

在这个例子里,我们将创建一个htop包,这是一个linux交互式文本模式进程查看器(类似 top)。

首先,让我们从项目的官方网站下载源代码,作为一个好的习惯,我们存储源码包到/usr/local/src下,并解压它。

# cd /usr/local/src# wget http://hisham.hm/htop/releases/1.0.3/htop-1.0.3.tar.gz# tar xzf htop-1.0.3.tar.gz# cd htop-1.0.3

让我们看看htop的安装命令是什么,以便我们能用Checkinstall命令调用它,如下面所示,htop用“make install”命令安装。

# 。/configure# make install

因此,要创建一个htop安装包,我们可以不带任何参数的调用checkinstall,这将使用“make install”命令创建一个包。在这个过程中, checkinstall命令会问你几个问题。

简而言之,如下命令会创建一个htop包:

# 。/configure# checkinstall

“Should I create a default set of package docs?(我会创建一个默认设置的包文件?)”,回答“Y”:

此可以输入一个包的简短描述,然后按两次回车:

输入一个数字以修改下面的任何值或ENTER继续:

上面就来Linux系统下使用checkinstall从源码创建RPM或DEB包的方法。

热点内容
阿里云独享服务器 发布:2024-05-19 02:23:54 浏览:252
织梦源码ga 发布:2024-05-19 02:23:20 浏览:570
java文件名后缀 发布:2024-05-19 02:14:39 浏览:955
快手点榜脚本 发布:2024-05-19 02:08:44 浏览:162
pythonforinkeys 发布:2024-05-19 01:55:44 浏览:792
电脑如何局域网共享文件夹 发布:2024-05-19 01:25:01 浏览:68
手机存储越大性能越好吗 发布:2024-05-19 01:14:28 浏览:176
我的世界hyp服务器怎么玩 发布:2024-05-19 00:51:25 浏览:801
手机如何解压百度云文件 发布:2024-05-19 00:32:24 浏览:905
centos使用python 发布:2024-05-18 23:39:48 浏览:869