deb打包,排好目录,写一个control,二进制打包还是容易的。
1
2
3
4
5
6
7
8
9
10
11
12
13
|
⭕ tree clip-qrcode-share-0.2/
clip-qrcode-share-0.2/
├── DEBIAN
│ └── control
└── usr
├── bin
│ └── clip-qrcode-share
└── share
├── applications
│ └── clip-qrcode-share.desktop
└── pixmaps
└── clip-qrcode-share.png
⭕ dpkg -b clip-qrcode-share-0.2/
|
rpm打包,复杂得多,以前折腾过,现在用f36,又要搞这个。redhat的例子太简单,各种不对头。想找一个和deb统一点的偷懒方式。
步骤
- 安装 rpmdevtools rpmlint
rpmdev-setuptree
建立目录模板
1
2
3
4
5
6
7
|
⭕ rpmdev-setuptree
⭕ tree ~/rpmbuild/
├── BUILD
├── RPMS
├── SOURCES
├── SPECS
└── SRPMS
|
- 从deb目录,复制带结构的文件过去,并编写偷懒的spec。fedora的源里面没有droopy,只好放一个源码在bin目录。
1
2
3
4
5
6
7
|
⭕ pwd
/home/eexpss/project/clip-qrcode-share
⭕ cp -r clip-qrcode-share-0.2/usr ~/rpmbuild/SOURCES/
⭕ cd ~/rpmbuild/SPECS/
⭕ rpmdev-newspec clip-qrcode-share
clip-qrcode-share.spec created; type minimal, rpm version >= 4.17.
⭕ e clip-qrcode-share.spec
|
- spec大致如下,%install部分纯偷懒的写法。其他的%make之类的,都删除,要不各种出错。依赖关系中,版本号不知道如何写,写了安装不了。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
|
Name: clip-qrcode-share
Version: 0.2
Release: 1%{?dist}
Summary: Sharing clipboard and files to mobile by scan QRCode.
BuildArch: noarch
License: GPL V3
URL: https://github.com/eexpress/clip-qrcode-share
Source0: %{name}-%{version}.tar.xz
Requires: libadwaita gtk4 cairo qrencode
%description
Sharing clipboard and files to mobile by scan QRCode.
%define _binaries_in_noarch_packages_terminate_build 0
#error: Arch dependent binaries in noarch package
#错误:noarch 软件包中有架构相关的二进制文件
%install
cd %{_sourcedir}
cp -ar * %{buildroot}/
%files
%{_bindir}/%{name}
%{_bindir}/droopy
%{_datadir}/applications/%{name}.desktop
%{_datadir}/pixmaps/%{name}.png
%changelog
* Thu May 26 2022 eexpss <eexpss@gmail.com>
-
|
- 打包。默认的打包目录,居然在家目录的固定目录,差劲的设计。虽然
~/.rpmmacros
可修改,只是谁会一台机器一次只维护一个包?所以,用过赶紧移走。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
|
⭕ rpmbuild -bb clip-qrcode-share.spec
⭕ tree ~/rpmbuild/
/home/eexpss/rpmbuild/
├── BUILD
├── BUILDROOT
├── RPMS
│ └── noarch
│ └── clip-qrcode-share-0.2-1.fc36.noarch.rpm
├── SOURCES
│ └── usr
│ ├── bin
│ │ ├── clip-qrcode-share
│ │ └── droopy
│ └── share
│ ├── applications
│ │ └── clip-qrcode-share.desktop
│ └── pixmaps
│ └── clip-qrcode-share.png
├── SPECS
│ └── clip-qrcode-share.spec
└── SRPMS
⭕ mv ~/rpmbuild/ ~/project/clip-qrcode-share/
|
常见的宏
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
|
%{_sysconfdir} /etc
%{_prefix} /usr
%{_exec_prefix} %{_prefix}
%{_bindir} %{_exec_prefix}/bin
%{_lib} lib (lib64 on 64bit systems)
%{_libdir} %{_exec_prefix}/%{_lib}
%{_libexecdir} %{_exec_prefix}/libexec
%{_sbindir} %{_exec_prefix}/sbin
%{_sharedstatedir} /var/lib
%{_datadir} %{_prefix}/share
%{_includedir} %{_prefix}/include
%{_oldincludedir} /usr/include
%{_infodir} /usr/share/info
%{_mandir} /usr/share/man
%{_localstatedir} /var
%{_initddir} %{_sysconfdir}/rc.d/init.d
%{_topdir} %{getenv:HOME}/rpmbuild
%{_builddir} %{_topdir}/BUILD
%{_rpmdir} %{_topdir}/RPMS
%{_sourcedir} %{_topdir}/SOURCES
%{_specdir} %{_topdir}/SPECS
%{_srcrpmdir} %{_topdir}/SRPMS
%{_buildrootdir} %{_topdir}/BUILDROOT
%{_var} /var
%{_tmppath} %{_var}/tmp
%{_usr} /usr
%{_usrsrc} %{_usr}/src
%{_docdir} %{_datadir}/doc
%{buildroot} %{_buildrootdir}/%{name}-%{version}-%{release}.%{_arch}
$RPM_BUILD_ROOT %{buildroot}
|