Linux Package Management (Distribute Your App)
(Difference between revisions)
(added assessment sections) |
(updates to pre-req's) |
||
Line 8: | Line 8: | ||
|'''Prerequisite Knowledge''' || Students should be familiar with: | |'''Prerequisite Knowledge''' || Students should be familiar with: | ||
* Beginner Shell knowledge (linux command line) | * Beginner Shell knowledge (linux command line) | ||
+ | The following could be taught/learned during this activity: | ||
* Getting around the linux file system, sudo'ing, editing files, etc. | * Getting around the linux file system, sudo'ing, editing files, etc. | ||
* Making and compiling Linux software code | * Making and compiling Linux software code | ||
Line 27: | Line 28: | ||
* https://fedoraproject.org/wiki/Packaging:Guidelines?rd=Packaging/Guidelines#Writing_a_package_from_scratch | * https://fedoraproject.org/wiki/Packaging:Guidelines?rd=Packaging/Guidelines#Writing_a_package_from_scratch | ||
* http://www.rpm.org/wiki/Docs | * http://www.rpm.org/wiki/Docs | ||
− | |||
Are there other activities the student should have done first? | Are there other activities the student should have done first? | ||
+ | * To get command-line basics, students can follow: [[Linux_Beginner_Activity]] | ||
+ | ** The requirements above ask for slightly more in-depth command-line experience via sudo and code compilation | ||
What is the rationale for this activity? | What is the rationale for this activity? |
Revision as of 18:20, 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:
The following could be taught/learned during this activity:
|
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?
- To get command-line basics, students can follow: Linux_Beginner_Activity
- The requirements above ask for slightly more in-depth command-line experience via sudo and code compilation
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