No edit summary |
(copr) |
||
(20 intermediate revisions by 10 users not shown) | |||
Line 1: | Line 1: | ||
{{autolang|base=yes}} | |||
{{old}} | |||
{{admon/warning|You probably want to use Copr for this, instead: https://copr.fedorainfracloud.org/}} | |||
= Fedora People Repos = | = Fedora People Repos = | ||
Fedora Packagers looking to create a repo at http://repos.fedorapeople.org/ should follow the directions below. These repos should only be used for packages that are intended for end-user non-transient use. For example: | Fedora Packagers looking to create a repo at http://repos.fedorapeople.org/ should follow the directions below. These repos should only be used for packages that are intended for end-user non-transient use. For example: | ||
Line 6: | Line 12: | ||
* Alternate packages already available (different compile options for example) | * Alternate packages already available (different compile options for example) | ||
Things it should | Things it should '''not''' be used for include: | ||
* Package reviews | * Package reviews | ||
* Stuff on the [ | * Stuff on the [[ForbiddenItems|Forbidden Items]] page | ||
= Create repo = | = Create repo = | ||
Line 15: | Line 21: | ||
== Create Repo Layout == | == Create Repo Layout == | ||
Log in to fedorapeople.org and run: | Log in to fedorapeople.org using ssh and run: | ||
<pre> | <pre> | ||
$ newgrp cla_done | |||
$ new_repo | $ new_repo | ||
</pre> | </pre> | ||
Line 37: | Line 44: | ||
</pre> | </pre> | ||
You now have 3 local yum repos in your i386, x86_64 and SRPMS directory | You now have 3 local [[dnf]]|[[yum]] repos in your i386, x86_64 and SRPMS directory | ||
{{Admon/note | It is recommended to use a dist tag when creating rpms to avoid confusion }} | {{Admon/note | It is recommended to use a dist tag when creating rpms to avoid confusion }} | ||
Line 46: | Line 53: | ||
<pre> | <pre> | ||
$ rsync -avz * | $ rsync -avz * fas_name@fedorapeople.org:$REPO_PATH | ||
</pre> | </pre> | ||
Line 64: | Line 71: | ||
<pre> | <pre> | ||
rm -rf /srv/ | rm -rf /srv/repos/mmcgrath/nagios | ||
</pre> | |||
== Script for easy create tree local repo directory == | |||
<pre> | |||
#!/usr/bin/env bash | |||
repoLocalDir=~/repos | |||
declare -a branches=(fedora-13 fedora-14) | |||
declare -a rpmdir=(i386 x86_64 noarch SRPMS) | |||
IFS=",$IFS" | |||
eval mkdir -pv $repoLocalDir/{"${branches[*]}"}/{"${rpmdir[*]}"} | |||
</pre> | |||
== Script for easy repo update == | |||
<pre> | |||
#!/usr/bin/env bash | |||
fasLogin=bioinfornatics | |||
repoLocalDir=~/repos | |||
repoName=D | |||
declare -a branch=(fedora-13 fedora-14) | |||
declare -a rpmdir=(i386 x86_64 noarch SRPMS) | |||
declare -a rsyncParam=(-avtz --delete) | |||
cd $repoLocalDir | |||
for dir2 in "${branch[@]}" | |||
do | |||
echo -e "\033[31mUpdate $dir2 repos:\033[0m" | |||
cd $dir2 | |||
for dir3 in "${rpmdir[@]}" | |||
do | |||
echo -e "\033[34m\t* $dir3:\033[0m" | |||
cd $dir3 | |||
createrepo ./ | |||
rsync "${rsyncParam[@]}" ./* $fasLogin@fedorapeople.org:/srv/repos/$fasLogin/$repoName/$dir2/$dir3 | |||
cd .. | |||
done | |||
cd .. | |||
done | |||
cd .. | |||
</pre> | |||
In my example i put all fedora branch in ~/repos directory so maybe you need modify this. You can use sed for quick replace as: | |||
<pre> | |||
$ sed -i "s|repoLocalDir=~/repos|repoLocalDir=newDirName|" | |||
</pre> | |||
And you need replace bioinfornatics by to own fas login | |||
<pre> | |||
$ sed -i "s|fasLogin=bioinfornatics|fasLogin=fasLoginName|" | |||
</pre> | |||
In last my repos is named D so you need replace this to: | |||
<pre> | |||
$ sed -i "s|repoName=D|repoName=myRepoName|" | |||
</pre> | </pre> | ||
[[Category: Package Maintainers]] | [[Category: Package Maintainers]] |
Latest revision as of 14:48, 9 April 2018
Fedora People Repos
Fedora Packagers looking to create a repo at http://repos.fedorapeople.org/ should follow the directions below. These repos should only be used for packages that are intended for end-user non-transient use. For example:
- Bring a major release version to an older Fedora release
- Testing out new software before putting it in rawhide
- Alternate packages already available (different compile options for example)
Things it should not be used for include:
- Package reviews
- Stuff on the Forbidden Items page
Create repo
Create Repo Layout
Log in to fedorapeople.org using ssh and run:
$ newgrp cla_done $ new_repo
And follow the directions.
Local Repo
You must create all repodata locally on your workstation, not on fedorapeople.org. If you compiled via koji --scratch builds, download those builds and follow the example below (nagios, nagios-debuginfo and nagios-devel had already been downloaded to ~/)
$ mkdir /tmp/myrepo $ cd /tmp/myrepo $ mkdir i386 x86_64 SRPMS $ cp ~/nagios*3.1.2-2.fc12.i386.rpm ./i386 $ cp ~/nagios*3.1.2-2.fc12.x86_64.rpm ./x86_64 $ cp ~/nagios-3.1.2-2.fc12.src.rpm ./SRPMS $ for dir in *; do cd $dir; createrepo ./; cd ..; done
You now have 3 local dnf|yum repos in your i386, x86_64 and SRPMS directory
Upload Repos
Note: to complete this step you need the REPO_PATH from the "Create Repo Layout" above.
$ rsync -avz * fas_name@fedorapeople.org:$REPO_PATH
Accessing new repo
Your new repo should now be listed at:
http://repos.fedorapeople.org/repos/
A cron job will be run regularly to add it to the list of known repos at:
http://repos.fedorapeople.org/
Delete repo
To delete a path, just use REPO_PATH from above and remove it:
rm -rf /srv/repos/mmcgrath/nagios
Script for easy create tree local repo directory
#!/usr/bin/env bash repoLocalDir=~/repos declare -a branches=(fedora-13 fedora-14) declare -a rpmdir=(i386 x86_64 noarch SRPMS) IFS=",$IFS" eval mkdir -pv $repoLocalDir/{"${branches[*]}"}/{"${rpmdir[*]}"}
Script for easy repo update
#!/usr/bin/env bash fasLogin=bioinfornatics repoLocalDir=~/repos repoName=D declare -a branch=(fedora-13 fedora-14) declare -a rpmdir=(i386 x86_64 noarch SRPMS) declare -a rsyncParam=(-avtz --delete) cd $repoLocalDir for dir2 in "${branch[@]}" do echo -e "\033[31mUpdate $dir2 repos:\033[0m" cd $dir2 for dir3 in "${rpmdir[@]}" do echo -e "\033[34m\t* $dir3:\033[0m" cd $dir3 createrepo ./ rsync "${rsyncParam[@]}" ./* $fasLogin@fedorapeople.org:/srv/repos/$fasLogin/$repoName/$dir2/$dir3 cd .. done cd .. done cd ..
In my example i put all fedora branch in ~/repos directory so maybe you need modify this. You can use sed for quick replace as:
$ sed -i "s|repoLocalDir=~/repos|repoLocalDir=newDirName|"
And you need replace bioinfornatics by to own fas login
$ sed -i "s|fasLogin=bioinfornatics|fasLogin=fasLoginName|"
In last my repos is named D so you need replace this to:
$ sed -i "s|repoName=D|repoName=myRepoName|"