aboutsummaryrefslogtreecommitdiffstats
path: root/README.md
blob: 8f96e2de0995fd1d0fa38ce03f767e2cf141c6a8 (about) (plain)
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
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
<a rel="license" href="https://www.gnu.org/licenses/gpl-3.0.md" target="_blank"><img alt="GPLv3" src="https://www.gnu.org/graphics/gplv3-127x51.png" /></a><br /><span xmlns:dct="http://purl.org/dc/terms/" property="dct:title">**DR**</span> by <a href="https://git.sdxlive.com/DR/about/#about-me" target="_blank">**Jean-Christophe Manciot**</a> is licensed under a <a rel="license" href="https://www.gnu.org/licenses/gpl-3.0.md" target="_blank">**GPLv3 License**</a>.

## Table of Contents

[TOC]

## About Me

I have performed the following steps for this DR:

  + I have signed the <a href="https://launchpad.net/~manciot-jeanchristophe/+codesofconduct" target="_blank">Ubuntu Code of Conduct</a> which goes beyond Debian Code of Conduct
  + I have published <a href="http://keyserver.ubuntu.com:11371/pks/lookup?fingerprint=on&op=index&search=0xDF7396D82BBA3684FCCADD4DB063838ED13997FD" target="_blank">my OpenPGP PPA key</a>
  + I use it to [sign all packages](#my-pgp-key)
  + I'm also an active member of several development communities, including:
    - <a href="https://bugs.launchpad.net/~manciot-jeanchristophe" target="_blank">Canonical Ubuntu</a>
    - <a href="https://github.com/search?o=desc&q=author%3Ajean-christophe-manciot&s=created&type=Issues" target="_blank">GitHub</a>
    - <a href="https://bugzilla.redhat.com/buglist.cgi?bug_status=NEW&bug_status=ASSIGNED&bug_status=POST&bug_status=MODIFIED&bug_status=ON_DEV&bug_status=ON_QA&bug_status=VERIFIED&bug_status=RELEASE_PENDING&bug_status=CLOSED&columnlist=reporter_realname%2Cproduct%2Ccomponent%2Cassigned_to%2Cbug_status%2Cresolution%2Cshort_desc%2Cchangeddate&email1=actionmystique@gmail.com&emailassigned_to1=1&emailcc1=1&emailreporter1=1&emailtype1=exact&list_id=4939852&query_based_on=&query_format=advanced&resolution=---&resolution=NOTABUG&resolution=WONTFIX&resolution=DEFERRED&resolution=WORKSFORME&resolution=CURRENTRELEASE&resolution=RAWHIDE&resolution=ERRATA&resolution=DUPLICATE&resolution=UPSTREAM&resolution=NEXTRELEASE&resolution=CANTFIX&resolution=INSUFFICIENT_DATA&resolution=EOL" target="_blank">Red Hat</a>
    - <a href="https://sourceforge.net/u/jcmanciot/activity/" target="_blank">SourceForge</a>

## DR Contents

This DR is operational for the latest Debian testing release **bullseye (11.0)** only.
All packages (with some exceptions) have been built and tested for this specific environment on x86_64 architectures.

Any source package listed in the links below is built, tested (during the build process) & its binary packages uploaded into this DR only when its version is fresher than what is available at that time for the corresponding binaries on the official Debian repositories of the latest development distribution.
This means that this DR does not mirror the official Debian repositories of the latest development distribution, but rather enhances them with more recent releases.

The packages which are available on this dynamic DR can be divided into the following collections:

### Developer

<a href="https://git.sdxlive.com/DR/about/Developer/README.md" target="_blank"><p align="left"><img src="https://git.sdxlive.com/DR/plain/Developer/logo.png"/></p></a> 
**<a href="https://git.sdxlive.com/DR/about/Developer/README.md" target="_blank">Developer</a>**

### Drive

<a href="https://git.sdxlive.com/Drive/about/README.md" target="_blank"><p align="left"><img src="https://git.sdxlive.com/Drive/plain/logo.png"/></p></a> 
**<a href="https://git.sdxlive.com/Drive/about/README.md" target="_blank">Drive</a>**

### GNS3

<a href="https://git.sdxlive.com/DR/about/GNS3/README.md" target="_blank"><p align="left"><img src="https://git.sdxlive.com/DR/plain/GNS3/logo.png"/></p></a> 
**<a href="https://git.sdxlive.com/DR/about/GNS3/README.md" target="_blank">GNS3</a>**

### KVM

<a href="https://git.sdxlive.com/DR/about/KVM/README.md" target="_blank"><p align="left"><img src="https://git.sdxlive.com/DR/plain/KVM/logo.png"/></p></a> 
**<a href="https://git.sdxlive.com/DR/about/KVM/README.md" target="_blank">KVM</a>**

### Network

<a href="https://git.sdxlive.com/DR/about/Network/README.md" target="_blank"><p align="left"><img src="https://git.sdxlive.com/DR/plain/Network/logo.png"/></p></a> 
**<a href="https://git.sdxlive.com/DR/about/Network/README.md" target="_blank">Network</a>**

### Security

<a href="https://git.sdxlive.com/DR/about/Security/README.md" target="_blank"><p align="left"><img src="https://git.sdxlive.com/DR/plain/Security/logo.png"/></p></a> 
**<a href="https://git.sdxlive.com/DR/about/Security/README.md" target="_blank">Security</a>**

### System
<a href="https://git.sdxlive.com/DR/about/System/README.md" target="_blank"><p align="left"><img src="https://git.sdxlive.com/DR/plain/System/logo.png"/></p></a> 
**<a href="https://git.sdxlive.com/DR/about/System/README.md" target="_blank">System</a>**

### Wireshark
<a href="https://git.sdxlive.com/DR/about/Wireshark/README.md" target="_blank"><p align="left"><img src="https://git.sdxlive.com/DR/plain/Wireshark/logo.png"/></p></a> 
**<a href="https://git.sdxlive.com/DR/about/Wireshark/README.md" target="_blank">Wireshark</a>**

## Requirements

Installing this dynamic Debian repository on your system to benefit from the latest stable & unstable packages requires the following pre-conditions to be met:

  + your system must be running the latest Debian testing distribution (currently **bullseye (11.0)**)
  + at least the following repositories should be declared in your ```etc/apt/sources.list``` file:
    - ```deb http://deb.debian.org/debian testing main contrib non-free```
    - ```deb http://security.debian.org/ testing/updates main contrib non-free```

Any other list of repositories has not been tested in conjunction with this DR.

## Installing

**The steps to add the DR on your system** are described below.

### My PGP Key

You need to import **my public PGP key** into your gpg public keyring and apt dedicated keyring with: 

```
sudo gpg --keyserver keys.openpgp.org --receive-keys DF7396D82BBA3684FCCADD4DB063838ED13997FD
sudo gpg --export --armor DF7396D82BBA3684FCCADD4DB063838ED13997FD > /etc/apt/trusted.gpg.d/JC_Manciot_DR.asc
```

Other public key servers can be used as well, such as:

  + pgpkeys.mit.edu
  + keyserver.ubuntu.com
  + keys.gnupg.net

N.B: ```apt-key``` has been **deprecated**.

### DR Stable Component

Installing **the stable DR for Debian bullseye (11.0)** using **one of the following methods**, CLI or GUI (Synaptic): 

#### CLI Stable

```
sudo bash -c $'echo "deb https://git.sdxlive.com/DR/plain/Debian bullseye stable #JC Manciot's stable DR" > /etc/apt/sources.list.d/jean-christophe-manciot.list'
sudo apt update
sudo apt upgrade
sudo apt --show-progress install <package>
```

#### GUI Stable

  + Synaptic --> Settiungs --> Repositories --> Other Software --> Add ```deb https://git.sdxlive.com/DR/plain/Debian bullseye stable #JC Manciot's stable DR```
  + Reload
  + Mark all Upgrades
  + Apply
  + Search ```<package>```
  + Mark for Installation
  + Apply

### DR Unstable Component

Installing **the unstable DR for Debian bullseye (11.0)** using **one of the following methods**, CLI or GUI (Synaptic): 

#### CLI Unstable

```
sudo bash -c $'echo "deb https://git.sdxlive.com/DR/plain/Debian bullseye unstable #JC Manciot's unstable DR" >> /etc/apt/sources.list.d/jean-christophe-manciot.list'
sudo apt update
sudo apt upgrade
sudo apt --show-progress install <package>
```

#### GUI Unstable

  + Synaptic --> Settiungs --> Repositories --> Other Software --> Add ```deb https://git.sdxlive.com/DR/plain/Debian bullseye unstable #JC Manciot's unstable DR```
  + Reload
  + Mark all Upgrades
  + Apply
  + Search ```<package>```
  + Mark for Installation
  + Apply

## Notes

### Administrator’s Handbook

This **Debian Buster from Discovery to Mastery** book has been written by Raphaël Hertzog and Roland Mas and is available as a:

  + <a href="https://debian-handbook.info/get/" target="_blank">contributing version</a>
  + <a href="https://debian-handbook.info/get/now/" target="_blank">free version</a>

### Release Information

The latest release information about **Debian 11 Bullseye** is available <a href="https://www.debian.org/releases/testing/" target="_blank">online</a>.

### Build Tools

All the packages available in this DR are built with the following tools, with a top-down priority list: 

1. **gbp buildpackage**: when the source git repository offers a correctly maintained pristine-tar or upstream branch. The packages version numbers are not modified.
2. **debuild**: when the sources offer a debian folder. The packages version numbers end with +11.0.
3. **fpm/checkinstall**: all other cases. The packages version numbers end with -11.0.

### Unstable Packages Name Format

The **unstable packages** which appear in the **unstable component of the DR** have different name formats to distinguish them from previous stable releases, for those who accept to live closer to the edge. You can be confident that they have passed a **minimal testing**. Some of them solve some issues discovered in previous stable versions. You can also always go back to the previous stable package if necessary. The name formats differ depending on the tool used to build them:

  + built with **debuild**: 
    - ```<package_name>_<unstable_release_number>~git<commit_date>.<short_hash_id>+11.0_amd64.deb```
  + built with **fpm/checkinstall**: 
    - ```<package_name>_<unstable_release_number>~git<commit_date>.<short_hash_id>-11.0_amd64.deb```
    - ```<package_name>_<git describe --tags>-11.0_amd64.deb```

### Upgrading Safely From a Debian Release to Another One

In order to avoid any issue during the **distribution upgrade process**, I suggest that you perform the following tasks prior to the distribution upgrade: (replace for instance ```<new_os_release_number> with 11.0```; ```<previous_os_release_number> with 10.0```; ```<new_os_code_name> with bullseye```; ```<previous_os_code_name> with buster```)

  + reload all packages information: ```sudo apt update```
  + upgrade your packages: ```sudo apt upgrade```
  + backup your whole system:
    - from another system such as a USB flash drive: ```fsarchiver``` should come in handy
    - or with a LVM snapshot
    - or with a Btrfs snapshot
    - ...
  + reboot if necessary
  + comment out all third-party Debian repositories in ```/etc/apt/sources.list.d/*.list```
  + check the <a href="https://www.debian.org/releases/stable/amd64/release-notes/ch-upgrading.html" target="_blank">instructions</a> specific to the current distribution release.
  + once the upgrade process is done, reselect and upgrade the distribution/release name of all third-party Debian repositories (for instance from buster to bullseye) in ```/etc/apt/sources.list.d```
  + reload package information and upgrade all updated packages: ```sudo apt update; sudo apt upgrade```
  + make sure that the packages which have been built for the previous Debian release have been upgraded: 
    - ```sudo apt list --installed | grep -P -- "\+<previous_os_release_number>"```
    - ```sudo apt list --installed | grep -P -- "-<previous_os_release_number>"```
  + for those which have not been upgraded (all those listed in the 2 previous commands), you may downgrade them to the latest version available from the Debian archive or wait until a new version is available from this DR. Cf. <a href="https://git.sdxlive.com/DR/about/README.md#downgrading-packages" target="_blank">Downgrading Packages</a>
  + check how the distribution upgrade performed by reading the logs in ```/var/log/dist-upgrade``` and solve all remaining issues:
    - reinstall all necessary packages which have been removed and listed in ```history.log``` in the ```Remove: ``` paragraph.
    - reinstall all necessary packages which could not be installed due to errors and listed in ```apt.log``` and ```apt-term.log```
  + reboot when done

### Downgrading Packages

If necessary, it is of course possible to downgrade the packages installed from this DR to the ones available in the official repositories.

In order to automate this process for all installed packages, the following bash scripts are provided:

  + <a href="https://git.sdxlive.com/DR/tree/System/apt-downgrade-bin-packages-to-official-archive.sh" target="_blank">apt-downgrade-bin-packages-to-official-archive.sh</a>: 
    - downgrading some (light mode) or all (full mode) installed binary packages with a version ending with ```+<os_version>``` or ```-<os_version>``` to the package version provided by the official Debian repositories.
    - please consult the help (-h) for details, especially regarding the differences between both modes. 
    - it is possible to pass perl regular expressions to narrow the search for installed binary packages which need to be downgraded.
  + <a href="https://git.sdxlive.com/DR/tree/System/apt-update-perl-bin-packages-to-official-archive.sh" target="_blank">apt-update-perl-bin-packages-to-official-archive.sh</a>:
    - there has been an issue regarding the dependencies of the latest perl packages retraining them to older perl-modules-5.28, despite the presence of the latest perl-modules-5.30. This situation prevented some of them to be correctly upgraded to their latest release.
    - this script allows to update all perl installed binary packages with a version ending with +<os_version> to the package version provided by the official Debian repositories.
    - please consult the help (-h) for details, especially regarding the differences between both ```<auto>``` modes.
  + <a href="https://git.sdxlive.com/DR/tree/System/dpkg-lock.sh" target="_blank">dpkg-lock.sh</a>: dpkg semaphore used in previous scripts.

### Removing obsolete Packages

Packages which have no installation candidate can be removed/purged with the help of a script:

  + <a href="https://git.sdxlive.com/DR/tree/System/apt-remove-obsolete-bin-packages.sh" target="_blank">apt-remove-obsolete-bin-packages.sh</a>:
    - removing/purging all obsolete installed binary packages, i.e. all packages which have no installation candidate.
    - it is possible to pass perl regular expressions to narrow the search for installed binary packages which need to be removed.
    - please consult the help (-h) for details, especially regarding the differences between both ```<auto>``` modes.
  + <a href="https://git.sdxlive.com/DR/tree/System/dpkg-lock.sh" target="_blank">dpkg-lock.sh</a>: dpkg semaphore used in previous script.

### Known Error Messages And Workaround

If you encounter the following error messages during ```sudo apt update```, it means that the DR is currently being **refreshed** with new releases; this process happens relatively often, mostly potentially during **week-ends and every week day between ~ 6 am and 1 pm CET**:

  + "Failed to fetch https://git.sdxlive.com/DR/plain/Debian/dists/bullseye/InRelease  Clearsigned file isn't valid, got 'NOSPLIT' (does the network require authentication?) Some index files failed to download. They have been ignored, or old ones used instead."
  + "Packages
    - Hash Sum mismatch
    - Hashes of expected file:
    - ..
    - Hashes of received file:
    - ..."

In order to avoid any issue about index files not being synced during the DR maintenance, the visiblity of the DR repository is now private when the index files are being updated with new package(s) and back to public when the update is done. During that very short time frame, accessing the repository is not possible anymore and you get one of the error messages described above. 

Just wait to be outside the refresh time frame so that the DR index has been completely updated and retry your ```sudo apt update``` and ```sudo apt upgrade``` or ```sudo apt --show-progress install <package>```.

## Filing Issues

Please let me know if you ever experience any other issue(s) at **support@sdxlive.com**.