Opened 18 years ago
Closed 15 years ago
#1929 closed enhancement (wontfix)
Use 'make install', when it can work, instead of 'cp', when installing single files.
Reported by: | Owned by: | ||
---|---|---|---|
Priority: | lowest | Milestone: | 6.5 |
Component: | Book | Version: | SVN |
Severity: | trivial | Keywords: | |
Cc: |
Description
I noticed Binutils hides the ld-new program in 'ld/.libs/ld-new' if the --enable-shared option is used, and 'ld/ld-new' is a script. This isn't a concern with LFS because the --enable-shared option does not get used until chapter 6, however I believe it is more educational to use:
make -C ld EXEEXT=-new install-exec-local
This command will install /tools/bin/ld-new and a hardlink to /tools/i686-pc-linux-gnu/bin/ld-new, and nothing else (no man pages, etc). Not many users know about the EXEEXT variable, or install-exec-local. I think using this new command would help shed a glimpse into the control available with the GNU make system, as well as being a more robust command.
Change History (7)
comment:1 by , 16 years ago
Milestone: | Future → 7.0 |
---|
comment:2 by , 16 years ago
I still believe that this command would be a value to the LFS book, as long as it works. I understand that it complicates our situation, but it is also more sophisticated.
comment:3 by , 16 years ago
Hi,
I'd like to assist with this ticket. I also propose that this ticket include the removal of any mv commands, as they are quite similar to cp.
I've generated a rough list of packages that include cp or mv commands.
Chapter 5:
- binutils
- coreutils
- gettext
- linux-headers
- perl
- util-linux-ng
Chapter 6:
- binutils
- bzip
- coreutils
- glibc
- findutils
- flex
- gawk
- gmp
- grub
- gzip
- inetutils
- iproute2
- kbd
- linux-headers
- mpfr
- ncurses
- psmisc
- readline
- shadow
I'm currently working on linux-headers and chapter six's binutils.
comment:4 by , 16 years ago
Milestone: | 7.0 → 6.5 |
---|---|
Owner: | changed from | to
Status: | new → assigned |
follow-up: 6 comment:5 by , 16 years ago
I've been working with this ticket and have found that using:
make -C ld EXEEXT=-new LIB_PATH=/usr/lib:/lib install-exec-local
does indeed take the place of
make -C ld LIB_PATH=/usr/lib:/lib cp -v ld/ld-new /tools/bin
However, I'm not sure this is a good approach. Although it does show a different way of installing the program, it's not as clear as instructions we currently use.
As far as using install instead of cp goes, I don't think that is a good idea unless we are changing some parameter such as permissions or owner/group at the same time. In addition, install does not handle recursive directories, so it really isn't appropriate in those conditions.
Using more complex syntax where simple syntax works well detracts from the clarity of the instructions.
I'm inclined to mark this as won't fix unless there is a better rationale than "It shows a different way."
comment:6 by , 16 years ago
Replying to bdubbs@…:
I'm inclined to mark this as won't fix unless there is a better rationale than "It shows a different way."
I have no problem with my suggestion to add the other packages to this ticket to be marked as won't fix too. For the packages that I managed to look at (binutils, linux headers, flex, glibc) I found no alternatives to the book's instructions. I'd be happy trusting the review that the instructions receive with each package's upgrade.
comment:7 by , 15 years ago
Resolution: | → wontfix |
---|---|
Status: | assigned → closed |
Need to check if this still holds true nowadays. The general idea behind using a new form of installing has merit in principle.