pacman.conf
查看。
常用选项
常用选项都在[options]段。阅读man手册或者查看缺省的pacman.conf可以获得有关信息和用途。
软件仓库
你可以在/etc/pacman.conf和/etc/pacman.d/里定义使用哪些仓库。它们可以直接在里面定义或者从其它文件里包含进来。下面例子中使用官方软件仓库,用
mirrorlist
设定镜像的一个范例。
所有官方软件仓库都使用同一个包含了'$repo'
的
/etc/pacman.d/mirrorlist文件,因此只需要维护一个列表。其中mirrorlist的修改与维护可参见Archlinux的官方wiki
[core]#Addyourpreferredservershere,theywillbeusedfirstInclude=/etc/pacman.d/mirrorlist[extra]#Addyourpreferredservershere,theywillbeusedfirstInclude=/etc/pacman.d/mirrorlist[community]#Addyourpreferredservershere,theywillbeusedfirstInclude=/etc/pacman.d/mirrorlist注意:使用testing和unstable仓库的时候要谨慎。
第一步,先写C程序。目录结构如下。├── SayHello-0.1
│ ├── include
│ │ └── hello.h
│ ├── Makefile
│ ├── SayHello
│ └── src
│ └── hello.c
├── SayHello-0.1.md5
└── SayHello-0.1.tar.gz
SayHello-0.1是项目文件夹,SayHello-.0.1.tar.gz是项目文件夹打包得到的压缩文件。SayHello-0.1.md5是用md5sum SayHello-0.1.tar.gz >SayHello-0.1.md5得到的校验文件(不是非要这个文件,但在制作ArchLinux文件包时,它一直提醒没有校验,没办法了,只好做了一个)。
代码如下:
################################
hello.h
#include <stdio.h>
#include <errno.h>
#define ERR_EXIT(m)\
do\
{\
perror(m)\
exit(-1)\
}while(0)
#####################################
hello.c
#include "hello.h"
int main(int argc ,char* argv[])
{
printf("Hello\n")
printf("This is a test program\n")
return 0
}
#####################################
Makefile
CC = gcc
CFLAGS = -Wall -g
obj = hello.o
VPATH = include:src
#vpath %.c src
#vpath %.h include
SayHello:hello.o
$(CC) $(CFLAGS) -o $@ $<
hello.o:hello.c hello.h
$(CC) -c -Iinclude -o $@ $<
##SayHello:hello.c
##$(CC) $(FLAGS) -Iinclude $<-o $@
.PHONY:clean install uninstall
clean:
-rm hello.o SayHello
install:
cp SayHello ~/bin/
##sudo cp SayHello /usr/local/bin/
uninstall:
-rm ~/bin/SayHello
#######################################3
好了,程序部分已经完成了。然后再打包,建立校验文件。
tar zcvf SayHello-0.1.tar.gz SayHello-0.1
md5sum SayHello-0.1.tar.gz >SayHello-0.1.md5
把它们上传到虚拟机的服务器上去。
scp SayHello-0.1.* XXX@xxx.xxx.xxx.xxx:/var/myftp/pub/
(这一步可以省略,只要把下面的PBKBUILD文件修改一下就可以了。)
第二步,把程序打包成ArchLinux的安装包。
abs的安装配置省略,wiki上已经说得非常清楚了。
在家目录上建立打包目录。
mkdir -pv ~/abs/SayHello
cd ~/abs/SayHello
vi PKGBUILD
这里只有一个文件。代码如下。
#########
PKGBUILD
pkgname=SayHello
pkgver=0.1
pkgrel=20130324
pkgdesc="A Say Hello test program."
arch=('i686' 'x86_64')
url="ftp://xxx.xxx.xxx.xxx"
license=('GPL2')
#depends=()
source=("ftp://xxx.xxx.xxx.xxx/mypub/$pkgname-$pkgver.tar.gz")
md5sums=('这里就是md5文件中的内容,被我隐藏了')
##install=SayHello.install
build()
{
cd $startdir/src/$pkgname-$pkgver
make clean
make
make install
}
好了,现在打包。很简单,直接执行makepkg.现在得到文件
SayHello-0.1-20130324-x86_64.pkg.tar.xz,这个就是需要的archlinux安装包。
现在差不多是最后一步了,先建立仓库位置。
mkdir -pv ~/LocalRepo/Arch
cp SayHello-0.1-20130324-x86_64.pkg.tar.xz ~/LocalRepo/Arch/
cd ~/LocalRepo/Arch/
给仓库添加数据库。
repo-add ~/LocalRepo/Arch/LocalRepo.db.tar.gz SayHello-0.1-20130324-x86_64.pkg.tar.xz
最终的文件如下。
├── LocalRepo.db ->LocalRepo.db.tar.gz
├── LocalRepo.db.tar.gz
└── SayHello-0.1-20130324-x86_64.pkg.tar.xz
最后一步,在pacman.conf中加入本地库。
[LocalRepo]
Server = file:///××××××/LocalRepo/Arch/
好了,所有的流程都完毕了。可以开始测试了。
pacman -Sy
LocalRepo428.0 B 569K/s 00:00 [######################] 100%
本地库已经载入
pacman -Sv SayHello
没有问题。
pacman -Rs SayHello
也没问题。
差不多就是这样了,当然,这只是最简单的应用。升级包什么的都没有做。纯粹是为了跑一遍流程。
Pacman 是一个软体包管理器,,作为ArchLinux发行版的一部分,是 Arch Linux 的一大亮点。它将一个简单的二进制包格式和易用的构建系统结合了起来。不管软体包是来自官方的 Arch 库还是用户自己创建,Pacman 都能方便的管理。
基本介绍 外文名 :pacman 属于 :一个软体包管理器 作为 :ArchLinux发行版的一部分. 简介 :Pacman 都能方便的管理 简介,简单,配置,图形前端, 简介 Pacman 包管理器是 Arch Linux 的一大亮点。它将一个简单的二进制包格式和易用的构建系统结合了起来。不管软体包是来自官方的 Arch 库还是用户自己创建,Pacman 都能方便的管理。 Pacman 通过和主伺服器同步软体包列表来进行系统更新,这使得注重安全的系统管理员的维护工作成为轻而易举的事情。这种伺服器/客户端模式可以使用一条命令就下载/安装软体包,同时安装必需的依赖包。简单 要完全了解pacman可以做什么,请阅读man pacman。以下只是一些pacman的简单 *** 作实例同步与升级
安装和升级软体包前,先让本地的包资料库和远程的软体仓库同步是个好习惯。
pacman -Syy
也可以使用一句命令同时进行同步软体库并更新系统到最新状态
pacman -Syu
安装软体包
安装或者升级单个软体包,或者一列软体包(包含依赖包),使用如下命令:
pacman -S package_name1 package_name2
有时候在不同的软体仓库中,一个软体包有多个版本(比如extra和testing)。你可以选择一个来安装:
pacman -S extra/package_name
pacman -S testing/package_name
你也可以在一个命令里同步包资料库并且安装一个软体包:
pacman -Sy package_name
卸载软体包
删除单个软体包,保留其全部已经安装的依赖关系
pacman -R package_name
删除指定软体包,及其所有没有被其他已安装软体包使用的依赖关系:
pacman -Rs package_name
包资料库查询
可以使用 -Q 标志搜寻和查询本地包资料库。详情参见
pacman -Q --help
可以使用-S 标志搜寻和查询远程同步的包资料库。详情参见
pacman -S --help
其它
下载包而不安装它:
pacman -Sw package_name
安装一个本地包(不从源里):
pacman -U /path/to/package/package_name-version.pkg.tar.gz
完全清理包快取(/var/cache/pacman/pkg):
pacman -S 配置 Pacman的配置档案位于/etc/pacman.conf。关于配置档案的进一步信息可以用man pacman.conf查看。 常用选项常用选项都在[options]段。阅读man手册或者查看预设的pacman.conf可以获得有关信息和用途。 软体仓库你可以在/etc/pacman.conf和/etc/pacman.d/里定义使用哪些仓库。它们可以直接在里面定义或者从其它档案里包含进来。下面例子中使用官方软体仓库,用 mirrorlist 设定镜像的一个范例。 所有官方软体仓库都使用同一个包含了'$repo' 的 /etc/pacman.d/mirrorlist档案,因此只需要维护一个列表。其中mirrorlist的修改与维护可参见Archlinux的官方 [core]#Addyourpreferredservershere,theywillbeusedfirstInclude=/etc/pacman.d/mirrorlist[extra]#Addyourpreferredservershere,theywillbeusedfirstInclude=/etc/pacman.d/mirrorlist[community]#Addyourpreferredservershere,theywillbeusedfirstInclude=/etc/pacman.d/mirrorlist 注意: 使用 testing 和 unstable 仓库的时候要谨慎。图形前端 pacman的官方并没有发布有图形界面的前端,其他的开发者发布了可用的pacmanGUI图形前端。 PacmanXG4 — 是一个 pacman 的 GUI 前端。 不依赖于 GTK 或者 Qt,仅仅依赖 X11。它可以完成以下功能:安装/移除/升级软体包 搜寻/过滤软体包 获取软体包信息,包括截图 降级软体包 (需要 AUR/downgrade 工具) 刷新包资料库,同步镜像 一键式系统升级 Find out which package a specific file belongs to (include file with pkgfile utility) YAOURT 支持
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)