Linux Package Management (Distribute Your App)
(Difference between revisions)
(overview added; directions spiffed up) |
(added assessment sections) |
||
Line 15: | Line 15: | ||
* Make and Compile existing code into a binary RPM package | * Make and Compile existing code into a binary RPM package | ||
* Upload a package to an online repository | * Upload a package to an online repository | ||
− | * Install | + | * Install a package from an online repository |
|} | |} | ||
Line 57: | Line 57: | ||
How will learning will be measured? | How will learning will be measured? | ||
− | |||
− | |||
{| border="1" class="wikitable" | {| border="1" class="wikitable" | ||
Line 67: | Line 65: | ||
! Level 4 (exceptional) | ! Level 4 (exceptional) | ||
|- | |- | ||
− | | ''' | + | | '''Installs and inspects RPMs with dnf/yum''' |
| | | | ||
| | | | ||
Line 74: | Line 72: | ||
|- | |- | ||
− | | ''' | + | | '''Compiles code into binary RPM''' |
+ | | | ||
+ | | | ||
+ | | | ||
+ | | | ||
+ | |||
+ | |- | ||
+ | | '''Uploads RPM to COPR or other online repo''' | ||
+ | | | ||
+ | | | ||
+ | | | ||
+ | | | ||
+ | |||
+ | |- | ||
+ | | '''Installs colleagues RPM from COPR''' | ||
| | | | ||
| | | |
Revision as of 18:00, 10 February 2016
Title | Linux package management (distribute desktop apps) (build your own linux package) |
Overview | Students will learn about rpm and dnf/yum package tooling and then actually create their own package from code, upload it to a public package repository and finally have a classmate install their compiled package. This can be advertised to students as being able to distribute their own linux-based application to the world. |
Prerequisite Knowledge | Students should be familiar with:
|
Learning Objectives | Upon completion, students should be able to:
|
Background:
Is there background reading material?
- What are the various software installation methods on Linux: http://www.howtogeek.com/191245/beginner-geek-how-to-install-software-on-linux/
- http://www.control-escape.com/linux/lx-swinstall.html
- https://help.ubuntu.com/community/SoftwarePackagingFormats
- https://wiki.archlinux.org/index.php/Arch_User_Repository, https://wiki.archlinux.org/index.php/Arch_packaging_standards
- https://fedoraproject.org/wiki/Packaging:Guidelines?rd=Packaging/Guidelines#Writing_a_package_from_scratch
- http://www.rpm.org/wiki/Docs
Are there other activities the student should have done first?
What is the rationale for this activity?
Include helpful hints to faculty here.
Directions:
- Learn about yum and dnf. Have students find it themselves. https://en.m.wikipedia.org/wiki/DNF_(software),
- Use an existing, easy, mature, yet small project like wget or top (or something that doesn't come standard on most systems) to have students compile and make and package.
- See example of packaging the `wget` command
- Have students rename it so the command line can be run as a test
- Have students host the package on a web source (ftp? Some free internet service that makes the .rpm accessible by URL)
- Package Repo location
- http://copr.fedorainfracloud.org - Use this for students to make their own packages and repositories
- https://fedorahosted.org/copr/ - The actual community / project page where user manuals and developer resources exist
- Package Repo location
- Have each student in the class pair up and try to install the other person's RPM and run the new command
Deliverables:
What will the student hand in?
Assessment:
How will the activity be graded?
How will learning will be measured?
Criteria | Level 1 (fail) | Level 2 (pass) | Level 3 (good) | Level 4 (exceptional) |
---|---|---|---|---|
Installs and inspects RPMs with dnf/yum | ||||
Compiles code into binary RPM | ||||
Uploads RPM to COPR or other online repo | ||||
Installs colleagues RPM from COPR |
Comments:
What should the instructor know before using this activity?
What are some likely difficulties that an instructor may encounter using this activity?
Additional Information:
ACM Knowledge Area/Knowledge Unit | What ACM Computing Curricula 2013 knowledge area and units does this activity cover? ACM_Body_of_Knowledge |
ACM Topic | What specific topics are addressed? The Computing Curriucula 2013 provides a list of topics - https://www.acm.org/education/CS2013-final-report.pdf |
Level of Difficulty | Is this activity easy, medium or challenging? |
Estimated Time to Completion | How long should it take for the student to complete the activity? |
Materials/Environment |
|
Author | Who wrote this activity? |
Source | Is there another activity on which this activity is based? If so, please provide a link to the original resource. |
License | Under which license is this material made available? (http://creativecommons.org/licenses/) |
Suggestions for Open Source Community:
Suggestions for an open source community member who is working in conjunction with the instructor.
This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License